АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Часть 2. Имитационное моделирование

Читайте также:
  1. A. моделирование потока капитальных вложений
  2. B. моделирование потока амортизации
  3. C. моделирование потока прибыли
  4. F. моделирование потока собственных оборотных средств
  5. I ЧАСТЬ
  6. I. ПАСПОРТНАЯ ЧАСТЬ
  7. I. Теоретическая часть
  8. I. Теоретическая часть
  9. I. Теоретическая часть
  10. I. Теоретическая часть
  11. I. Теоретическая часть.
  12. II часть

Дополнительные методы и средства имитации


125


 


Рис. 2.31. Средства конструирования многоуровневых моделей

Для знакомства с ними обобщим описанный в разделе «Быстрое начало» пример 1.

Допустим, что на автозаправочной станции имеется магазин и каждый водитель после заправки автомобиля может подъехать к этому магазину и сделать несколько покупок. Такая обобщенная модель в дополнение к введенным ранее блокам будет содержать еще модель обслуживания покупателей в магазине. Не определяя детали этой вновь вводимой компоненты, выделим для нее специальный подуро­вень модели. Для введения этого подуровня в структуру модели следу­ет нажать кнопку и связать появившийся на экране монитора прямоугольник с ранее определенными блоками.

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

В этой модели окно EXAMPL1.MOD: Network О EXAMPL1 опре­деляет структуру модели примера 1 с добавленным фрагментом моде­ли магазина, которую мы назвали «Shopping». Прямоугольная рамка блока с номером 3 определяет, что модель, заключенная в этом блоке, обладает собственной сетевой структурой, которую мы определили в окне EXAMPL1.MOD: Network 3 Shopping как состоящую из трех блоков задач: осмотр магазина (survey), оплату покупок у кассы (pay desk) и выход (exit).

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


 


Рис. 2.32. Пример многоуровневой модели

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

Отметим, что в тех случаях, когда сетевой блок-прямоугольник имеет выходящие стрелки, в его сетевой структуре в качестве завер­шающего элемента используется псевдоблок в виде окружности. Этот псевдоблок не имеет своего номера, он фактически является двойни­ком блока, следующего за сетевым в диаграмме верхнего уровня. Ска­занное иллюстрируется рис. 2.33.


126


Часть 2. Имитационное моделирование


Дополнительные методы и средства имитации


127


 


           
   
 
 
   


Ниже на рис. 2.34 приведен вариант фонового рисунка, созданно­го для рассматриваемого примера в редакторе Paint.

При моделировании сложных систем использование концепции многоуровневых моделей и «вложенных» сетей делает структуру моде­ли значительно более наглядной и легко понимаемой.

Анимация имитационных моделей

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

Для того чтобы реализовать анимацию созданной модели, необхо­димо:

• определить фон, на котором будут развиваться анимационные
процессы;

• связать динамику изменения сцены с программой модели.

Окно сцены (Action View) открывается нажатием кнопки (средний ряд панели инструментов).

Проиллюстрируем анимацию имитационной модели на примере 1 «Модель обслуживания автомобилей на заправочной станции» (см. рис. 2.1).

Определение фона

Этот этап обычно связан с использованием готового рисунка или его созданием с использованием графического редактора. В качестве такого редактора проще всего использовать Paint, который включен в группу «Стандартные» общего списка программ Windows. Рисунок со­храняется в файле с расширением BMP.

Для вставки фонового рисунка в окно Action View необходимо:

• открыть вставляемый рисунок в графическом редакторе,

• скопировать его (в буферную область памяти),

• открыть окно Action View,

• вставить рисунок в окно Action View.

Последнее действие реализуется с использованием меню Micro

Saint (раздел Edit — Paste) или кнопкой (верхний ряд панели ин­струментов).


Динамика изменения сцены

Для реализации анимационной динамики необходимо выбрать изображения динамических объектов (иконки), которые в процессе моделирования будут перемещаться по сцене на подготовленном фоне. Иконки выбираются в меню Action View, раздел View Icons. По­скольку для рассматриваемого примера движущимся объектом явля­ется автомобиль, выберем иконку с изображением автомобиля (на­пример, иконку с номером 447). Все процессы имитации движения автомобилей в программе модели будут иллюстрироваться передвиже­нием соответствующих иконок на фоновом рисунке. Траектории та­кого передвижения определяются отрезками прямых с заданными на­чальной и конечной точками. Указание этих точек проводится непо­средственно на фоновом рисунке в окне Action View с помощью специальной панели инструментов (нижний ряд справа).

содержит три кнопки

Панель инструментов для размещения иконки объекта на сцене

