Распорядитель финансов («главный бухгалтер») имеет наименование direct. Он управляет работой узлов типа send. Причем для правильной работы модели достаточно одного узла direct; он обслужит все счета без нарушения логики модели. Однако не будет ошибкой, если каждый счет send будет обслуживаться отдельным бухгалтером direct. Поэтому, чтобы разделить статистику по разным участкам моделируемой бухгалтерии, можно использовать несколько узлов direct.
Склад перемещаемых ресурсов имеет наименование attach. Это хранилище какого-то количества однотипного ресурса (например, гаражное хозяйство, имеющее 25 грузовиков). Единицы ресурсов в нужном количестве выделяются транзактам, поступающим в узел attach, если остаток (количество единиц, имеющихся в наличии) позволяет выполнить такое обслуживание. В противном случае возникает очередь не обслуженных транзактов и соответственно дефицит ресурса. Транзакты, получившие ресурсы, вместе с ними мигрируют по графу во время выполнения модели и возвращают по мере необходимости разными способами: либо все единицы вместе, либо небольшими партиями, либо поштучно. На один и тот же склад можно обращаться несколько раз, не возвращая ранее полученные с этого склада ресурсы. Корректность работы склада обеспечивает менеджер - специальный узел manage.
Менеджер (или распорядитель) ресурсов имеет наименование manage. Он управляет работой узлов типа attach. Для правильной работы модели достаточно иметь один узел-менеджер; он обслужит все склады без нарушения логики модели. Однако не будет ошибкой, если склад будет обслуживаться отдельным менеджером. Поэтому, чтобы разделить статистику по разным складам перемещаемых ресурсов, можно использовать несколько узлов-менеджеров. Если при обслуживании какого-либо склада возникает дефицит ресурсов, то в этом случае возможны те же дисциплины обслуживания, которые использовались в узле direct.
Структурный узел финансово-хозяйственных платежей имеет наименование pay. Он предназначен для упрощения той части имитационной модели, которая связана с работой бухгалтерии. Если позволить обращения к счетам бухгалтерского учета из всех частей модели, где возникают требования на проводки или перечисления, то граф станет запутанным. Описание условий прохождения транзактов по путям будет очень длинным и сложным. Условия – это логические выражения с многочисленными if, else, switch, case и while. Очень сложные условия увеличивают модель и порождают семантические ошибки, которые могут быть обнаружены только после длительного тестирования модели. Поэтому вся работа бухгалтерии собирается на одном структурном слое модели (слой 3, см. рис. 1). Обращения на этот слой в нужные входы-узлы происходят с других слоев из узла pay автоматически, без графического объединения этих слоев с помощью дуг.
Структурный узел выделения ресурсов имеет наименование rent. Он применяется для упрощения графа и всей модели при работе со многими складами с различных уровней структурной схемы точно так же, как узел pay.
Произвольный структурный узел имеет наименование down. Он бывает необходим для упрощения очень сложного слоя модели, заключающегося в «развязывании» сложной запутанной схемы, находящейся на одном слое, по двум разных уровням (или слоям). Его польза точно такая же, как полезность узлов pay и rent.
Виртуальный структурный узел имеет наименование parent. Узел parent - мощное средство структурного анализа при создании модели. Узел виртуален. В тексте модели он отсутствует. Этот узел позволяет объединить некоторое множество любых узлов модели и поместить их на более низкий слой, оставив на исходном слое только графический значок parent. Работа с такими узлами возможна только в режиме CASE-технологии создания имитационных моделей при использовании графического конструктора.
2. МОДЕЛИРОВАНИЕ РАБОТЫ С МАТЕРИАЛЬНЫМИ РЕСУРСАМИ
Материальные ресурсы подразделяются на две разновидности: неперемещаемые и перемещаемые. Неперемещаемый ресурс выделяется в определенном месте (как в реальности, так и в модели). Например, мастер в парикмахерской - это один элемент ресурса, выделяемый клиенту для обслуживания (стрижки и бритья). Этот элемент не может перемещаться вместе с клиентом (транзактом). После обслуживания одного клиента он либо приступит к обслуживанию следующего, если есть очередь, либо будет отдыхать.
Перемещаемый ресурс выделяется клиенту, после чего клиент использует его в других местах и возвращает только при отсутствии необходимости дальнейшего использования. Например, ресурс – это гараж; клиенту можно выделить три грузовика для использования в работах, проводимых в других местах (естественно, не в гараже).
Неперемещаемый ресурс (рис. 4) представляет собой «базу», на которой расположены (или к которой приписаны) какие-то ресурсные единицы; их можно использовать только на базе. Поток транзактов поступает в очередь к ресурсу. Неперемещаемый ресурс имитируется в виде многоканального обслуживающего прибора. Каждой ресурсной единице соответствует один канал обслуживания. Канал принимает в себя транзакт (или захватывается транзактом) на время, которое может зависеть от атрибутов узла, транзакта и других параметров. Очередь в имитационной модели описывается в виде узла queue, а многоканальный обслуживающий прибор - узлом типа serv.
top(3): serv («Парикмахеры», N, abs, beta, 0.0,0.0,15.0,7);