Автор работы: Пользователь скрыл имя, 28 Февраля 2013 в 08:54, курсовая работа
Имитационная модель СМО представляет собой алгоритм, отражающий поведение СМО, т.е. отражающий изменения состояния СМО во времени при заданных потоках заявок, поступающих на входы системы. Параметры входных потоков заявок - внешние параметры СМО. Выходными параметрами являются величины, характеризующие свойства системы - качество ее функционирования. Примеры выходных параметров: производительность СМО - среднее число заявок, обслуживаемых в единицу времени; коэффициенты загрузки оборудования - отношение времен обслуживания к общему времени в каждом ОА;
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 определяет взвешенное среднеквадратичное отклонение.