Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.), страница 6
Описание файла
Документ из архива "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)", который расположен в категории "". Всё это находится в предмете "теория игр и исследование операций" из 8 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "теория игр и исследование операций" в общих файлах.
Онлайн просмотр документа "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)"
Текст 6 страницы из документа "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)"
$Type = exponential 123456789
$End
$Sequence Нормал_распред_времени_опроса : real [0.01..0.4]
$Type = normal 234567891
$End
$Sequence Равномер_интервал_прихода_студ : real [0.05..0.1]
$Type = uniform 1131113
$End
Вычисление значений последовательности происходит следующим образом. Сначала вычисляются значения параметров, если параметры имеются. Значения последовательности типа uniform вычисляются на основе генератора псевдослучайных чисел, как равномерно распределенные на заданном диапазоне целые или вещественные (в зависимости от типа значения последовательности) числа. Значения последовательности типа normal вычисляются на основе генератора псевдослучайных чисел как нормально распределенные вещественные числа с заданным средним и средним квадратичным отклонением. Если тип значения последовательности целый, то целое значение получается из вещественного округлением к ближайшему целому. Значения последовательности типа exponential вычисляются на основе генератора псевдослучайных чисел как экспоненциально распределенные вещественные числа с заданным средним. Если тип значения последовательности целый, то целое значение получается из вещественного отбрасыванием дробной части.
Пример на вызов последовательностей как значения $Time в типах операций:
Экспоненц_распред_времени_проставл_зачета (0.025)
{параметр: среднее = 1.5 мин}
Нормал_распред_времени_опроса (0.2, 0.1)
{параметры: среднее = 12 мин,
дисперсия = 6 мин}
Равномер_интервал_прихода_студ {из определения: 3-6 мин}
Значение последовательности типа by_hist вычисляется следующим образом. В начале, в соответствии с относительными частотами, определяется интервал гистограммы, затем конкретное значение получается как равномерно распределенное на этом интервале число. Для последовательностей с перечислимыми значениями по относительной частоте сразу определяется значение.
Примечание. Сумма относительных частот не обязательно должна быть равна 1, но начало следующего интервала должно совпадать с концом предыдущего.
Пример описания последовательностей типа by_hist:
$Sequence Гистаграмма_с_интервалами : integer [1..40]
$Type = by_hist 111333
$Body
{интервал с равномерным | вероятность
распределением | попадания в него}
1 10 0.60
10 40 0.90
$End
$Sequence Гистаграмма_с_перечислениями : such_as Константа_1
$Type = by_hist 111333
$Body
{ Все значения типа Константа_1 вероятность выбора }
Значение_1 0.30
Значение_2 0.50
Значение_3 0.20
$End
Значения последовательности типа enumerative заданы непосредственно в теле. Эти значения выдаются при вызовах последовательности в порядке их следования в описании. При первом обращении выдается первое значение, при втором второе и так далее. После последнего значения выдается первое.
Пример описания последовательности типа enumerative:
$Sequence Последовательность_перечислением : such_as Константа_1
$Type = enumerative
$Body
{Повторяемые циклически значения последовательности}
Значение_1 Значение_1 Значение_2 Значение_2
$End
После определения последовательностей любого типа в случае, если задан допустимый диапазон значений последовательности, производится проверка попадания полученного значения в этот диапазон. Если значение меньше нижней границы, то оно становится равным нижней границе, если больше верхней, то равным верхней границе.
Примечание. Все последовательности порождают независимые потоки псевдослучайных чисел. Изменением значений начальных баз генераторов могут быть получены различные реализации последовательности.
3.2. Объект кадров анимации
Описание кадров производится в отдельном объекте, который является исходным для системы отображения. Кадр представляет собой прямоугольную область экрана, в которой производится отображение. Он состоит из фоновой картинки и переменных элементов (элементов отображения или спрайтов), состав, форма, размеры и расположение которых определяются состоянием системы и, следовательно, могут изменяться во время просмотра кадра.
Описание кадра имеет формат:
$Frame <имя_кадра>
[ Show_if <условие_показа_кадра> ]
$Back_picture = <описание_фоновой_картинки>
[ <описание_элементов_отображения> ]
$End
Имя кадра представляет собой простое имя. Имена должны быть различными для всех кадров и не должны совпадать с ранее определенными именами. Условие показа кадра используется при автоматическом переключении кадров и представляет собой логическое выражение. Это логическое выражение вычисляется при каждом событии. Если оно истинно, то кадр отображается, если ложно нет. Если при очередном событии значение выражения меняется, то кадр либо появляется на экране, либо исчезает. Условие показа вместе с зарезервированным словом Show_if может отсутствовать. Кадры с заданным условием показа называют условными. Если при некотором состоянии моделируемой системы выполняются условия показа нескольких условных кадров, то отображается тот из них, который в объекте описания кадров встречается раньше других.
Пример условия показа кадра:
Show_if Time_now > 0.2 and Time_now <= 0.3
Такой условный кадр будет изображаться, если время в моделируемой системе находится в интервале от 0.2 до 0.3 часа. Time_now глобальная системная переменная (будет рассмотрена далее в главе 5). При первом событии после того, как системное время станет больше 0.2, кадр автоматически появится на экране, при первом событии после 0.3 кадр автоматически исчезнет.
Описание фоновой картинки имеет формат:
[ <цвет_фона> ] <размеры_кадра>|<имя_объекта_фона>
Цвет фона задает цвет части кадра, которая находится за пределами фоновой картинки. Цвет задается тремя численными константами целого типа, разделенными пробелами и заключенными в угловые скобки. Каждое число должно находиться в диапазоне [0, 255] и задает интенсивность одной из трех цветовых составляющих: первое число красной, второе зеленой, а третье синей.
Пример на описание различных цветов:
< 0 0 0 > черный
<255 0 0 > красный
< 0 255 0 > зеленый
< 0 0 255> синий
<255 255 0 > желтый
<255 255 255> белый
<127 127 127> серый
Цвет фона является необязательным параметром. Если он не задан, используется значение по умолчанию, равное < 0 100 0 > (это значение соответствует темно-зеленому цвету).
Для описания фоновой картинки задают либо имя объекта, содержащего фоновое изображение, либо размер фоновой картинки. Объект фоновой картинки должен быть растровым изображением, сохраненным в формате независимой от устройства битовой карты (BMP-формате) и иметь тип .bmp. Такой объект может быть создан графическими редакторами, такими как Paintbrush, CorelDraw и др.
Имеется другая возможность задания фоновой картинки. Для этого вместо имени объекта указывают размеры фоновой картинки. В этом случае РДО-имитатор сам создает фоновую картинку, которая представляет собой прямоугольник указанного размера с цветом фона и границей черного цвета толщиной в один пиксель. Размеры задают двумя численными константами целого типа. Первое число задает ширину фоновой картинки и должно быть в диапазоне [1, 800], второе число задает высоту и должно находиться в диапазоне [1, 600].
Пример на описание фоновых картинок:
$Back_picture = <0 0 100> backgrd {фоновая картинка находится в объекте backgrd.bmp, за ее пределами фон кадра имеет темно-синий цвет;}
$Back_picture = backgrd {фоновая картинка находится в объекте backgrd.bmp, зa ее пределами фон кадра имеет цвет по умолчанию;}
$Back_picture = <255 255 0> 640 480 {фоновая картинка есть прямоугольник желтого цвета (с границей черного цвета) шириной 640 и высотой 480 пикселей, за ее пределами фон кадра имеет желтый цвет;}
$Back_picture = 640 480 {фоновая картинка есть прямоугольник шириной 640 и высотой 480 пикселей с цветом фона по умолчанию (темно-зеленый) и границей черного цвета, за ее пределами фон кадра имеет цвет по умолчанию.}
Элементы отображения могут отсутствовать.
Пример кадра без элементов отображения:
$Frame Кадр_3
Show_if Ресурс_1.Параметр_5 = Свободен
$Back_picture = <0 0 255> backgrd
$End
Этот кадр будет автоматически появляться на экране, если Параметр_5 ресурса Ресурс_1 имеет значение "Свободен". Общий фон кадра синий, фоновая картинка хранится в объекте backgrd.bmp.
Элементы отображения разбивают на множества отображения. Множества бывают условными (элементы множества отображаются только в том случае, если условие показа истинно) и безусловными.
Формат описания условного множества:
Show_if <условие_показа>
{ <элемент_отображения> }
Формат описания безусловного множества:
Show
{ <элемент_отображеня> }
В кадре может быть произвольное количество условных и безусловных множеств. Они могут располагаться в произвольном порядке. Количество и порядок следования элементов отображения произвольны. Условие показа представляет собой логическое выражение. Элемент отображения (спрайт) имеет формат:
<тип_элемента> "[" <свойства_элемента> "]"
Тип элемента задают одним из следующих зарезервированных слов:
-
text – текстовый элемент;
-
bitmap – битовая карта;
-
s_bmp – масштабируемая битовая карта;
-
rect – прямоугольник;
-
r_rect – прямоугольник со скругленными углами;
-
linе – отрезок прямой;
-
ellipse – эллипс (окружность);
-
triangr – треугольник.
Порядок записи, количество и смысл свойств элемента зависят от типа элемента. Свойства элементов записываются в прямых скобках и разделяются запятыми.
Первые два свойства элементов всех типов их координаты. Координаты элемента есть координаты в пикселях левого верхнего угла прямоугольника, являющегося границей элемента. Их задают арифметическими выражениями, которые являются относительными, т.е. отсчитываются от левого верхнего угла кадра вправо и вниз. Если результат вычисления арифметического выражения имеет вещественный тип, то он округляется.
Свойствами многих элементов являются также размеры (ширина и высота в пикселях) и цвета. Размеры элемента задаются арифметическими выражениями, вещественные значения округляются до целого числа пикселей. Цвет задается тремя численными константами целого типа, разделенными пробелами и заключенными в угловые скобки. Каждое число должно находиться в диапазоне [0, 255] и задает интенсивность одной из трех цветовых составляющих: первое число красной, второе зеленой, а третье синей. Задавая разные значения цветовых составляющих, можно получить более шестнадцати миллионов цветов. Реальное максимально возможное количество цветов определяется видеоадаптером и режимом его работы. Если видеоадаптер не может изобразить заданный цвет, то система Windows заменяет заданный цвет ближайшим из числа возможных. Фон текстовых элементов и внутренние части фигур могут быть также прозрачными. Для этого необходимо вместо цвета фона записать зарезервированное слово transparent.
При изменении состояния модели значения выражений, определяющих координаты и размеры элемента, могут изменяться, т.е. элемент может перемещаться по экрану и меняться в размерах. Если при этом элемент выходит за границы кадра, то он автоматически усекается. Прорисовка элементов происходит в том порядке, как они записаны в объекте кадров, т.е. при наложении элементов тот из них, который описан в объекте раньше, будет скрыт (полностью или частично) под элементом, описанным позже.
Далее рассматриваются элементы различных типов.
Текстовый элемент (text) имеет формат:
text "[" <Х_координата>, <Y_координата>, <ширина>, <высота>,
<цвет_фона>, <цвет>, [<способ_ размещения>] <содержимое> "]"
Способ размещения задает размещение выводимой строки (содержимого) в поле элемента. Он может быть опущен, в этом случае строка сдвигается к левому краю. Способ размещения задают одним из следующих символов:
"<" сдвинуть к левому краю;
"=" выровнять по центру;
">" сдвинуть к правому краю.
В том случае, если длина выводимой строки больше ширины элемента, строка усекается.
Содержимое элемента описывают одним из следующих способов:
-
арифметическим выражением (выводимая строка представляет собой результат вычисления выражения; это целое либо вещественное число, или имя значения перечислимого типа);
-
строковой константой (выводимой строке присваивается значение строковой константы).
Для изображения строк текста используется системный шрифт Windows.
Пример на описание текстовых элементов: