Главная » Все файлы » Просмотр файлов из архивов » Документы » Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)

Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.), страница 5

2015-08-22СтудИзба

Описание файла

Документ из архива "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)", который расположен в категории "". Всё это находится в предмете "теория игр и исследование операций" из 8 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "теория игр и исследование операций" в общих файлах.

Онлайн просмотр документа "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)"

Текст 5 страницы из документа "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)"

Механизм точек останова служит для повышения удобства отладки моделей. Формат описания точки останова следующий:

Break_point <имя_точки_останова> <логическое_выражение>

Имя точки останова  это простое имя, оно не должно совпадать с ранее определенными именами. Логическое выражение задает условие, которому должно удовлетворять состояние системы. В тот момент, когда указанное логическое выражение приобретает значение ИСТИНА, происходит прерывание моделирования с выдачей соответствующей информации и РДО-имитатор переходит в режим монитора.

Формат задания нового значения символьных констант:

<имя_константы> = <новое_значение>

Имя константы  это одно из имен констант, описанных в объекте констант (объект констант, функций и последовательностей будет рассмотрен в следующей главе). Новое значение символьной константы задается целой или вещественной численной константой либо именем значения в соответствии с типом константы.

Формат задания нового значения параметров ресурсов:

<имя_ресурса>.<имя_параметра> = <новое_значение>

Имя ресурса  это одно из имен ресурсов, заданное в объекте ресурсов. Имя параметра  одно из имен параметров, описанных в объекте типов ресурсов для соответствующего типа. Новое значение задают целой или вещественной численной константой либо именем значения в соответствии с типом параметра.

Формат задания нового начального значения базы генераторов:

<имя_последовательности>.Seed = <значение>

Имя последовательности  это одно из имен, указанных в объекте констант при описании последовательностей. Оно идентифицирует последовательность, для которой задается значение базы. Значение задают численной константой целого типа в диапазоне [2147483647, 2147483647].

В данной главе были описаны необходимые объекты, которые обязательно должны входить в состав модели. В следующей главе рассматривается ряд необязательных, но полезных в ряде применений объектов.

3. ДОПОЛНИТЕЛЬНЫЕ ОБЪЕКТЫ МОДЕЛИ


3.1. Объект констант, функций и последовательностей

Для увеличения выразительности и повышения удобства записи в языке могут быть определены символьные константы и функции. Они описываются в отдельном объекте, который определяет символьные константы, функции и последовательности и имеет формат:

$Constant

{ <описание_константы> }

$End

{<описание_функции_или_последовательности> }

Сначала описывают все константы, затем функции и последовательности в произвольном порядке. Описание константы имеет формат:

<имя_константы> : <тип_константы> = <значение_константы>

Имя константы представляет собой простое имя. Имена должны быть различными для всех констант и не должны совпадать с зарезервированными словами, именами типов ресурсов, их параметров и именами ресурсов.

Тип константы  это один из возможных типов данных языка (рассмотрены при описании объекта типов ресурсов). При описании типов констант возможны ссылки на типы параметров ресурсов и типы ранее описанных констант.

Значение символьной константы задается целой или вещественной численной константой, либо именем значения в соответствии с типом константы.

Пример описания символьных констант:

$Constant

Max_количество_студентов : such_as

Зачеты.Опрошено_студентов = 40

Время_опроса_студента : real [0.0 .. 1.0] = 0.1 {6 мин}

Константа_1 : (Значение_1, Значение_2, Значение_3)

= Значение_3

$End

Значение константы может быть изменено перед началом прогона в объекте прогона. Если при описании константы указан диапазон возможных значений, то проверяется нахождение нового значения в диапазоне допустимых.

Описание функции имеет формат:

$Function <имя_функции> : <тип_значения_функции>

[= <значение_по_умолчанию>]

$Туре = <тип_функции>

$Parameters

{ <описание_параметра_функции> }

$Body

<тело_функции>

$End

Имя функции представляет собой простое имя. Имена должны быть различными для всех функций и не должны совпадать с ранее определенными именами.

