Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.), страница 3
Описание файла
Документ из архива "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)", который расположен в категории "". Всё это находится в предмете "теория игр и исследование операций" из 8 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "теория игр и исследование операций" в общих файлах.
Онлайн просмотр документа "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)"
Текст 3 страницы из документа "Моделирование процессов принятия решений на основе системы интеллектуального имитационного моделирования РДО (Еремеев А., Шутова П.)"
Описание образца типа irregular_event имеет формат:
$Pattern <имя_образца> : irregular_event [ trace | no_trace ]
[ $Parameters
{<описание_параметра_образца>} ]
$Relevant_resources
{<описание_релевантного_ресурса_образца>}
[<способ_выбора>]
$Time= <выражение_времени ~ интервал>
$Body
{ <имя_релевантного_ресурса>
Convert_ event [ trace | no_trace ]
{<конвертор>} }
$End
Пример образца прихода студента на зачет:
$Pattern Образец_Приход_студента : irregular_event
$Parameters
_param : such_as Студенты.Зачет {Номер зачета}
$Relevant_resources
_студент : Студенты Create
$Time = 0.05 {Студенты приходят каждые 0.05 часа = 3 мин}
$Body
_студент {Каждые 3 мин создает
временный ресурс «студент»}
Convert_event trace
Зачет set _param
Время_прихода set Time_now
Состояние set Пришел
$End
Описание образца типа rule имеет формат:
$Pattern <имя_образца> : rule [ trace | no_trace ]
[ $Parameters
{<описание_параметра_образца>} ]
$Relevant_resources
{<описание_релевантного_ресурса_образца>}
[<способ_выбора>]
$Body
{ <имя_релевантного_ресурса>
<предусловие>
[<способ_выбора>]
Convert_rule [ trace | no_trace ]
{<конвертор>} }
$End
Пример образца постановки пришедшего студента в очередь:
$Pattern Образец_Встать_в_очередь : rule
$Relevant_resources
_студент : Студенты Keep
_зачет : Зачеты Keep
$Body {Не имеет длительности}
_студент {Выбрать студента, который пришел
на экзамен раньше}
Choice from _студент.Состояние = Пришел
with_min студент.Время_прихода
Convert_rule {и поставить его в очередь}
Состояние set В_очереди
_зачет {Выбрать зачет, на который он пришел}
Choice from _зачет.Номер = _студент.Зачет
first
Convert_rule {и увеличить очередь}
Количество_студентов_в_очереди set
_зачет.Количество_студентов_в_очереди + 1
$End
Описание образцов типа operation и keyboard имеет формат:
$Pattern <имя_образца> : operation|keyboard [ trace | no_trace ]
[ $Parameters
{<описание_параметра_образца>} ]
$Relevant_resources
{<описание_релевантного_ресурса_образца>}
[<способ_выбора>]
$Time= <выражение_времени = длительность>
$Body
{ <имя_релевантного_ресурса>
<предусловие>
[<способ_выбора>]
Convert_begin [ trace | no_trace ]
{<конвертор>}
Convert_end [ trace | no_trace ]
{<конвертор>} }
$End
Пример образца операции опроса студента преподавателем:
$Pattern Образец_Опрос_студента : operation
$Parameters
_param : such_as Студенты.Зачет {Номер зачета}
$Relevant_resources
_зачет : Зачеты Keep Keep
_студент : Студенты NoChange Erase {Уничтожить ресурс
после опроса}
$Time = 0.1 {Время_опроса = 0.1 часа = 6 мин}
$Body
_зачет {Если экзаменатор свободен
и есть студент в очереди}
Choice from _зачет.Количество_студентов_в_очереди >0
and _зачет.Занятость_экзаменатора = Свободен
first
Convert_begin {До начала опроса}
Количество_студентов_в_очереди set
_зачет.Количество_студентов_в_очереди - 1
Занятость_экзаменатора set Занят
Convert_end {В конце опроса}
Опрошено_студентов set _зачет.Опрошено_студентов + 1
Занятость_экзаменатора set Свободен
_студент {Из всех студентов выбрать того,
кто раньше пришел на данный зачет}
Choice from _студент.Зачет = _param and
_студент.Состояние = В_очереди
with_min студент.Время_прихода
$End
Пример образца клавиатурной операции.
Если студентов в очереди больше 10, то можно при желании поставить зачет «автоматом». Клавиша для вызова будет обозначена в объекте операций. Отличается от предыдущего примера привязкой к клавише и длительностью.
$Pattern Образец_Зачет_автоматом : keyboard
$Parameters
_param : such_as Студенты.Зачет
$Relevant_resources
_зачет : Зачеты Keep Keep
_студент : Студенты NoChange Erase
$Time = 0.01 {Время проставления зачета «автоматом»
0.01 ч = 0.6 мин = 10 сек}
$Body
_зачет {Если в очереди более 10 человек и
экзаменатор свободен}
Choice from _зачет.Количество_студентов_в_очереди > 10
and _зачет.Занятость_экзаменатора = Свободен
first
Convert_begin {До начала опроса}
Количество_студентов_в_очереди set
_зачет.Количество_студентов_в_очереди - 1
Занятость_экзаменатора_1 set Занят
Convert_end (В конце опроса}
Опрошено_студентов set _зачет.Опрошено_студентов + 1
Занятость_экзаменатора set Свободен
_студент {Из всех студентов выбрать того,
кто раньше пришел на данный зачет}
Choice from _студент.Зачет = _param and
_студент.Состояние = В_очереди
with_min студент.Время_прихода
$End
Клавиатурные операции позволяют разрабатывать в РДО интерактивные программы. Каждой клавиатурной операции (тип keyboard) ставится в соответствие клавиша, комбинация клавишей или щелчок мыши по активной области при работе с кадрами анимации. В момент нажатия этой клавиши проверяются предусловия и, если они выполняются, инициируется событие начала клавиатурной операции. Дальнейший ход этой операции ничем не отличается от выполнения операции других типов. Таким образом, единственным отличием клавиатурной операции является то, что для ее начала недостаточно выполнения предусловий, сформулированных в образце, а необходимо, чтобы еще была нажата соответствующая клавиша.
2.4. Объект операций
Операции совместно с образцами составляют процедурную часть программы на языке РДО. Из объекта операций имитатор получает конкретные значения параметров образцов. В этом объекте описываются все операции, имеющие место в СДС.
Объект операций имеет следующий формат:
$Operations
{<описание_операции>}
$End
Описание каждой операции имеет следующий формат:
<имя_операции> : <имя_образца> <значения_параметров_образца>
Имя операции представляет собой простое имя. Имена должны быть различными для всех операций и не должны совпадать с ранее определенными именами. Для каждой операции в объекте указывается имя соответствующего ей образца это имя одного из образцов, описанных в объекте образцов операций.
Значения параметров образца задают в позиционном соответствии с порядком следования параметров в описании образца. Значения задают целой или вещественной численной константой, либо именем значения в соответствии с типом параметра. Для тех параметров, у которых указано значение по умолчанию, вместо начального значения можно указать символ * (звездочка). В этом случае параметр примет значение по умолчанию. Если для параметра задан диапазон возможных значений, то проверяется соответствие начального значения этому диапазону.
Например, возможны следующие описания операций:
$Operations
Зачет_автоматом_на_зачете_1 : Образец_Зачет_автоматом
‘CONTROL’ + ‘A’ 1
Зачет_автоматом_на_зачете_2 : Образец_Зачет_автоматом
‘CONTROL’ + ‘B’ 2
Опрос_на_зачете_1 : Образец_опрос_студента 1
Опрос_на_зачете_2 : Образец_опрос_студента 2
Встать_в_очередь: Образец_Встать_в_очередь
Приход_студента_на_зачет_1 : Образец_Приход_студента 1
Приход_студента_на_зачет_2 : Образец_Приход_студента 2
$End
В описании клавиатурной операции после имени образца указывают код клавиши, при нажатии которой производится попытка выполнить операцию. После кода указывают значения параметров образца, если они есть.
Код клавиши может быть задан следующими способами. Для использования цифровой или буквенной клавиши достаточно указать в кавычках соответствующую букву или цифру. Названия буквенных клавишей указывается прописными латинскими буквами. Например, ‘R’, ‘5’. Кроме буквенных и цифровых клавишей могут быть использованы некоторые другие клавиши. Эти клавиши с идентификаторами, которые необходимо указать для их использования в описании клавиатурных операций, приведены в табл. 2.3.
Таблица 2.3
Идентификатор | Клавиша |
‘ESCAPE’ | Клавиша выхода (ESC) |
‘F2’ – ‘F12’ | Функциональные клавиши F2 – F12 (кроме F1, которая используется в приложениях Windows для вызова подсказки) |
‘TAB’ | Клавиша табуляции (Tab) |
‘SHIFT’ | Клавиша смены регистра (Shift) |
‘CONTROL’ | Клавиша Ctrl |
‘BACK’ | Клавиша Backspace |
‘RETURN’ | Клавиша возврата (Enter) |
‘INSERT’ | Клавиша вставки (Ins) |
‘HOME’ | Клавиша перехода в начало (Home) |
‘PRIOR’ | Клавиша перемещения на страницу вверх (Page Up) |
‘DELETE’ | Клавиша удаления (Delete) |
‘END’ | Клавиша перехода в конец (End) |
‘NEXT’ | Клавиша перемещения на страницу вниз (Page Down) |
‘UP’ | Стрелка вверх |
‘LEFT’ | Стрелка влево |
‘DOWN’ | Стрелка вниз |
‘RIGHT’ | Стрелка вправо |
‘NUMPAD0’ – ‘NUMPAD9’ | Клавиши 0 – 9 на цифровой клавиатуре при включенной клавише Num Lock |
‘DIVIDE’ | Клавиша деления на цифровой клавиатуре |
‘MULTIPLY’ | Клавиша умножения на цифровой клавиатуре |
‘SUBTRACT’ | Клавиша вычитания на цифровой клавиатуре |
‘ADD’ | Клавиша сложения на цифровой клавиатуре |
‘CLEAR’ | Клавиша 5 на цифровой клавиатуре при отключенной клавише Num Lock |
‘SPACE’ | Пробел |
‘DECIMAL’ | Точка на цифровой клавиатуре при включенной клавише Num Lock |
Механизм логического вывода имитатора использует объект образцов, чтобы выбирать для выполнения очередную операцию модели для вычисления нового состояния моделируемой системы в начале и при окончании этой операции.
Примечание. Последовательность перебор операций и выполнение тех из них, для которых выполнены предусловия, ведет к тому, что операции, находящиеся выше по списку, имеют больший приоритет. Поэтому стоит тщательно продумать их взаиморасположение.
Создавая объекты образцов и операций, разработчик модели тем самым формализует свои знания о процессе, протекающем в СДС. Кроме этих знаний имитатор не может использовать никакие другие. Поэтому результаты моделирования в первую очередь зависят от того, какие знания присутствуют в объекте образцов, насколько они полны и непротиворечивы как по отношению к поведению моделируемой СДС, так и по отношению друг к другу. Следовательно, в дальнейшем на имитаторе моделируется не процесс в СДС, а его представление, созданное исследователем о рассматриваемом объекте.
2.5. Объект точек принятия решений
Точки принятия решений в языке РДО описывают способы использования образцов для моделирования процесса и принятия решений на уровне событий. В модели может быть либо объект операций, либо объект точек принятия решений. Их совместное использование не допускается. Объект операций используется при моделировании процессов, протекающих во времени, а объект точек принятия решений для моделирования причинно-следственных логических рассуждений, не связанных со временем, а только лишь с очередностью событий и действий.
Объект точек принятия решений имеет формат:
{<описание_точки_принятия_решений> | <блок_активностей> }