Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Modelirovanie_sistem_uch_posobie_izdatelstvo.doc
Скачиваний:
100
Добавлен:
15.04.2019
Размер:
5.93 Mб
Скачать

4.3. Дискретно-событийное моделирование

Дискретно-событийное моделирование используется для построения модели, отражающей развитие системы во времени, когда состояния системы (точнее – её управляемых переменных) меняются мгновенно в конкретные моменты времени. (Говоря математическим языком, система может меняться только в исчислимое количество моментов времени.) В такие моменты времени происходят события, которые определяется как некоторое мгновенно возникающее воздействие, изменяющие состояние системы. Хотя теоретически дискретно-событийное моделирование можно осуществлять с помощью вычислений вручную, количество данных, которые должны сохраняться и обрабатываться при моделировании большинства реальных систем, диктует необходимость применения вычислительных машин.

4.3.1. Системы массового обслуживания

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

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

Вход Выход

Внутренний процесс обслуживания требований в ОУ

Стек (LIFO)

Рис. 4.1. Дискретно-событийная имитационная модель СМО M/M/1

Таблица 4.1. Примеры систем массового обслуживания

Система

Устройство обслуживания (УО)

Требования

Банк

Кассы

Клиенты

Больница

Врачи, санитары, больничные койки

Пациенты

Аэропорт

Взлётно-посадочные полосы, выходы, пункты регистрации пассажиров

Самолёты, пассажиры

Производство

Станки, рабочие

Детали

Компьютер

Центральный процессор, устройства ввода-вывода

Задачи

Сеть связи

Узлы, линии связи

Сообщения, пакеты

4.3.2. Механизмы продвижения времени

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

Существует два основных подхода к продвижению модельного времени: продвижение времени от события к событию и продвижение времени с постоянным шагом.

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

В качестве примера рассмотрим механизм продвижения времени от события к событию в системе массового обслуживания с одним обслуживающим устройством (рис. 4.2).

Рис. 4.2. Механизм продвижения времени от события к событию СМО с одним ОУ

Здесь использованы следующие обозначения:

t1 ‑ время поступления требования i (t0 = 0);

Аi = titi-1 ‑ время между поступлениями требований i и i1;

Si, ‑ время, потраченное устройством на обслуживание требования i (без учета времени задержки требования в очереди);

Di ‑ время задержки требования i в очереди;

сi = ti + Di, + Si, ‑ время ухода требования i по завершении обслуживания;

еi ‑ время возникновения события i любого типа (значение i, принимаемое часами модельного времени без учета значения е0 = 0).

Каждый из определенных параметров, как правило, будет случайной величиной. Предположим, что нам известны распределения вероятностей для времени между поступлением требований A1 A2,... и для времени обслуживания S1 S2,... и что они имеют функции распределения, обозначенные как FA и FS соответственно. (FA и FS вычисляются путем сбора данных в интересующей нас системе и последующего определения распределений по этим данным).

Алгоритм имитационного моделирования СМО М/М/1 можно описать следующим образом:

  1. В момент времени е0 = 0 устройство находится в состоянии незанятости. Время поступления первого требования определяется путем генерации значения А1 из FA и прибавления его к 0. После этого часы модельного времени переводятся на время возникновения следующего (первого) события e1 = t1. (на рис. 4.2 изогнутые стрелки представляют продвижение часов модельного времени). Поскольку на момент поступления требования t1 устройство находится в состоянии незанятости, оно немедленно начинает обслуживание с задержкой требования в очереди D1=0, и его состояние меняется на занятое.

  2. Время c1 завершения обслуживания поступившего требования определяется путем генерации значения S1 из FS и прибавления его к t1.

  3. И наконец, время поступления второго требования t2 вычисляется по формуле t2 = t1 + А2, где значение А2 генерируется из FA.

  4. Если t2 <c1, как показано на рис. 4.2, часы модельного времени переводятся с e1 на время следующего события е2 = t2. (Если бы c1 было меньше t2, часы были бы переведены с e1 на c1.).Так как требование, поступившее в момент времени t2, обнаруживает, что устройство обслуживания уже занято, число требований в очереди увеличивается с 0 до 1, а время поступления требования записывается в список событий. Однако в этот раз время обслуживания требования S2 не генерируется. Время поступления третьего требования вычисляется по формуле t3 = t2 + А3.

  5. Если c1< t3, как показано на рис. 4.2, часы модельного времени переводятся с е2 на время возникновения следующего события е3 = c1.

  6. Когда требование, обслуживание которого завершено, уходит, начинается обслуживание требования в очереди (того, которое поступило в момент времени t2): вычисляется время его задержки в очереди D2 = c1t2 и с2 = с1 + S2 (теперь S2 генерируется из FS), а число требований в очереди меняется с 1 на 0.

  7. Если t3<c2, часы модельного времени переводятся с е3 на время возникновения следующего события е4 = t3, и т,д.

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

Отметим также, что различают два типа событий, связанных с появлением входных требований: первый тип – это события, приводящие к смене состояния СМО (т.е. УО), с «свободно» на «занято» или обратно, второй – это события, не приводящие к смене состояния УО. На рис. 4.2 типы событий чередуются: к типу 1 относятся нечетные события, к типу 2 – чётные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]