Тип значения функции  это один из возможных в языке типов данных. При описании типов значений функции возможны ссылки на типы параметров ресурсов и типы символьных констант. Значения по умолчанию также могут быть указаны при описании типа значения функции, однако они не используются, за исключением функций типа список.

В данной версии языка определены функции типов:

  • algorithmic  функция алгоритмического типа;

  • table  функция типа таблица;

  • list  функция типа список.

Функция типа algorithmic представляет собой перечень условий и формул, по которым вычисляется значение функции, функция типа table  таблицу значений, функция типа list – список значений параметров и соответствующих им значений функции.

Описание параметра функции имеет формат:

<имя_параметра_функции> : <тип_параметра>

Имя параметра функции представляет собой простое имя. Имена должны быть различными для всех параметров и не должны совпадать с ранее определенными именами. Тип параметра  это один из возможных типов данных. При описании типов параметров функции возможны ссылки на типы параметров ресурсов и типы символьных констант. Значения по умолчанию не задают.

Обращение к функции имеет формат:

<имя_функции> ( <выражение> {, <выражение> } )

После имени функции в скобках через запятую записывают арифметические выражения для вычисления значений параметров. Порядок следования выражений определяется порядком следования параметров в описании функции. Тип арифметического выражения должен соответствовать типу параметра. Для вещественных параметров допустимо выражение целого типа.

Синтаксис тела функции зависит от типа функции. Для функции типа list описание тела имеет формат:

{ <значения_параметров> = <значение_функции> }

Значения параметров функции-списка разделяют, по крайней мере, одним разделителем. Порядок следования значений параметров определяется порядком следования описаний параметров функции. Значение параметра задают целой или вещественной численной константой, либо именем значения в соответствии с типом параметра. Значение функции задается целой или вещественной численной константой, либо именем значения в соответствии с типом значения функции.

Пользователь описывает все возможные значения функции-списка и соответствующие им комбинации значений параметров. При вычислении функции определяются значения параметров, и соответствующая им комбинация параметров, описанных в теле функции, и в результате функция принимает значение, соответствующая данным значениям параметров. Если тело функции-списка не содержит комбинацию значений параметров, вычисленных при данном вызове функции, то функция принимает значение по умолчанию, указанное описании типа значений функции. По этой причине указание значения по умолчанию при описании типа значения функции-списка является обязательным.

Если в описании типа значения функции указан диапазон допустимых значений, то при чтении тела функции ее значения будут проверяться на попадание в диапазон допустимых.

Пример описания функции типа list:

$Function Время_опроса: real = 0.1

$Туре = list

$Parameters

Параметр_1: such_as Зачеты.Опрошено_студентов

Параметр_2: such_as

Зачеты.Количество_студентов_в_очереди

$Body

0 1 = 0.02

1 3 = 0.02

2 3 = 0.03

3 2 = 0.05

$End

Пример на вызов функции с указанием получаемых значений:

Время_опроса (1, 3) { = 0.02 }

Время_опроса (2 + 1, 2) { = 0.05 }

Время_опроса (35, 3) { = 0.1 (по умолчанию) }

{вызов в типе операции опроса студента как значение

$Time:}

Время_опроса (_зачет.Опрошено_студентов,

_зачет.Количество_студентов_в_очереди)

При описании функции типа table все параметры должны иметь либо целый тип с обязательным указанием диапазона, либо перечислимый тип, причем для целых параметров значение нижней границы диапазона обязательно должно быть равно 1. Это необходимо для определения количества значений в таблице и правильного вычисления линейного номера значения.

Тело функции-таблицы представляет собой множество значений функции для каждой комбинации значений параметров. Значения в теле функции задают целой или вещественной численной константой, либо именем значения в соответствии с типом значения функции и разделяют, по крайней мере, одним разделителем. В многомерных таблицах (число параметров функции больше одного) значения располагают следующим образом: сначала указывают значения, соответствующие возрастающим значениям первого параметра-индекса, затем второго и так далее.