левая кнопка с изображением трейлера (курсор-трейлер) для размещения иконки на сцене в точке начала траектории (в этой точке иконка появляется на сцене);

средняя кнопка с изображением стрелки (курсор-стрелка) для перемещения иконки по сцене в соответствии с планируемым отрезком траектории от точки начала отрезка до точки его конца;


128


Часть 2. Имитационное моделирование


Дополнительные методы и средства имитации


129


 


                   
   
 
 
 
     
 
 
   
     
 

 

• правая кнопка с изображением перечеркнутого трейлера (кур­сор-крест) для удаления иконки со сцены в точке окончания траектории.

После выполнения первого действия окно Action View будет вы­глядеть, как показано на рис. 2.35.

Рис. 2.35. Конструирование анимационной сцены — 1

В левом нижнем углу окна установлена точка появления иконки автомобиля на сцене — в это место фонового рисунка устанавливает­ся курсор-трейлер и делается щелчок левой кнопкой мыши. При этом в строке под заголовком Action View (строке оператора) размещается оператор создания изображения объекта (автомобиля) на сцене create. Этот оператор фиксирует, что мы создали объект (tag) с иконкой но­мер 447, с координатами места на сцене, где разместилась иконка объекта (X = 38, Y = ИЗ).

Для того чтобы оператор создания изображения объекта на сцене (create) выполнялся синхронно с оператором создания объекта в мо­дели, его (оператор create) необходимо скопировать из окна Action View и вставить в соответствующее место программы. Копирование оператора в окне Action View связано с использованием команды Сору редактора Edit, а вставка в окно задачи — команды Paste. Для рассматриваемого примера такую вставку следует сделать в раздел Be­ginning Effect блока car coming (см. рис. 2.5). При этом каждый раз, когда в модели появляется новый тэг-автомобиль, приехавший на за­правочную станцию, в окне Action View на сцене появляется его иконка, иллюстрирующая событие появления автомобиля.


Анимация передвижения автомобиля от точки начала траектории до бензоколонки связана с «перетаскиванием» иконки объекта от точ­ки его появления на сцене до изображения бензоколонки. Для этого необходимо курсором-стрелкой (средняя кнопка панели инструмен­тов анимации) перетащить иконку в нужное место экрана.

При этом в левом верхнем углу окна Action View появится опера­тор перемещения объекта move, который определяет новые координа­ты положения иконки объекта на сцене и время, за которое произош­ло перемещение (duration). Этот оператор должен быть скопирован и перенесен в поле Launch Effect блока car coming (см. рис. 2.5).

Рис. 2.36. Конструирование анимационной сцены — 2

Удаление иконки объекта со сцены выполняется с помощью пра­вой кнопки панели инструментов анимации. Для этого курсор-крест, связанный с этой кнопкой, устанавливается на удаляемой иконке объ­екта и делается щелчок кнопкой мыши. Оператор удаления Dispose появляется в строке операторов окна Action View и переносится в со­ответствующее место программы модели аналогично. (Если мы огра­ничимся только анимацией приезда автомобилей на заправку, этот оператор должен быть размещен в поле Ending Effect блока car coming.)

Таким образом, сделанные анимационные добавления в програм­му модели приводят к описанию блока car coming, приведенному на рис. 2.37.

При запуске этой программы в окне Action View можно наблю­дать динамический анимационный процесс приезда автомобилей на заправочную станцию.


130


Часть 2. Имитационное моделирование


Дополнительные методы и средства имитации


131


 


                   
   
   
 
   
   
 

 

Рис. 2.37. Окно описания задачи car coming с элементами анимации

Для того чтобы траектория движения автомобиля «оставляла
след» на сцене, необходимо использовать разделы Dot, Line и Refresh
меню Action View. Они связаны с видом представления траектории
(точки, линии, стирание траекторий).

Основным вопросом анимации является правильная и корректная вставка операторов анимации в текст программы модели. Операторы create и dispose связаны с созданием и удалением иконки объекта (тэга), поэтому они должны синхронизироваться с созданием и удале­нием самого объекта. Оператор create обычно вставляется в поле Be­ginning Effect, a dispose — в поле Ending Effect. Оператор перемещения move связан с перемещением иконки тэга из точки начала отрезка траектории в точку конца за время duration. Duration — это то время, которое тэг проводит в блоке, поэтому оператор move всегда разме­щается в поле Launch Effect.

Попутно заметим, что duration является системной переменной, связанной с активным тэгом, т. е. тэгом, который обрабатывается в модели в текущий момент времени.


