Дискретно событийное (процессное) моделирование 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Дискретно событийное (процессное) моделирование



Библиотека AnyLogic Enterprise Library подерживает дискретно-событийный или "процессный"подход моделирования. С помощью объектов Enterprise Library моделируется системы реального мира, динамика которых представляется как последовательность операций (прибытие, задержка, захват ресурса, разделение) над некими сущностями (entities, по-русски - транзакты, заявки), представляющими оборудование, процессы, клиентов, документы, пакеты данных, транспортные средства и т.п.

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

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

Рассмотрим модель простой системы массового обслуживания – модель кормления (обслуживания) животных на ферме при беспривязном их содержании. В помещении для скота находится оборудование автопоилки и автокормушки, которые предназначены для быстрого и эффективного обслуживания животных. Животные по мере необходимости подходят к автопоилке и автокормушке и потребляют нужное количество воды и корма. Известны количество животных, распределения времени их нахождения у каждого вида оборудования и распределения массы воды и корма, потребляемые животным за раз и в течении суток. Необходимо произвести оценку временных затрат на каждую операцию- поения и кормления. Дискретно-событийная модель обслуживания животных приведена на рисунке 7.5.

Рисунок 7.5- Дискретно-событийная модель обслуживания животных

Животное выступает как источник заявок. Оно может направиться или к автопоилке или к автокормушке. Имеется определенное количество автокормушек и автопоилок, составляющих ресурсы системы кормления.

При необходимости животного:

1. направиться к автокормушке:

1.1- при наличии одной из свободных автокормушек оно начинает поедать корм и занимает кормушку определенное время, после чего животное уходит;

1.2- при отсутствии свободной автокормушк оно становится в очередь, пока не освободится одна из имеющихся в ресурсе автокормушек; и далее идти к 1.1;

2. направиться к автопоилке:

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

1.2- при отсутствии свободной автопоилки оно становится в очередь, пока не освободится одна из имеющихся в ресурсе автопоилок; идти к 1.1;

1.3- если животному нет необходимости далее идти к автокормушке, то оно уходит;

1.4. если животному после поения необходимо идти к автокормушке, то ему идти к.1.1;

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

Создание блок-схемы.

Блок-диаграмма (схема) кормления животных с анимацией приведена на рисунке 7.6. Она состоит из следующих элементов библиотеки Enterprise Library.

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

Объект queue моделирует очередь животных, ожидающих обслуживания у автокормушки.

Объект delay-автокормушка моделирует задержку во времени. В нашем примере он будет имитировать автокормушку, тратящий определенное время на обслуживание животного.

Объект sink обозначает конец блок-схемы.

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

На рисунке 7.6 видно, что 7 животных стоят в очереди, а 261 животных покинули очередь (блок queue), из них 260 обслужили (блок sink), а один еще обслуживается у автокормушки (блок delay _автокормушка).

Во время выполнения модели можно следить за состоянием любого блока диаграммы процесса с помощью окна инспекта этого объекта. В окне инспекта будет отображена базовая информация по выделенному блоку, например, для блока queue будет отображена длина очереди и обслуженных животных (левый график). На правом графике показана вероятность времени нахождения животного в системе обслуживания (очередь+кормление). Возможен вывод также статистических показателей процесса- количества измерений (260), диапазона значений времени нахождения в системе (0,601…8,404), его среднее значение (3,482) и т.д.

Изменение данных модели.

Можно задавать данные модели, изменяя свойства созданных объектов. В свойстве interarrivalTime объекта source указывается, как часто в приходят животные – exponential(1)- или по другому закону. Интервал между приходом клиентов распределен экспоненциально со средним значением, равным 1 единицы модельного времени. Функция exponential() является стандартной функцией генератора случайных чисел AnyLogic. AnyLogic предоставляет функции и других случайных распределений, таких как нормальное, равномерное, треугольное и т.д. В свойстве capacity объекта queue задается максимальная длина очереди.

В свойстве delayTime объекта delay_автокормушка задается время обслуживания (кормления) – triangular(1.8, 2, 3.3). Обслуживание одного животного занимает примерно 2 минуты. Здесь время обслуживания распределено по треугольному закону со средним значением, равным 2 минуте, минимальным – 1.8 и максимальным – 2.3 минуты.

В процессе моделирования AnyLogic позволяет производить сбор и хранение сложной статистики.

Рисунок 7.6- Блок-схема кормления животных с анимацией

7.7- Системно-динамические модели, поддержживаемыне в AnyLogic

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

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

Трансформация причинно-следственных диаграмм в имитационные модели системной динамики

