logo

4.3. Элементы моделей в Arena

Рассмотрим более подробно основные компоненты моделей Arena.

  1. Объект является основным элементом, вокруг которого и происходят все события в модели. Объекты являются динамическими элементами так как они создаются в модели, движутся в ней и удаляются из неё. Хотя, можно обойтись и без удаления объектов, заставив их двигаться по кругу, но они, по крайней мере, должны быть созданы. Объекты могут изображать реальные предметы или события. Так, в примере с парикмахерской было два типа объектов – клиенты и сигналы для выполнения соответствующих действий (закрытие парикмахерской, подсчёт прибыли).

  2. Атрибуты придают объектам индивидуальные черты. Атрибут является характеристикой всех объектов, а его значение специфично для каждого отдельного объекта. Например, атрибут Color (Цвет) может быть присущ группе объектов, и иметь индивидуальные значения: Red (Красный), Blue (Голубой), Yellow (Жёлтый) и т.д. для каждого значения из группы. В задаче с парикмахерской мы использовали атрибут duration для назначения каждому клиенту своего определённого времени обслуживания.

  3. Переменная. Без этого элемента невозможно обойтись в достаточно сложных математических расчетах. Переменные отражают характеристики системы, а не отдельного объекта. В Arena есть два типа переменных: системные и определенные пользователем. Для первых в системе зарезервированы имена, которые не должны повторяться в названиях, устанавливаемых пользователем. Например: TNOW, NQ и др. Изменение значения переменной инициируется движением объектов или оператором. Переменные могут быть скалярными (иметь одно изменяющееся значение), векторными (иметь одновременно набор значений) или двумерными матрицами (иметь одновременно набор значений, который можно упорядочить с помощью двух индексов переменной).

  4. Ресурсы. Для того чтобы возникла очередь, надо организовать конкуренцию объектов за право использования ограниченного ресурса. Таким образом, характерной отличительной особенностью ресурса является его способность быть занятым объектом. Ресурсы не появляются и не исчезают из системы подобно объектам, но их количество может меняться согласно расписанию. Особенность ресурсов, о которой надо помнить, чтобы не допустить ошибки при создании модели, заключается в том, что по логике Arena не ресурс захватывает объект, а наоборот. Например, в нашей модели не парикмахер приглашает клиента на обслуживание, а клиент ангажирует парикмахера. Поэтому, когда мы заполняем параметры блока Process, в графе Quantity окна Resource мы должны написать, сколько единиц ресурса захватывается одним объектом, а не имеющееся количество единиц ресурса и не количество объектов, которое может быть обслужено единицей ресурса. В примере с парикмахерской, единица в графе Quantity (рис. 3.14) означает, что каждый клиент для своего обслуживания привлекает одного парикмахера. Такая логика установлена для того, чтобы одному объекту можно было отвести сразу несколько разнородных ресурсов. Ситуация, когда один ресурс может быть разделён несколькими объектами, исключена по определению.

  5. Очереди. Если объект не движется по системе и не обслуживается, то он должен где-то находиться. Таким местом пребывания объекта является очередь. Как уже отмечалось, в Arena очереди имеют имена, составляемые из имён блоков Process, в которых они возникают, и слова Queue. Посредством имени очереди можно отслеживать её параметры.

  6. Блоки сбора статистической информации. Сбор информации в Arena происходит автоматически и в значительной мере скрыт от пользователя, которому остаётся лишь ставить или снимать отметки в полях запросов на сбор информации, чтобы управлять этим процессом. Исключение составляет информация о значениях переменных. Чтобы её записать, надо воспользоваться блоком Record. Следует обратить внимание на способ определения средних значений. В Arena средние значения определяются путём усреднения по времени (за исключением блока Record) согласно формуле:

= , (4.1)

где t – текущее время, T – время счёта. Согласно этому методу, основной вклад в среднее значение может давать не наиболее часто выпадающее значение переменной, а то значение, которое сохраняется более длительное время. Иногда же требуется выполнить усреднение не по времени, а по числу событий. В этом случае надо пользоваться блоком Record для записи информации. В этом блоке в поле Type можно выбрать значения: Count (Счёт), Entity Statistics (Статистические данные, относящиеся к объекту), Time Interval (Промежуток времени), Time Between (Время между) и Expression (Выражение). Параметр Count означает, что в отчёте будет представлена сумма величин, записанных в поле Value. В это поле можно вводить только числа, но не выражения и не имена переменных. Entity Statistics означает сбор статистических данных об объектах, подобно тому, как это происходит при выборе Record Entity Statistics в блоке Dispose. Выбор Time Interval приведёт к записи значения интервала времени между приходом первого и последнего объектов с указанным атрибутом. Time Between означает время между приходом двух объектов, следующих один за другим. Выбор Expression позволяет записывать значения переменных.

  1. Часы. Программное время идёт при моделировании не так, как в реальной системе. Последовательные события просто происходят одно за другим. При этом неважно большой или малый интервал времени их разделяет, скорость счёта не изменится. Иными словами, Arena не отображает временные соотношения между событиями, хотя при помощи настроек можно реализовать и иной режим.