Имитационная модель СМО

Автор работы: Пользователь скрыл имя, 28 Февраля 2013 в 08:54, курсовая работа

Краткое описание

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

Содержимое работы - 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 – относительная пропускная способность

Ротк – вероятность  отказа

- среднее значение занятых мест в очереди

- среднее время ожидания заявки в очереди

- время нахождения заявки в системе

Для облегчения математического расчета системы воспользуемся средой программирования CodeGear RAD Studio 2010, программу для расчета заданной системы:

Листинг программы  представлен в приложении А

 

Рисунок 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 - абсолютное  системное время в момент начала  моделирования. Оно эквивалентно абсолютному системному времени, после последнего применения операторов RESET или CLEAR;

- END TIME - абсолютное  время, когда счетчик завершений  принимает значение 0;

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

- FACILITIES - количество устройств, использованных в модели, к моменту завершения моделирования;

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

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

  NAME                       VALUE 

          MET1                            6.000

          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                           0

                                  10.000  -  _                       4   100.00

VISIO2           29.079   10.703                           0

                                  20.000  -       22.000             1    50.00

                                  22.000  -       24.000             0    50.00

                                  24.000  -       26.000             0    50.00

                                  26.000  -       28.000             0    50.00

                                  28.000  -       30.000             0    50.00

                                  30.000  -       32.000             0    50.00

                                  32.000  -       34.000             0    50.00

                                  34.000  -       36.000             0    50.00

                                  36.000  -  _                       1   100.00

VISIO3           25.445    0.000                           0

                                       _  -       30.000             1   100.00

VISIO4           43.385    0.000                           0

                                  42.000  -       44.000             1   100.00

Поле TABLE определяет имя или номер объекта типа "таблица" или "Q-таблица".

Поле MEAN определяет среднее взвешенное значение табулируемого аргумента. Значение преобразовывается в формат двойной точности при выводе в файл статистики.

Поле STD.DEV определяет взвешенное среднеквадратичное отклонение.

Информация о работе Имитационная модель СМО