В основах системной динамике, рассмотренной нами в главе 2, предполагается, что поведение системы во времени определяется ее структурой. Причинно-следственные диаграммы помогают наглядно представить в первом приближении структуру системы, взаимодействие ее частей. Это качественный инструмент анализа. Построение даже самой совершенной такой диаграммы не позволит предсказать, каким будет поведение с течением времени — будет ли это экспоненциальный рост, колебания, превышение и коллапс и т.п.

Для количественного описания системы в AnyLogic используется концепция «потоков» и «накопителей». «Потоки» представляют собой темп изменения состояния системы во времени, тогда как «накопители» — состояние системы, своеобразный резервуар, емкость, которая накапливает определенный материальный или информационный ресурс (фактор) с течением времени. Примером служит схема, изображенная на рис. 7.7.

Рисунок 7.7- Простая схема потока с накопителем

 

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

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

Потоки – это активные компоненты системы, они изменяют значения накопителей. В свою очередь, накопители системы определяют значения потоков. Вспомогательные переменные помогают преобразовывать одни числовые значения потоков в другие; они могут произвольно изменять свои значения или быть константами.

«Накопители» аккумулируют («интегрируют») потоки, последние и только они обеспечивают изменение «накопителей».

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

- накопитель; - поток; - вспомогательная переменная.

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

Помимо накопителей и потоков, при построении имитационных моделей динамических систем используются вспомогательные переменные. Эти переменные могут быть равны константам или значениям математических функций от других переменных, т.е. позволяют преобразовывать одни числовые значения в другие. Поток, так же, как и накопитель, является основным элементом системно-динамических диаграмм потоков и накопителей. Поток определяет интенсивность потока, ведущего от одного накопителя к другому. Исходящий из накопителя поток уменьшает значение этого накопителя в каждую единицу модельного времени на значение этого потока, входящий - аналогично увеличивает значение того наокпителя, в который этот поток входит. Один и тот же поток может служить исходящим потоком для одного накопителя и входящим - для другого; в этом случае говорится, что это поток из первого накопителя во второй. Накопители характеризуют статическое состояние системы, а потоки – ее динамику.

В AnyLogic поток задается с помощью элемента- Динамическая переменная.

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

- поток; - вспомогательная переменная.

Наиболее простой формой восприятия потоковой диаграммы является пример с ростом организмов S на субстрате W, рисунок 3.10, который описывается уравнением (3.115)

.

Потоковая диаграмма AnyLogic изображена на рисунке 7.10. AnyLogic отображает получившиеся зависимости между переменными диаграммы потоков и накопителей с помощью стрелок, рисунок 7.8. Стрелка, направленная от параметра k к переменной kWS означает, что параметр k упоминается в формуле переменной kWS.

 

Рисунок 7.8 - Диаграмма потоков и накопителей в AnyLogic

В приведенном примере первоначальное значение сухого вещества W =1000, а S =0. управляющая Потоком переменная kWS=k*W*S. Первоначальное значение потока Поток=1. Результат моделирования – изменения сухого вещества и организмов приведены на графике рисунка 7.8.

 

Агентное моделирование

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

Традиционные подходы имитационного моделирования рассматривают работников предприятия, оборудование, проекты, продукты, клиентов, партнеров как среднее арифметическое или как пассивные заявки/ресурсы в процессе. Например, модели системной динамики оперируют такими понятиями “у нас есть 4 машинно-тракторных посевных агрегата, они могут посеять определенное число гектаров в декаду”.

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

Агентное моделирование не обладает такими ограничениями, поскольку оно предполагает сосредоточение непосредственно на отдельных объектах, их поведении и взаимодействии. Агентная модель – это ряд взаимодействующих активных объектов, которые отражают объекты и отношения в реальном мире. Ю.Г. Карпов отмечает, что агент представляет собой «некуюсущность, которая обладает ктивностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, может взаимодействовать с окружением и другими агентами, а также может изменяться»2.

Агент может обладать следующими характеристиками:

- агент является «идентифицируемым», т.е. представляет собой индивидуума с набором определенных характеристик и правил, определяющих его поведение и правила принятия решений;

- агент находится в определенной среде, позволяющей ему взаимодействовать с другими агентами. Агент автономен и может независимо действовать и принимать решения по взаимодействию с другими агентами

- агент имеет определенную цель, влияющую на его поведение;

- агент гибок и обладает способностью самообучения с течением времени на основе собственного опыта.

Примером агентной модели может быть широко известная модель модель распространения эпидемий, известная в научной литературе как SIR- модель (английская аббревиатура от Susceptive—Infected—Recovered, «Подверженный—Зараженный—Выздоровевший»). Данный тип моделей широко распространен как в системной динамике, так и в агентном моделировании. Модель распространения эпидемии не очень сложна и представляет собой удобный практический пример для знакомства с особенностями агентного моделирования.

Модель SIR предусматривает, что агент может последовательно находиться в следующих состояниях:

1. Подверженное заражению: здоровое животное (агент), у которого еще нет иммунитета;

2. Зараженное: заражение уже произошло, однако вирус в организме проходит инкубационный период;

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

4. Выздоровевшее: животное выздоровело и, в зависимости от болезни, приобрело к ней иммунитет.

Элемент агентной модели – стейтчарт (по аналогии с моделью, изложенной в [ ]) распространения эпидемии среди животных представлен на рис. 7.9. Данная модель включает в себя несколько этапов развития эпидемии.

Так, можно выделить состояние Зараженный и Заболевший. Например, на этапе Зараженный агент может не проявлять признаков болезни. Можно смоделировать, что в состоянии зараженности агент может пребывать несколько дней или недель, что соответствует инкубационному периоду заболевания. В этом случае он будет контактировать с единицами или десятками другими агентами, и вероятность их заражения составит, например, от 10 до 20% — так называемая контагиозность болезни. По истечении инкубационного периода зараженный агент переходит в состояние заболевшего.

Предположим, что в этом состоянии он пребывает на карантине в специальном помещении. В этом состоянии можно смоделировать, что контагиозность агента значительно выше, чем в состоянии зараженности, но при этом количество контактов ограничено. Соответственно, в данном состоянии он не будет активным распространителем болезни. По истечении времени, определяемое параметром Средняя длительность болезни — агент выздоравливает и переходит в состояние выздоровевшее.

 

 

Рисунок 7.9- Элемент агентной модели распространения эпидемии среди животных

 

Дополнительно в модель можно ввести показатель выбраковки животных. В этом случае агент из состояния Заболевший будет переходить в состояние Выздоровевший с определенной вероятностью p, тогда как его переход в состояние Выбракован будет осуществляться с вероятностью (1 – p). Также модель распространения эпидемий можно дополнить и усилиями по вакцинации, когда агенты в состоянии Незараженные при помощи вакцинации переходят в состояние Вакцинированные и уже не подвержены риску заражения. Переход в данное состояние может происходить, например, по пределенной вероятности (если известна статистика вакцинации) или же по условию — в случае, если вакцина имеется в наличии (в данном случае возможно смоделировать ситуацию практически любого уровня сложности, учитывая производственный цикл изготовления вакцины, задержку в поставках и т.п.).

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

Агентные модели, как правило, в прочем как и дисретно-событийные и системно-динамические, не могут в полной мере решать задачи моделирования таких сложных производственных процессов, какие существуют в сельском хозяйстве. Одним из главных преимуществ AnyLogic является возможность комбинирования различных стилей моделирования, позволяющая отражать комплексность и неоднородность систем реального производства. Имеется возможность комбинировать процессные модели, построенные с помощью Enterprise Library, с моделями системной динамики или агентными моделями, или же просто создавать собственные объекты с помощью базовых элементов AnyLogic и включать их в диаграмму, описывающую моделируемый процесс.

 

Контрольные вопросы к главе 7

 

1. Охарактеризуйте возможности Anylogic.

2. Какой язык программирования использует Anylogic.

3. Перечислите основные блоки библиотеки Anylogic.

4. Поясните суть системно-динамического моделирования в Anylogic.

5. Поясните суть дискретно-событийного моделирования в Anylogic.

6. Поясните суть агентного моделирования в Anylogic.

7. Охарактеризуйте роль накопителя.

8. Дайте определение потоку в программах Anylogic.

9. Какова роль вспомогательной переменной?

10. Каково назначение юлка библиотеки delay?

 

 

Источники информации к главе 7

1. Имитационное моделирование систем в среде AnyLogic: учебно- методическое пособие / М. В. Киселёва. Екатеринбург: УГТУ - УПИ, 2009. 88 с.

2. Карпов Ю. Г. Имитационное моделирование систем. Введение в моделирование с AnyLogic 5 / Ю. Г. Карпов. СПб.: БХВ Петербург, 2006. 400 с.

3. К.Н. Мезенцев. Учебное пособие «Моделирование систем в среде AnyLogic 6.4.1».Часть 2 /Под редакцией Заслуженного деятеля науки РФ, д.т.н., профессора А.Б.Николаева. МАДИ. — М.: 2011. 103 с.

Электронные и интернет ресурсы:

4. Многоподходное имитационное моделирование в AnyLogic. XJ Technologies: [электрон. ресурс]. Режим доступа: http://www.xjtek.ru

5. AnyLogic User’s Manual. XJ Technologies: [электрон. ресурс]. Режим доступа: http://www.xjtek.com

6. AnyLogic Tutorial. XJ Technologies: [электрон. ресурс]. Режим доступа: http://www.xjtek.com

7. Борщев А. В. От системной динамики и традиционного имитационного

моделирования — к практическим агентным моделям: причины, технологии, инструменты. http://www.xjtek.com

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 24238; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.246.254 (0.049 с.)