Ю. Карпов - Иммитационное моделирование систем с AnyLogic 5 (1124147), страница 58
Текст из файла (страница 58)
Кроме узлов, помептенных в очевидные места плана (комнаты, регистратура, вход и выход), необходимо задать промежуточные узлы сети, например, на пересечении коридоров. Для того чтобы соединить два узла сети, нужно нарисовать ломаную, конечные точки которой будут лежать в соединяемых узлах (например, прямоугольниках). Во время моделирования эти прямоугольники (и только они) будут связаны в единую транспортную сеть. Прямоугольники, лежащие не под конечными точками ломаной.
не будут связаны в сеть и не будут рассматриваться как ресурсы модели. На рис. 14.3 показана анимация с добавленными узлами и сегменталти сети. На некоторые узлы сети необходимо будет ссылаться из объектов блок схемы. Поэтому имена прямоугольников, указанных стрелками, выбраны в соответствии с их смыслом. Эти имена на рисЛ4.3 находятся рядом со стрелкалти. яка ; ' ф яеяьсткрь от Йта1кп Рис. т4.3. Построение сети, со которой будут двигаться заявки Часть! К Сов еменные парадигмы в имитационном моделировании 284 После того как все узлы и сегменты заданы, все графические элементы, образующие сеть, добавляем в группу.
На рис. 14.3 данный элемент назван сетиокхвхчсс. Все элементы сети теперь можно рассматривать как единый объект с этим именем. 14.5.4. Ресурсы модели Основная идея использования сети в подобных моделях состоит в том, что узлы сети представляют ресурсы, причем один тип ресурса может быть прадставлен несколькими узлами, и в сети может быть несколько типов ресурсов. В данной модели используется три типа ресурсов: мелсестры, комнаты первичного осмотра, а также комната ожидания и регистратура (как единое целое). Рис.
14.4. Указание двух типов ресурсов нв сети Для описания каждого типа ресурсов в Апу1вй1с используется блок несискхаевссссе библиотеки Епгегрг1зе ЫЬгагу. В модели необходимо каким-то образом указать, в каких узлах сети располагаются ресурсы данного типа. Это можно сделать, указав названия прямоугольников, принадлежащих сети, в параметре ьотеьосагьоп блока нетиоккаееоотсе. Если ресурсов много, то перечислять все узлы сети тяжело. Поэтому существует альтернативный способ задания узлов для ресурсов: на анимации рисуется ломаная линия, Глава 14.
Диск тно-событийное моделирование ее точки расположены поверх тех узлов сети, которые соответствуют данному типу ресурса. Эта ломаная задается в качестве параметра поееьосас~ос блока несиосхкевосссе. В процессе моделирования ресурсы будут связаны с узлами сети, лежащими под точкалш ломаной, которой они соединены. На рис. !4.4 показана сеть, созданная на предыдушем этапе, и две ломаные линии. Первая линия, названная ртоскооев, задает семь узлов сети, в которых располагаются ресурсы типа "процедурная комната". Вторая линия ст'адекооев задает два узла сети, которые соответствуют комнатам первичного осмотра (от английского медицинского термина стъаяе — первичный осмотр). Еше одним ресурсом модели будут медсестры.
Разработанная до этой фазы соответствующая модель называется кеетсессу Пера -стеве рнаве 1. 14.5.5. Определение сети на структурной диаграмме Мы задали на поле анимации структуру сети и определили, где будут располагаться ресурсы. Теперь необходимо определить сеть и связанные с ней ресурсы на структурной диаграмме.
Сеть описывается блоком нееиотк библиотеки Епгегрггае ЫЬигу. Введем этот блок в поле редактора и назовем его весиоск. Мы изменим только один параметр этого блока с именем р'. ос (группа фигур). Для этого параметра установим имя группы фигур на анимации, задающей структуру сети. У нас это песносхи. ос. Из корневого класса маз в к данному объекту можно обратиться так: асьеасъос.сееиоткргвос (см.
рис. !4.5). Для описания множеств ресурсов используется блок несиотккевосссе библиотеки. Трем типам ресурсов соответствуют три разных экземпляра этого блока, которые помещены в поле редактора. Те параметры, которые изменены в окне свойств этих блоков, представлены на рис. !4.5. Первый экземпляр данного блока с названием осовев описывает множество медсестер.
Пусть в системе будет 3 медсестры, если они свободны, они должны находиться в комнате, на которую мы наложили на анимации прямоугольник тессисссев. Класс этого параметра описан нами как класс пассивных объектов ноеве. Все эти значения устанавливаются для соответствуюших параметров блока пс .ве. Два других типа параметров полностью схожи. Они моделируют комнаты первичного осмотра (ресурсы класса ттгаяекоое) и процедурные комнаты (ресурсы класса рсосепссекоот). Их тип веасзс, это означает, что они не будут перемешаться, они расположены на анимации с именем асъвасъос под точками ломаной с именами рсоскоовв и ссъаяекоо в, их число определяется числом точек связывающей их ломаной, они описаны как классы пассивных объектов с соответствующими именами в дереве классов модели. Все эти три класса просто наследуются от базового класса впсъсу.
Часть Ф. Современные парадигмы в имитационном моделировании ргуо!. впгп1в!гап.пеьтсгКР!уоГ Ьогпеьасаггап: вп!а!ваап.гас!Ногаев сввп!!!у; 3 пеугЕпму: Матье.с!ввв гуре Э!в!го ЬогпекасдаОО' впапвгюп.ргасйаогпв сава!!гу: погпЬег о! ргв оп рс!у!ма пегнЕпдгу: Ргосвг!агеггоогп.агаев гуре: в!вас Ьагпекаавйоп: вмгпв!гоп гггадейоаптв дивов!у: пагпьег а! ргв оп ро!уг!пе пектЕпйу. Тпадвйоагп.а!ввв Риа. 1Я.В.
Определение сети на структурной диаграмме Разработанная до этой фазы соответствующая модель называется веегдепау гтераг~пепс Рьаве 2. 14.5;6. Определение процесса обслуживания в системе Теперь приступим к описанию непосредственнно процесса обслуживания.
Процесс обслуживания будет описываться блочной диаграммой, собранной из блоков библиотеки Епгегрпж ЫЬгагу. Соответствующая модель называетСя Гпгетдепсу г!ерагсгкепс вьаве 3. В качестве источника заявок будем использовать блок воагсе. Выходящие из вопгае заявки ничего не знают о сети, поэтому в блок-схему необходимо добавить блок, после которого заявка будет помещаться в конкретный узел определенной сети. Это блок неаиатхвпсет со следующими параметрами: узел сети, в который необходимо добавить заявку (параметр гзевг вп~ вс'оп.епггепсе, см.
рис.!4.3) и имя сети (сетей в сложной системе может быть несколько). В нашей модели есть единственная сеть с именем пеаиаг!г. Первый шаг в движении пациентов по нашему госпиталю состоит в том, что они подходят к регистратуре и проходят регистрацию. Для перемещения заявок по сети используется блок неьиагхно .ета с параметром узел назначения. На рис. !4.3 этот узел мы обзначили гесьаедтвстеь'оп. Очевидно, что при случайном интервале времени между прибытиями пациентов у регистрации может собраться очередь. Поэтому до самой процедуры регистрации необходимо поставить уже знакомый нам блок дие и уже после него вставить в диаграмму блок петву, моделирующий прохождение регистрации.
Начальный фрагмент блочной диаграммы процесса обслужива- Глава 14, дискретно-сооыгийное моделирование ция пациентов в госпитале, включавшей их прибытие па вход, перемещение к регистрации, ожидание перел регистрацией в очереди и сама процедура регистрации будет иметь вид рис. !4.б. Рис. 14 В. Начальный этап процесса обслуживания пациентов Вместимость задержки у регистрации (параметр сарасзеу) оставим равной единице — пусть только один пациент может выполнять регистрацию. Фактически, каждому элементарному шагу этого процесса соответствует свой блок, и обратно, любой блок имеет ясный смысл шага процесса обслуживания. В этом простом фрагменте ясно видна взаимосвязь обычных блоков библиотеки и блоков сетевой части.
Обычные блоки библиотеки (например, Оцеце и пе1еу) учитывают только время ожидания, время обслуживания и дисциплину обслуживания, а блоки сетевой части библиотеки позволяют учитывать время перемещения и позволяют отобразить это перемещение на анимационной диаграмме. Пока пациент находится в очереди (оцеце) или обслуживается (пегау), он по сети не перемещается и, следовательно, изображается на анимации в одном и том же узле сети. Продолжим разработку диаграммы процесса обслуживания пациентов в госпитале. После регистрации используем блок нееиогхно ° то для переме~цения пациента в комнату ожидания. Задержка на заполнение формы моделирустея С ПОМОШЬЮ бЛОКа Петау. ВМЕСтИМОСтЬ бЛОКа (ПараМЕтр сарасгсу) выставим сообразно плошади этой комнаты, пусть будет )00.