Имитационная модель СМО
Курсовая работа, 28 Февраля 2013, автор: пользователь скрыл имя
Краткое описание
Имитационная модель СМО представляет собой алгоритм, отражающий поведение СМО, т.е. отражающий изменения состояния СМО во времени при заданных потоках заявок, поступающих на входы системы. Параметры входных потоков заявок - внешние параметры СМО. Выходными параметрами являются величины, характеризующие свойства системы - качество ее функционирования. Примеры выходных параметров: производительность СМО - среднее число заявок, обслуживаемых в единицу времени; коэффициенты загрузки оборудования - отношение времен обслуживания к общему времени в каждом ОА;
Содержимое работы - 1 файл
КУРСОВОЙ.doc
— 799.50 Кб (Скачать файл)S0-Система свободна, заявок нет
S1-одна заявка под обслуживанием очереди нет
S2-одна заявка под обслуживанием одна заявка в очереди
Sm+1- одна заявка под обслуживанием m мест в очереди занято
Где
pi – вероятность наступления i- го события.
- интенсивность потока
- средние число заявок обслуживаемых в единицу времени.
А – абсолютная пропускная способность
q – относительная пропускная способность
Ротк – вероятность отказа
- среднее значение занятых мест в очереди
- среднее время ожидания заявки в очереди
- время нахождения заявки в системе
Математическое представление многоканальной системы с ожиданиями:
λ λ λ λ λ λ λ
μ 2μ … …
μ μ μ μ μ μ μ
S0-Система свободна, заявок нет
S1-1 канал занят очереди нет
S2-2 канала занято очереди нет
Sn- все каналы заняты очереди нет
Sn+1- все каналы заняты 1 место в очереди занято
Sn+m- все каналы заняты m заявок в очереди
Где
pi – вероятность наступления i- го события.
- интенсивность потока
- средние число заявок обслуживаемых в единицу времени.
А – абсолютная пропускная способность
q – относительная пропускная способность
Ротк – вероятность отказа
- среднее значение занятых мест в очереди
- среднее время ожидания заявки в очереди
- время нахождения заявки в системе
Для облегчения
математического расчета систем
Листинг программы представлен в приложении А
Рисунок 3.1 – Окно программы
Результаты произведенных вычислений:
**********Первая Фаза**********
ro=0,600
p0=0,434
p1=0,260
p2=0,156
p3=0,094
Pотк=0,056
Pобс=0,944
A=0,047
r=0,512
t|=10,243
t|=22,243
**********Вторая Фаза**********
ro=1,333
p0=0,256
p1=0,341
p2=0,228
p3=0,101
p4=0,045
p5=0,020
p6=0,009
Pотк=0,009
Pобс=0,991
k=0,512
r=0,112
Tожид=1,106
Тобсл=8,250
Tсист=9,356
**********Третья Фаза*********
ro=0,700
p0=0,361
p1=0,252
p2=0,177
p3=0,124
Pотк=0,087
Pобс=0,913
A=0,213
r=0,684
t|=2,931
t|=5,931
= 3,581
4 Описание инструментария
Как было приведенно выше для проектирования данной модели выбран имитационный язык программирования GPSS, тогда для реализации в нем программы необходимы следующие операторы:
GENERATE A,B,C,D,E
С помощью операндов A и B, задаваемых как вещественные или целые положительные числа ( возможно, выражения), определяется равномерное распределение интервалов при генерации заявок. Интервалы между заявками могут быть от A-B до A+B включительно. Плотность вероятности в интервале равна 1/(2*B).
TERMINATE A
Моделирование задержки заявки ведет блок ADVANCE, который имеет 1 или 2 параметра. Блок очень похож на GENERATE и его параметры А и В имеют тот же смысл. Они определяют интервал задержки заявки. Здесь так же, если B является ссылкой на функцию, то интервал задержки определяется как произведение A на B. Общая форма блока:
ADVANCE A,B
Войти в ADVANCE и находиться в нем одновременно, может любое число заявок. Обычно блок ADVANCE моделирует обслуживание заявок в устройстве или в многоканальном устройстве и поэтому он обрамляется блоками входа/выхода в них.
В случае устройств, занятие устройства отображается блоком
SEIZE A
а освобождение устройства отображается блоком
RELEASE A
Здесь A – это номер или метка (имя) устройства.
Когда устройство занято, то в него не могут входить другие заявки, а когда оно свободно, то в него входит первая по очереди заявка.
Эти номер или имя устройства в блоках SEIZE и RELEASE должны быть одинаковыми. Устройство перестанет быть занятым, когда занявшая его заявка. пройдет через блок RELEASE этого устройства.
МЕТ STOREGE A,B
Емкость накопителя описывает параметром А(№ устройства), В- емкость.
ENTER A,B
Для фиксации входа транзакта в память
А-указывается № памяти
В-число единиц памяти занимаемым транзактом
LEAVE
Выход из транзакта
GATE R A,B
Оператор условного перехода. R- условие.
TABLE A,B,C,D
Таблица. А- аргумент таблицы. В- верхняя граница нижнего интервала. В-ширина интервала.D- число интервала.
TABULATE A,B
Обращение к таблице
А- имя таблице
В- все измерения, сколько единиц должно быть добавлено к счетчику.
5 Описание пользовательского интерфейса
Интерфейс языка GPSS прост, потому что вся модель программируется блочно и вызов всех функций происходит как в обычных приложениях Windows, пример рабочей области языка приведен ниже:
Рисунок 5.1 – Рабочая область языка GPSS.
Программирование происходит в специализированном текстовом редакторе самого языка, он вызывается командой File-new-modal.
Операторы языка вызываются командой Edit-insert gpss bloks, вид операторов приведен ниже
Рисунок 5.3 – Операторы языка GPSS
Запуск модели осуществляется командой command-create simulation-start1.
Для пошагового изучения модели используется команда window- simulation window-blocs window.
6 Описание результатов моделирования
Исходный код программы, представлен в приложении Б
Описание полученной модели:
Окно статистики состоит из под разделов, содержащих стандартную статистику об объектах GPSS. Описание начинается с заголовка,
GPSS World Simulation Report - ЮЛЯ.54.1
Содержит имя файла (курсовой), затем указывается дата и время моделирования: Wednesday, November 10, 2010 03:33:52
Затем идет информация о времени моделирования, о числе блоков, устройств , и многоканальных устройств
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 2880.000 41 5 0
- START TIME - абсолютное
системное время в момент
- END TIME - абсолютное
время, когда счетчик
- BLOCKS - количество блоков,
использованных в текущей
- FACILITIES - количество устройств, использованных в модели, к моменту завершения моделирования;
- STORAGES - количество многоканальных устройств, использованных в текущей модели к моменту завершения моделирования.
Затем идет информация о метках, использованных в модели и об их значениях. В данной модели будет так
NAME VALUE
MET1
MET2 13.000
MET3 20.000
MET_ERROR1 27.000
MET_ERROR2 31.000
MET_ERROR3 35.000
MET_EXIT 39.000
MET_EXITK1 11.000
MET_EXITK2 18.000
MET_EXITK3 25.000
MET_VOZVRAT1 10.000
MET_VOZVRAT2 17.000
MET_VOZVRAT3 24.000
TT 10000.000
Здесь NAME – это имя метки, а VALUE - это её числовое значение.
Далее описываются блоки текущей модели, например в следующем виде:
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 10 0 0
2 SEIZE 10 0 0
3 ADVANCE 10 0 0
4 RELEASE 10 0 0
5 TRANSFER 10 0 0
MET1 6 GATE 10 0 0
7 SEIZE 4 0 0
8 ADVANCE 4 0 0
9 TRANSFER 4 0 0
MET_VOZVRAT1 10 ADVANCE 1 0 0
MET_EXITK1 11 RELEASE 4 0 0
12 TRANSFER 4 0 0
MET2 13 GATE 6 0 0
14 SEIZE 2 0 0
15 ADVANCE 2 0 0
16 TRANSFER 2 0 0
MET_VOZVRAT2 17 ADVANCE 2 0 0
MET_EXITK2 18 RELEASE 2 0 0
19 TRANSFER 2 0 0
MET3 20 GATE 4 0 0
21 SEIZE 4 0 0
22 ADVANCE 4 0 0
23 TRANSFER 4 0 0
MET_VOZVRAT3 24 ADVANCE 1 0 0
MET_EXITK3 25 RELEASE 4 0 0
26 TRANSFER 4 0 0
MET_ERROR1 27 SEIZE 1 0 0
28 ADVANCE 1 0 0
29 RELEASE 1 0 0
30 TRANSFER 1 0 0
MET_ERROR2 31 SEIZE 2 0 0
32 ADVANCE 2 0 0
33 RELEASE 2 0 0
34 TRANSFER 2 0 0
MET_ERROR3 35 SEIZE 1 0 0
36 ADVANCE 1 0 0
37 RELEASE 1 0 0
38 TRANSFER 1 0 0
MET_EXIT 39 TERMINATE 10 0 0
40 GENERATE 1 0 0
41 TERMINATE 1 0 0
Здесь поле LABEL определяет метку блока, поле LOC определяет имя или номер этого блока. Поле BLOCK TYPE определяет
тип блока GPSS World.
Поле ENTRY COUNT определяет количество заявок, вошедших в данный блок, после последнего выполнения блоков RESET или CLEAR, или с начала работы программы.
Поле CURRENT COUNT определяет количество заявок, находящихся в данном блоке в конце моделирования.
Поле RETRY определяет количество заявок, ожидающих специальных условий, зависящих от состояния данного блока.
TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%
VISIO1
20.252 10.509
VISIO2
29.079 10.703
VISIO3
25.445 0.000
VISIO4
43.385 0.000
Поле TABLE определяет имя или номер объекта типа "таблица" или "Q-таблица".
Поле MEAN определяет среднее взвешенное значение табулируемого аргумента. Значение преобразовывается в формат двойной точности при выводе в файл статистики.
Поле STD.DEV определяет взвешенное среднеквадратичное отклонение.