Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 59
Текст из файла (страница 59)
Это означает, что в комнате ожидания может находиться одновременно до )00 пациентов, заполняющих формы. Перейдем теперь к самой важной части — работе с ресурсами. После заполнения формы пациент ждет, пока не освободится комната первичного осмотра (у нас этот ресурс моделируется классом тгьаяелоовь от термина сг'аяе — первичный осмотр). В терминах модели это интерпретируется так: заявка захватывает ресурс.
Для работы со статическими (неперемешаемыми) ресурсами используется блок нееиоахвегвео, в который также встроена очередь. В этой очереди заявки ожидают, если нет свободных ресурсов. Часть IУ. Современные парадигмы и имитационном моделировании В соответствии с описанным ранее процессом обслужинания, после того как пациент захватил ресурс (комнату первичного осмотра), он перемешается в эту комнату в сопровождении медсестры. Такой вариант использования ресурсов типа "персонал" (эсагг) является достаточно частым, поэтому а библиотеку встроен специальный блок неоне-Хио етоыьСЬа.
Это аналог блока несиоткмосето, но для данною типа блока можно указать, а сопровождении какого ресурса типа асаее пациент перемешается а указанный узел сети. Кроме того, можно указать, отпустить персонал после перемещения или нет. Поскольку в соответствии с правилами этого госпиталя та же медсестра, которая сопровождала пациента, выполняет и первичный осмотр, параметр те1еавеквсотслгсетмосе изменен. Он установлен в еа1ве. ресурс не освобождать.
В качестве узла назначения здесь используется предустановленное значение параметра "1осас1оп ог 1авс ве1вед всасзс тевоитсе". Это означает, что пациент переместится а тот узел сети, а котором располагается последний захваченный статический ресурс, т. е. комната первичного осмотра.
Фрагмент блочной диаграммы процесса обслуживания пациентов а госпитале до данного момента рассмотрения будет иметь вид рис. !4.7. Рис. 14.7. Продолжение процесса обслуживания пациентов Число пациентов, находящихся в данном участке блок-схемы, ограничено имеющимися ресурсами. Пациенты захватывают ресурсы, и если они заканчиваются, то пациенты ожидают, пока кто-нибудь не освободит комнату и не окажется свободной медсестры. Окончание процесса обслуживания (рис. 14.8) моделируется тоже просто. После того как первичный осмотр выполнен, пациент отпускает медсестру (блок ггеенстве типа несиотхктее). Теперь, находясь в комнате первичного осмотра, пациент должен дождаться, пака освободится процедурная комната.
Поэтому блок -е1еаветтьааекоое, а котором освобождается ресурс (комната первичного осмотра) помещен после блока захвата процедурной комнаты ве1вектоскоот. Для получения статистических характеристик этой модели можно очевидным образом использовать средства сбора и отображения такой ннформа- Глава 14.
Дискретно-событийное моделирование ции, в частности, множества данных. Но даже и при простом визуальном анализе анимированного процесса (рис. 14.9) ясно, что ресурсы здесь распределены неравномерно: процедурные комнаты почти не используются, а комнаты первичного осмотра перегружены, медсестер не хватает, пациенты должны ожидать в комнате ожидания длительное время.
Рис. 14.8. Окончание процесса обслуживания пациентов Рис. 14.9. Анимированная модель процесса обслуживания пациентов Часть! К Современные парадигмы в имитационном моделировании Отметим, что вся модель построена с помощью только блоков библиотеки Епгегрпзе ЫЬгагу, фактически, без единой строки программного кода. 14.6. Заключение Дискретно-событийное моделирование имеет огромную сферу приложений — от логистики и систем массового обслуживания до транспортных и производственных систем. Некоторые авторы считают, что парадигма моделирования, основанная на блок-схемах обработки потоков транзакций, является единственным представителем имитационного моделирования: большое число монографий с названием "Имитационное моделирование" посвяшены изложению исключительно этого стиля моделирования. Удачно выбранные базовые принципы, лежащие в основе Апу1лрс, позволяют строить на этой платформе дискретно-событийные модели в стиле, традиционном для этой области моделирования: стиле блочных структурных диаграмм.
Библиотека Епгегрпве агату позволяет создавать модели весьма сложных систем без использования программного кода. Как и другие библиотеки, она открыта для пополнения. АпуЕоус содержит мошные базовые средства разработки дискретно-событийных систем (таймеры, порты, сообгцения, события, стейтчарты и т. и.), с помощью которых можно построить повторно используемые блоки лля высокоуровневого моделирования в любой прикладной области, в которой дискретно-событийная парадигма имитационного моделирования является удобной и адекватной.
Отметим однако, что модели, процессы в которых удобно представлять в дискретном времени, не исчерпываются только системами обслуживания. Модель пешеходного перехода, построенная в главе 6, не относится к этому классу, хотя для ее разработки используются дискретное представление времени. события, системы переходов и другие средства событийного моделирования. Другим примером дискретных систем, не относягдихся к классу систем массового обслуживания, являются протоколы коммуникации. Состояния и системы переходов, таймеры, события и сообщения являются традиционными средствами для спецификации протоколов уже почти 40 лет. Для быстрого моделирования протоколов и распределенных алгоритмов в АпуЕорс может быть разработана библиотека повторно используемых объектов в этой области, аналогичная Епгегрпзе ЫЬгагу.
Глава 15 Многоагентные системы Существует множество определений понятия агента. Общим во всех этих определениях является то, что агелгл — это некоторая сущность, которая обладает активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, может взаимодействовать с окружением и лругими агентами, а также может изменяться (эволюционировать). Многоагентные (или просто агентные) модели используются для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами, а наоборот, эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей — получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе.
Рост произволительности компьютеров и достижения в информационных технологиях, использованные в Апу).орс, сделали возможным реализацию агентных молелей, содержащих десятки и даже сотни тысяч активных агентов. Моделирование агентов и многоагентных систем не представляет сложностей в Апуьорс ни в концептуальном, ни в техническом аспекте: все указанные ранее свойства агентов легко реализуются в этой системе. Основной концепцией Апу1.оя|с является та, что модель состоит из активных объектов„ имеющих кажлый свои правила поведения и взаимодействуюших через явно определенные интерфейсы.
Поэтому агентный подход к построению моделей является в АпуЕорс совершенно естественным: в этой среде можно быстро создавать модели с агентами, взаимодействуюшими как друг с другом, так и со средой. При создании агентной модели логика поведения агентов и их взаимодействие не всегда могут быть выражены чисто графическими средствами, здесь часто приходится использовать программный код. Это не является особенностью только АпуЕорс: например, пакеты Бъагпт и КеРазг для разработки агентных моделей используют только программный код на языке За~а. Часть! И Современные парадигмы в имитационном моделировании В отличие от них, Апу1.ой1с предоставляет для разработки агентных моделей всю мощь визуальной графической разработки: стейтчарты, события, таймеры, синхронное и асинхронное планирование событий, библиотеки ранее определенных активных объектов — все зто оказывается удобным и естественныл1 при разработке агентных моделей.
Однако разработчик обычно должен включать в агентную модель фрагменты кода на языке зача. Эти фрагменты не являются специфическими только для агентных моделей, фактически, все те средства, которые являются полезными для таких моделей, уже были рассмотрены в главе 7. В ланной главе мы частично повторим то,' что было изложено в азове 7, применительно к типичным проблемам, возникающим при разработке именно агентных моделей. После изложения некоторых приемов построения агентов, их коллективов и организации взаимодействия агентов с помощью фрагментов кода на языке .1ауа, в данной главе рассматривается типичная агентная модель„демонстрирующая технику агентного модели1ювания. 15.1.
Агенты в Апу) оус Агенг естественно реализовать с помощью базового объекта Апу1.оя1с — активного объекта. В модели на Апу1 оя1с можно создавать классы активных объектов и далее использовать в модели любое число экземпляров этих классов. Активный объект имеет параметры, которые можно менять извне, переменные, которые люжно считать памятью агента, а также поведение (рис. 15.1).
Интерфейс Рис. 15.1. Агент квк активный объект Апуьорс Параметры могут указывать пол агента, дату рождения и т. п. Переменными можно выразить, например, возраст агента, его координаты в пространстве, социальные свойства. Стейтчарты могут выражать поведение: состояния агента и изменение состояний под воздействием событий и условий. Кроме того, агент может иметь интерфейс для взаимолействия с окружением. 15.2.