Если в описании типа значения функции указан диапазон допустимых значений, то, при чтении тела функции, ее значения будут проверяться на попадание в диапазон допустимых.

Пример на описание функций типа table (комментарии в теле функций даны для пояснения порядка следования значений):

$Function Таблица_1: such_as Константа_1

$Type = table

$Parameters

Параметр_1: integer [1..6]

$Body

Значение_3 Значение_2 Значение_2 {Параметр_1 = 1..3}

Значение_1 Значение_2 Значение_1 {Параметр_1 = 4..6}

$End

$Function Таблица_2 : integer [0..80]

$Tуре = table

$Parameters

Параметр_1: such as Константа_1

Параметр_2 : integer [1..4]

$Body

{Параметр_1 = Значение_1 Значение_2 Значение_3 }

{Параметр_2 }

{1} 19 36 6

{2} 19 58 9

{3} 19 42 12

{4} 19 58 15

$End

Тело алгоритмической функции имеет формат:

{Calculate_if <логическое_выражение>

<имя_функции> = <арифметическое_выражение>}

Тело такой функции представляет собой последовательность условных операторов, в которых указано выражение для вычисления значения функции в том случае, если условие выполняется.

Значение алгоритмической функции вычисляется следующим образом. Просматриваются в порядке описания в теле функции логические выражения и вычисляются их значения. Если значение равно ЛОЖЬ, то вычисляется значение следующего логического выражения. Если значение равно ИСТИНА, то значение функции вычисляется как результат соответствующего арифметического выражения. Если же все логические выражения имеют значение ЛОЖЬ, то значение функции не определено!

Примечание. Для корректной работы РДО-имитатора при определении функции алгоритмического типа необходимо определить реакцию на все наборы параметров.

В арифметических выражениях для вычисления значений функции могут вызываться другие функции, в том числе может рекурсивно вызываться эта же функция, операндами выражений могут также являться символьные константы и последовательности.

Пример описания алгоритмической функции:

$Function Интервал_прихода_студентов : real

$Type = algorithmic

$Parameters

_опрошено : such_as Зачеты.Опрошено_студентов

_пороговое_значение : such_as Зачеты.Опрошено_студентов

$Body

Calculate_if _опрошено >= _пороговое_значение

Интервал_прихода_студентов = 0.03 * 5

Calculate_if _опрошено < _пороговое_значение

Интервал_прихода_студентов = 0.03

$End

Пример на вызов функции из описания типа нерегулярного события прихода студента:

Интервал_прихода_студентов (_зачет.Опрошено_студентов, 10)

Последовательности отличаются от функций тем, что выдаваемое ими значение не вычисляется на основе значений их параметров с использованием определенного алгоритма, а определяется генератором псевдослучайных чисел с соответствующим распределением, либо выбирается из числа значений, заданных при описании последовательности.

В данной версии языка определены последовательности следующих типов:

  • uniform последовательность псевдослучайных чисел, распределенных по равномерному закону;

  • exponential последовательность псевдослучайных чисел, распределенных по экспоненциальному закону;

  • normal  последовательность псевдослучайных чисел, распределенных по нормальному закону;

  • by_hist  последовательность псевдослучайных чисел, распределенных по закону, заданному гистограммой;

  • enumerative  последовательность значений, перечисленных непосредственно в теле последовательности.

Значение базы генератора представляет собой целое число в диапазоне [2147483647, 2147483647]. Это значение может отсутствовать, в этом случае будет использовано значение, определенное в языке. Значения баз генераторов могут быть изменены в файле прогона.

Обращение к последовательности имеет следующий формат:

<имя_последовательности> [ ( <выражение> { , <выражение> } ) ]

После имени последовательности в круглых скобках через запятую записываются арифметические выражения для вычисления значений параметров. Порядок следования выражений, их количество и тип определяются параметрами последовательности. Количество и тип параметров зависят от типа последовательности и типа значений последовательности.

Пример на описание последовательностей:

$Sequence Экспоненц_распред_времени_проставл_зачета : real

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее