Моделирование дискретных событий сообщение

Обновлено: 07.07.2024

Общая структура моделирования сложной системы с использованием имитации с дискретными событиями. Планирование события или алгоритм продвижения времени. Характеристика ручного моделирования. Особенности обработки списков и их динамическое распределение.

Рубрика Экономико-математическое моделирование
Вид курсовая работа
Язык русский
Дата добавления 04.02.2011
Размер файла 171,3 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Содержание

1. Концепции в дискретно-событийном моделировании

1.1 Планирование события или алгоритм продвижения времени

1.2 Принципы

1.3 Ручное моделирование, использующее планирование событий

2. Обработка списков

3 Использование динамического распределения и связанных списков

Заключение

Список использованных источников

моделирование алгоритм планирование список

Введение

Данная курсовая работа раскрывает общую структуру моделирования сложной системы, с использованием имитации с дискретными событиями. Она охватывает основные блоки формирования всех моделей моделирования с дискретными событиями: объекты и свойства, действия и события. В моделировании с дискретными событиями система моделируется в терминах ее состояний в каждый момент времени: объекты, которые проходят через систему и объекты, которые представляют системные ресурсы; действия и события, которые изменяют состоянию системы. Модели с дискретными событиями соответствуют таким системам, для которых изменения состояний системы происходят только в дискретные моменты времени. Работа представляет и объясняет фундаментальные концепции и подходы, лежащие в основе всех пакетов моделирования с дискретными событиями. Эти концепции и подходы не связаны с конкретным пакетом. Многие из пакетов используют различную терминологию, отличную от принятой здесь. Более того, разрабатывают множество структурных компонентов с более высоким уровнем, чтобы упростить моделирование для конкретной прикладной области. Глава 1 общих принципов (часть 1.1) охватывает общие принципы и концепции моделирования с дискретными событиями, намечающимися событиями или алгоритмами продвижения времени, и три распространенных подхода: планирование событий, взаимодействие процессов и сканирование деятельности.

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

1. Концепции в дискретно-событийном моделировании

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

Система - множество объектов (например, людей и машин), которые взаимодействуют одновременно для достижения одной или большего количества целей.

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

Состояние системы - множество переменных, которые содержат всю информацию, необходимую для описания системы в любое время.

Объект - любой объект или компонент в системе, который должен быть представлен в явном виде в модели (например, обслуживающее устройство, клиент, машина).

Свойство или атрибут - свойства данного объекта (например, приоритет ожидающего клиента, маршрутизация процесса работ в цеху).

Список - множество (постоянное или временное) связанных объектов, упорядоченное некоторым логическим способом (как, например, все клиенты, находящиеся в настоящее время в очереди ожидания, упорядоченные по принципу "раньше прибыл, раньше обслужился" или по приоритету).

Событие - возникает мгновенно, когда изменяется состояние системы (как, например, прибытие нового клиента).

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

Список событий - список намеченных будущих событий, упорядоченных по времени возникновения; также известный как список будущих событий (СБС).

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

Задержка - продолжительность времени неопределенной длины, для которого не известно заранее, когда оно заканчивается (например, задержка клиента в очереди по правилу "последний пришел - первый обслужился", в котором начало обслуживания зависит от будущих поступлений).

Часы - переменная, представляющая протекание времени моделирования, называемая в примерах ЧАСЫ (CLOCK).

Различные пакеты имитационного моделирования использует различные термины для этой же самой или подобной концепции. Например, списки иногда названы последовательностями, очередями или цепочками. Последовательности или списки используются для хранения намеченных событий также как объектов. Объекты в списке всегда упорядочиваются в соответствии с некоторым правилом, как, например FIFO или LIFO или по некоторым признаком объекта, как, например приоритет или соответствующий срок. Событие всегда занимает место в списке будущих событий согласно намеченному времени. Раздел1.2 обсуждает множество методов для обработки списков и представляет некоторые из методологий для эффективной обработки упорядоченных последовательностей или списков.

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

1. Детерминировано, например, всегда точно 5 минут.

2. Статистически, например, как случайное извлечение из чисел 2, 5, 7 с равной вероятностью.

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

Продолжительность определяемого действия вычисляется в момент его начала. На его продолжительность не воздействует возникновение других событий (если, как позволяют некоторые пакеты имитационного моделирования, не используется логика для отмены события). Чтобы сохранить последовательность действий и их ожидаемые времена завершения в имитируемый момент, время завершения действия равняется времени, продолжительности действия начиная с момента, когда намечено событие при его создании. Например, если текущая запись ЧАСОВ модельного времени равна 100 минутам и время осмотра (равное точно 5 минутам) только начинается, то намечается событие определенного типа (событие конец проверки) и определяется время события (100 + 5 = 105 минут).

В отличие от действия, продолжительность времени задержки не определяется проектировщиком модели заранее, а скорее определяется системными условиями. Весьма часто, продолжительность задержки измеряется и является одним из желательных выходных данных выполняемой модели.

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

Задержку иногда называют условным ожиданием, в то время как действие называют безусловным ожиданием. Завершение действия - событие, часто называемое первичным событием, для управления которым помещается уведомление о событии в СБС. Напротив, управление задержками связано с помещением объекта в другой список, возможно представляющий очередь ожидания, до такого времени, когда системные условия разрешат обработку объекта. Окончание задержки иногда называют условным или вторичным событием, но такие события не представлены в соответствующих уведомлениях о событии и они не появляются в СБС.

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

ПРИМЕР 1 (Эйбл (Able) и Бейке (Baker), повторное рассмотрение)

Этот пример иллюстрирует процедуру имитации, когда имеются больше чем один канал обслуживания. Рассмотрите ресторан "обслуживающий клиентов непосредственно в автомобиле", где официанты придорожного ресторана берут заказы и приносят еду к автомобилю. Автомобили прибывают, как показано в табл. 1.1. Имеются два официанта придорожного ресторана: Эйбл и Бейке. Эйбл способный лучше делать работу и работает немного быстрее, чем Бейке.

Дискретно-событийное моделирование — это вид имитационного моделирования. В дискретно-событийном моделировании функционирование системы представляется как хронологическая последовательность событий. Событие происходит в определенный момент времени и знаменует собой изменение состояния системы.

Содержание

Компоненты системы дискретно-событийного моделирования

Кроме переменных, определяющих состояние системы, и логики, определяющей, что произойдет в ответ на какое-то событие, система дискретно-событийного моделирования содержит следующие компоненты:

Основной компонент системы, синхронизирующий изменения системы, т.е. возникновение событий.

Список событий

Система моделирования поддерживает по крайней мере один список событий моделирования.

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

Генераторы случайных чисел

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

Статистика

Основные данные, которые собираются в системах дискретно-событийного моделирования:

  • Средняя занятость (доступность) ресурсов
  • Среднее количество клиентов в очереди
  • Среднее время ожидания в очереди

Условие завершения

Условием завершения могут выступать:

  • Возникновение заданного события (например, достижение 10-минутного времени ожидания в очереди)
  • Прохождение заданного числа циклов по часам системы моделирования

Реализация

Системы дискретно-событийного моделирования -- это, чаще всего, проблемно-ориентированные языки программирования или библиотеки для высокоуровневых языков. Наиболее известные: Arena, AnyLogic, SIMSCRIPT, SLAM, SIMAN, AweSim, GPSS.

Дискретно-событийное моделирование (англ. discrete-event simulation, DES) — это вид имитационного моделирования. В дискретно-событийном моделировании функционирование системы представляется как хронологическая последовательность событий. Событие происходит в определенный момент времени и знаменует собой изменение состояния системы.

Компоненты системы дискретно-событийного моделирования

Кроме переменных, определяющих состояние системы, и логики, определяющей, что произойдет в ответ на какое-то событие, система дискретно-событийного моделирования содержит следующие компоненты:

Основной компонент системы, синхронизирующий изменения системы, т.е. возникновение событий.

Список событий

Система моделирования поддерживает по крайней мере один список событий моделирования.

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

Генераторы случайных чисел

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

Статистика

Основные данные, которые собираются в системах дискретно-событийного моделирования:

  • Средняя занятость (доступность) ресурсов
  • Среднее количество клиентов в очереди
  • Среднее время ожидания в очереди

Условие завершения

Условием завершения могут выступать:

  • Возникновение заданного события (например, достижение 10-минутного времени ожидания в очереди)
  • Прохождение заданного числа циклов по часам системы моделирования

Реализация

Системы дискретно-событийного моделирования—это, чаще всего, проблемно-ориентированные языки программирования или библиотеки для высокоуровневых языков. Наиболее известные: Arena, AnyLogic, SIMSCRIPT, SLAM, SIMAN, AweSim, GPSS.

А дискретное моделирование (DES) моделирует работу система как (дискретный) цепочка событий во время. Каждое событие происходит в определенный момент времени и отмечает изменение штат в системе. [1] Предполагается, что между последовательными событиями в системе не произойдет никаких изменений; таким образом, время моделирования может напрямую перейти к времени наступления следующего события, которое называется время следующего события.

В дополнение к временной прогрессии следующего события существует также альтернативный подход, называемый прогрессия времени с фиксированным приращением, где время разбивается на небольшие отрезки времени, а состояние системы обновляется в соответствии с набором событий / действий, происходящих во временном отрезке. [2] Поскольку не нужно моделировать каждый временной интервал, моделирование времени следующего события обычно может выполняться намного быстрее, чем соответствующее моделирование времени с фиксированным приращением.

Обе формы DES контрастируют с непрерывное моделирование в котором состояние системы изменяется непрерывно с течением времени на основе набора дифференциальные уравнения определение скорости изменения переменных состояния.

Содержание

пример

Распространенным упражнением в обучении построению симуляций дискретных событий является моделирование очередь, например, клиенты, прибывающие в банк для обслуживания кассира. В этом примере системные объекты Клиент-очередь и Кассиры. Системные события Клиент-Прибытие и Клиент-Выезд. (Событие Teller-Begins-Service могут быть частью логики событий прибытия и отправления.) Состояния системы, которые изменяются этими событиями, являются Количество клиентов в очереди (целое число от 0 до n) и Теллер-Статус (занят или свободен). В случайные переменные которые необходимо охарактеризовать для моделирования этой системы стохастически находятся Клиент-Время прибытия и Teller-Service-Time. Агентная среда для моделирования производительности оптимистичного параллельного симулятора дискретных событий является еще одним примером симуляции дискретных событий. [3]

Компоненты

В дополнение к логике того, что происходит при возникновении системных событий, моделирование дискретных событий включает следующее:

государство

Состояние системы - это набор переменных, который фиксирует основные свойства системы, которую необходимо изучить. Траектория состояния во времени S (t) математически может быть представлена ​​как ступенчатая функция значение которого может изменяться всякий раз, когда происходит событие.

Список событий

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

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

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

Набор ожидающих событий обычно организован как приоритетная очередь, отсортированный по времени события. [4] То есть, независимо от порядка, в котором события добавляются в набор событий, они удаляются в строго хронологическом порядке. Различные реализации приоритетной очереди были изучены в контексте моделирования дискретных событий; [5] изученные альтернативы включали растопыренные деревья, пропустить списки, календарные очереди, [6] и лестничные очереди. [7] [8] На массивно-параллельные машины, такие как многоядерный или многоядерный Процессоры, ожидающий набор событий может быть реализован, полагаясь на неблокирующие алгоритмы, чтобы снизить стоимость синхронизации между параллельными потоками. [9] [10]

Как правило, события планируются динамически по мере продолжения моделирования. Например, в примере банка, упомянутом выше, событие CUSTOMER-ARRIVAL в момент времени t, если CUSTOMER_QUEUE было пустым и TELLER было бездействующим, включало бы создание последующего события CUSTOMER-DEPARTURE, которое произойдет в момент времени t + s, где s число, полученное из распределения ВРЕМЯ ОБСЛУЖИВАНИЯ.

Генераторы случайных чисел

Моделирование должно генерировать случайные переменные различных видов, в зависимости от модели системы. Это достигается одним или несколькими Генераторы псевдослучайных чисел. Использование псевдослучайных чисел в противоположность истинным случайным числам является преимуществом, если симуляция нуждается в повторном запуске с точно таким же поведением.

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

Статистика

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

Конечное условие

Трехэтапный подход

Пидд (1998) предложил трехэтапный подход к моделированию дискретных событий. При таком подходе первая фаза - переход к следующему хронологическому событию. Второй этап - выполнить все события, которые безусловно происходят в это время (они называются B-событиями). Третий этап - выполнить все события, которые условно происходят в это время (они называются C-событиями). Трехэтапный подход представляет собой уточнение подхода, основанного на событиях, при котором одновременные события упорядочиваются таким образом, чтобы максимально эффективно использовать ресурсы компьютера. Трехэтапный подход используется рядом коммерческих пакетов программного обеспечения для моделирования, но с точки зрения пользователя, особенности лежащего в основе метода моделирования обычно скрыты.

Общее использование

Диагностика проблем процесса

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

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

Приложения для больниц

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

Идеи повышения производительности лабораторных тестов

Многие идеи по улучшению систем основаны на надежных принципах, проверенных методологиях (Худой, Шесть Сигм, TQMи т. д.), но не смогли улучшить общую систему. Имитационная модель позволяет пользователю понять и протестировать идею повышения производительности в контексте всей системы.

Оценка решений по капиталовложениям

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

Сетевые симуляторы

Симуляция дискретных событий используется в компьютерной сети для моделирования новых протоколов, различных системных архитектур (распределенных, иерархических, централизованных, P2P) перед фактическим развертыванием. Можно определить различные метрики оценки, такие как время обслуживания, пропускная способность, отброшенные пакеты, потребление ресурсов и т. Д.

Определим основные понятия и термины, используемые в моде­лировании.

Система - множество объектов (например, людей и машин), которые взаимодействуют одновременно для достижения одной или большего количества целей.

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

Состояние системы - множество переменных, которые содер­жат всю информацию, необходимую для описания свойств системы в любое время.

Объект - любой элемент или компонент в системе, который должен быть представлен в модели в явном виде (например, обслу­живающее устройство, клиент, машина).

Свойство или атрибут - свойства данного объекта (например, приоритет ожидающего клиента, маршрут процесса выполнения ра­бот в цеху).

Событие - мгновенно возникающее изменение состояние сис­темы (например, прибытие нового требования).

Уведомление о событии - запись события, которое произойдет в потоке событий или в некотором будущем времени наряду с любы­ми связанными данными, необходимыми для обработки события (за­пись всегда включает тип события и время события).

Список событий - список намеченных будущих событий, упо­рядоченных по времени возникновения, известный также как список будущих событий (СБС).

Действие - продолжительность времени указанного промежут­ка (например, время обслуживания или время между поступлениями заявок), для которого известно, когда оно начинается и заканчивается (хотя оно может быть определено в терминах статистического рас­пределения).

Модельное время - неотрицательная возрастающая величина, отражающая течение времени в имитационной модели.

Часы - переменная, отражающая протекание времени модели­рования, называется в примерах ЧАСЫ (CLOCK).

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

Для СМО с одним устройством обслуживания событиями будут поступление требования и конец его обслуживания устройством. На­чало обслуживания - это условное событие, которое зависит от со­стояния прибора (занят или свободен) и числа требований, находя­щихся в очереди. Задержку иногда называют условным ожиданием, в то время как действие называют безусловным ожиданием. Дейст­виями будут время между поступлениями требований и время обслу­живания прибором. Завершение действия - событие, часто называе­мое первичным событием, для управления которым в СБС помеща­ется уведомление о событии. Напротив, управление задержками свя­зано с помещением объекта в другой список, возможно представ­ляющий очередь ожидания до такого времени, когда системные усло­вия разрешат обработку требования. Окончание задержки иногда на­зывают условным или вторичным событием, но такие события не представлены в соответствующих уведомлениях о событиях и не по­являются в СБС.

С точки зрения объектного подхода имеются динамические объ­екты - требования (ПОКУПАТЕЛИ) и некоторый ресурс - устройст­во обслуживания (статический объект ПРОДАВЕЦ), которое они используют. Если требование претендует на ресурс, а он занят, то оно становится в ОЧЕРЕДЬ к ресурсу. ОЧЕРЕДЬ может быть отдельным объектом или просто списком, связанным с ресурсом. Примем за пра­вило обслуживания - FIFO.

№ покупателя
Время поступления,
Время обслуживания,