В сложных случаях для получения наглядной анимационной кар­тины может оказаться необходимым добавление в модель специаль­ных блоков, которые служат только целям создания анимации. На­пример, для рассматриваемого примера мы ограничились анимацией только приезда автомобилей на заправочную станцию. Фаза ожида­ния освобождения бензоколонки и фаза собственно заправки не ани-мируются, поскольку автомобиль на этих фазах находится в непо­движном состоянии. Анимация фазы отъезда связана с уточнением дополнительных обстоятельств — как автомобиль уезжает? Просто его иконка исчезает с экрана монитора или движется по некоторой траек­тории до точки исчезновения? Для анимации этой фазы необходимо получить ответы на подобные вопросы и только после этого модифи­цировать модель. Если отъезд автомобиля будет связан с созданием траектории отъезда, в модель придется добавить еще один блок.

Существует и другая, не менее важная проблема, связанная с ани­мацией. В модели (и на сцене) могут одновременно присутствовать не­сколько динамических объектов. Если такие объекты движутся по од­ной и той же траектории, то в одном месте траектории могут находить­ся несколько объектов одновременно. При этом иконка одного из объектов может заслонять другую, что лишает анимационную картину наглядности. Для преодоления этого эффекта можно использовать, на­пример, метод смещения на сцене иконок разных объектов относите­льно друг друга путем введения случайной аддитивной составляющей в их координаты. Например, вместо оператора create (tag,447,38,113) ис­пользовать оператор create (tag,447,38+ randomlnt (0,20),113+ rando-mInt(0,20)). Такой оператор каждый раз при появлении нового объекта в модели будет выводить на сцену иконку, координаты которой будут случайным образом выбираться из интервалов (38-58) для X и (113-133) для Y. На экране это выглядит как некоторая «туча» иконок, связанных с приезжающими и отъезжающими автомобилями.

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

Контрольные вопросы и предложения

1. Назовите основные виды потоков в системах и определите их отличитель­
ные свойства.

2. Как используется массив переменных для реализации индивидуальных
свойств тэгов?

3. Охарактеризуйте основные операторы языка описания эффектов модели.


132


Часть 2. Имитационное моделирование


Оптимизация на имитационных моделях


133


 


4. Дайте характеристику основных датчиков случайных чисел.

5. Для каких целей в модель вводятся функции?

6. Как задается эмпирическое распределение вероятностей в модели?

7. Чем различаются режимы «Symbols» и «Numbers» в динамике работы мо­
дели?

8. Ваши действия при получении сообщения «Unrecognized word» при отла
ке модели?

9. Ваши действия при получении сообщения «Matherror couldn't create the dia­
log box» при отладке модели?

 

10. Охарактеризуйте использование исполнительного монитора в процессе
ладки модели.

11. Охарактеризуйте использование календаря событий в процессе моделиро­
вания.

12. Какие виды событий размещаются в календаре?

13. Как связано модельное время с реальным?

14. Как реализуется конструирование многоуровневых моделей?

15. Как конструируется анимационная картина в окне «Action View»?

16. Как интерпретируется переменная duration?

Поиск решения: оптимизация на имитационных моделях

Одно из наиболее известных направлений оптимизации — мате магическое программирование и его реализация в виде информаци онной системы на электронных таблицах — было описано в первой части этой монографии. Однако многие задачи бизнеса и производст­ва не удается сформулировать в категориях математического програм­мирования.

Имитация как метод исследования сложных систем основана, как уже отмечалось, на принципе копирования поведения реальной или гипотетической системы. Каждый «прогон» модели связан с имита­цией конкретного варианта организации системы. В классической технологии имитационного моделирования для выбора оптимальных решений необходимо исследовать каждый из возможных вариантов такой организации, что существенно увеличивает время компьютер­ного моделирования. Статистические аспекты имитационного моде­лирования связаны с определением показателей эффективности сис­темы на основе анализа трассы состояний динамического процесса. При этом результат исследования всегда является статистикой (функ­цией от наблюдаемых экспериментальных данных), в то время как в моделях математического программирования при исследовании сис­тем на электронных таблицах результат (целевая ячейка) формируется


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

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

Описываемая ниже оптимизационная процедура OptQuest реали­зует специальный немонотонный поиск наилучшего решения и нахо­дит эффективную траекторию приближения к такому решению.

Оптимизация на имитационных моделях в системе OptQuest

OptQuest — это приложение, ориентированное на оптимизацию имитационных моделей, созданных с помощью Micro Saint (MS-мо-делей), и позволяющее пользователям автоматически находить опти­мальные решения сложных задач.

Для использования этого приложения в MS-модели необходимо определить специальную переменную objective, которая будет показы­вать, какая комбинация значений варьируемых переменных модели будет наилучшей.

Для иллюстрации использования приложения OptQuest рассмот­рим пример MS-модели.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.012 сек.)