1. Создать динамический объект ПОКУПАТЕЛЬ в виде струк­туры данных, включающей в себя поля: номер покупателя -j, момент его прихода - , а также при необходимости свойства покупателя или его атрибуты (например, его приоритет). Запланировать событие - приход покупателя j на момент времени - т.е. создать уведом­ление о событии в СБС.

2. Запланировать следующее событие для покупателя j -ЗАПРОС-НАЗНАЧЕНИЕ ресурса R (ПРОДАВЦА) на момент време­ни . Запланировать приход следующего динамического объекта ПОКУПАТЕЛЬ j + 1, т.е. определить событие прихода следующего покупателя .

Описание процесса использования ресурса требованием целесо­образно разбить на три подпрограммы.

Первая - это ЗАПРОС-НАЗНАЧЕНИЕ ресурса R требованию / (в языке GPSS этой подпрограмме соответствует блок SEIZE). Алго­ритм ее работы следующий:

2. Если ресурс R занятый, то поставить требование j в ОЧЕРЕДЬ к ресурсу R.

Третья подпрограмма - ОСВОБОЖДЕНИЕ ресурса R требова­нием j (в языке GPSS этой подпрограмме соответствует блок RELEASE). Алгоритм ее работы следующий:

2. Проверить, есть ли требования в ОЧЕРЕДИ к ресурсу R? Если есть, то выбрать требование из ОЧЕРЕДИ и запланировать для него событие ЗАПРОС-НАЗНАЧЕНИЕ ресурса R.

Подпрограмма УНИЧТОЖЕНИЕ требования (в языке GPSS этой подпрограмме соответствует блок TERMINATE) необходима для уничтожения структуры данных каждого требования. Если тре­бования не уничтожать, то со временем они переполнят память ком­пьютера.

Кроме перечисленных подпрограмм необходима программа управления процессом моделирования (ПУМ), которая запускает процесс моделирования и отслеживает движение каждого требования по модели путем вызова названных подпрограмм обработки событий. Другое назначение этой программы - вести список упорядоченных во времени событий СБС и продвигать ЧАСЫ модельного времени от события к событию. В языке GPSS функции ПУМ выполняет про­грамма-интерпретатор (транслятор).

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

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

В любое данное время моделирования СБС содержит все предварительно намеченные будущие события и связанные с этими событиями времена В СБС события упорядочены в хро­нологическом порядке по времени, то есть времена событий удовле­творяют условиям

(1.12)

Время значения ЧАСОВ - текущее значение времени моде­лирования. Событие, связанное со временем , называется пред­стоящим событием, то есть это следующее событие, которое про­изойдет. После того, как отображающие состояния системы ЧА­СЫ = во время моделирования были модифицированы, ЧАСЫ продвигаются ко времени моделирования ЧАСЫ = , предстоящее намеченное событие удаляется из СБС и выполняется подпрограмма события. Выполнение подпрограммы предстоящего события означа­ет, что отображено новое состояние системы в течение времени , которое создано на основании старого состояния модели во время и характера предстоящего события. Во время новые будущие со­бытия могут произойти или не произойти, но если любые из них на­мечены, то создаются намеченные события и помещаются в соответ­ствующие позиции в СБС. После того, как новое отображение со­стояния системы в течение времени было модифицировано, ЧАСЫ продвигаются ко времени нового предстоящего события, и выполняется подпрограмма этого события. Такой процесс повторяет­ся до окончания имитации. На рис. 1.4 показана структурная схема имитационной модели.

В момент начала моделирования (время моделирования =0) ПУМ передает управление подпрограмме ГЕНЕРАТОР, которая оп­ределяет момент прихода первого покупателя и намечает событие ЗАПРОС-НАЗНАЧЕНИЕ ресурса R в СБС на время = . Так как больше событий в системе нет, то ЧАСЫ переводятся на значение времени , вызывается подпрограмма ГЕНЕРАТОР и подпрограмма ЗАПРОС-НАЗНАЧЕНИЕ ресурса R.

Подпрограмма ГЕНЕРАТОР определяет будущее событие (мо­мент прихода второго покупателя ) и намечает это событие в СБС на время .

Подпрограмма ОБСЛУЖИВАНИЕ определяет событие конца обслуживания покупателя 1, как , т.е. создается уведомле­ние о будущем событии в СБС для передачи управления подпро­грамме ОСВОБОЖДЕНИЯ ресурса R требованием 1 на время .


Таким образом, в СБС имеется два элемента - один с намечен­ным событием появления покупателя 2 на время , а второй с наме­ченным событием окончания обслуживания покупателя 1 на время . Если время , то ЧАСЫ будут переведены на время , т. е. снова будет вызвана подпрограмма ГЕНЕРАТОР и сгенерирова­но появление покупателя 2. В этот же момент времени произойдет вызов подпрограммы ГЕНЕРАТОР, которая наметит в СБС появле­ние покупателя 3 на время и вызов подпрограммы ЗАПРОС-НАЗНАЧЕНИЕ ресурса R, но так как ресурс занят обслуживанием покупателя 1, то покупатель 2 будет поставлен в очередь к ресурсу R.

В СБС снова окажутся два элемента - один для намеченного со­бытия появления покупателя 3 на время , а второй с намеченным событием окончания обслуживания покупателя 1 на время . Если время , то ЧАСЫ будут переведены на время , т. е. бу­дет вызвана подпрограмма ОСВОБОЖДЕНИЕ ресурса R покупате­лем 1.

Вызванная в это же модельное время подпрограмма УНИЧТОЖЕНИЕ разрушит структуру данных (удалит ссылку на ад­рес) для покупателя 1. Эта же подпрограмма при необходимости мог­ла бы вычислить время пребывания покупателя 1 в системе, как - ( , для дальнейшей статистической оценки времени пребыва­ния покупателей в системе.

В дальнейшем жизненный цикл других покупателей в системе будет происходить по описанному выше алгоритму.

Остается открытым вопрос об окончании процесса моделирова­ния. Возможны три варианта:

1. Через модель пройдут все покупатели, сгенерированные ГЕНЕРАТОРОМ, например, 100 покупателей. В этом случае в СБС после обслуживания последнего, сотого, покупателя не будет ни од­ного намеченного события.

2. Если поток покупателей от генератора не ограничен (напри­мер, генерируется неограниченный пуассоновский поток), то модели­рование можно закончить после прохождения через модель опреде­ленного количества покупателей, например, 1000. Для этого в под­программе УНИЧТОЖЕНИЕ надо поставить счетчик покупателей и прекратить моделирование после 1000 покупателей. В языке GPSS такой счетчик организуется в команде START, которая начинает про­цесс моделирования.

3. Необходимо промоделировать работу системы в течение за­данного периода времени, например, 480 мин. В этом случае можно при каждом продвижении ЧАСОВ модельного времени f проводить сравнение текущего времени со значением 480. Как только значение модельного времени будет больше или равно 480, необходимо пре­кратить моделирование. Однако такой способ неудачный, так как может сильно замедлить работу модели из-за проверки условия. По­этому обычно поступают следующим образом. Генерируют специ­альное требование-таймер с помощью еще одной подпрограммы ГЕНЕРАТОР с намеченным временем входа в модель = 480. Тре­бование-таймер после генерации сразу же направляется в еще одну подпрограмму УНИЧТОЖЕНИЯ, в которой ставят счетчик требова­ний на единицу. По этому счетчику прекращают моделирование. В этом случае в СБС будет все время находиться элемент для требова­ния-таймера со временем наступления события 480. Как только это событие станет предстоящим намеченным, ЧАСЫ будут переведены на время 480 и моделирование прекратится.

В процессе моделирования обычно собирается статистическая информация о работе модели при каждом продвижении ЧАСОВ мо­дельного времени. Такой информацией может быть величина очере­ди, время пребывания в очереди и устройстве обслуживания, загрузка устройства, состояние прибора и другие параметры. Для сбора этой информации обычно создается подпрограмма ВЫБОРОЧНЫЙ ИЗМЕРИТЕЛЬ, которая накапливает ее и по окончании моделирова­ния выдает стандартный статистический отчет. В языке GPSS такая статистическая информация накапливается в системных числовых атрибутах (СЧА) и доступна в процессе моделирования только на считывание. Доступ к СЧА дает возможность управлять процессом движения требований, например, ограничивать размер или время на­хождения в очереди.

В этой главе даны основы организации моделирования на при­мере простой СМО. В языке GPSS обычно используются более слож­ные алгоритмы, описанные в параграфе 4.22.

Читайте также: