ПОЛУЧЕНИЕ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ




СХЕМА МОДЕЛИ

 

Схема данной модели представлена на рисунке 1.

Рис.1- схема модели

 

ModBeg (Model Begin).

В строке «Название» введите имя модели, которое будет указано в таблице результатов моделирования. Расширение.pgf следует убрать, так как это имя не является именем какого-либо файла, как ошибочно решили разработчики Gem.

В стороке «Узлы» автоматически показывается номер последнего узла модели.

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

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

В строке «Пространство» пользователю предлагается выбрать тип пространства, если модель будет работать с координатной плоскостью. В данной задаче это не требуется.

Строки «Задержка» и «Поток» предназначены для задания номеров контролируемых узлов: очереди (узел «Queue») и терминатора (узел «Term») соответственно. Для указанных узлов в процессе моделирования будут строиться графики времени задержки (очередь) и динамики выходного потока (терминатор). График времени задержки показывает среднее значение времени ожидания транзакта в очереди в каждый единичный отрезок модельного времени. График динамики потока показывает число транзактов, попавших в терминатор в единицу модельного времени (то есть интенсивность выходного потока заявок в моделируемой системе).

В строке «Точность» можно выбрать необходимое число знаков после десятичной точки в таблице результатов моделирования.

В окне «Начальный С++ текст» при необходимости переопределяются имена параметров транзактов и задаются числовые константы. В данной задаче определены имена T_wait (параметр транзакта, в который будет записываться его время ожидания в очереди) и T_start (параметр, в который будет занесено время входа в очередь), а также описана константа T_max, задающая максимально допустимое время ожидания.

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

Кнопка «ModEnd» служит для задания параметров файла результатов моделирования (имя файла, число строк на странице и флаг разбивки на страницы). Можно оставить вариант, предлагаемый по умолчанию.

Кнопка «Переменные» служит для определения рабочих переменных (в данной задаче не нужно).

Очередь заявок (Queue).

Здесь, помимо логического имени узла, после прохождения узла указана операция определения времени входа транзакта в очередь. Для этого в параметр транзакта T_start заносится показание модельного таймера (текущее значение модельного времени).

Ключ (Key).

В данной модели узел «Ключ» используется в качестве зоны принятия решения о дальнейшем маршруте транзакта. В качестве операции перед прохождением узла здесь выступает определение разницы между текущим показанием модельного времени (timer) и моментом входа транзакта в очередь (T_start). На основании полученного значения времени ожидания, попавшего в параметр транзакта T_wait, определяется дальнейший путь транзакта - либо на обслуживание в узел 101 (сервер), либо на уничтожение в узел 106 (терминатор).

Терминаторы (Term).

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

Генератор заявок (AG).

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

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

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

Сервер или Обслуживающий прибор (Serv).

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

Флаг учета приоритетов заявок здесь также устанавливать не нужно, так как приоритетов в данной модели заявки не имеют.

 

3. ТЕКСТ МОДЕЛИ НА ЯЗЫКЕ С++

 

После описания всех узлов можно генерировать С++ файл. Далее создается выполняемый файл с помощью приложения Microsoft Developer Studio. Текс модели:

 

#include <Pilgrim.h>

 

#define T_wait t->ru0

#define T_start t->ru1

#define T_max 0.2

 

{fw;

("nonamed.pgf", 107, 24, (long)time(NULL), none, 102, none,105, 2);("Заявки", 103, none, norm, 0.5, 0.1, none, 102);(dummy, dummy)

{(101): ("Обслуживание", 2, none, norm, 1, 0.1, none, 105);;

(102): ("Ожидание", none, 104);{_start=timer;

};

(104): _wait=timer-T_start;(T_wait<=T_max)

{=101;

}

{=106;

}("Обслужить?", fw);;

(105): ("Обслужен");;

(106): ("Отказ");;

(123);

}("pilgrim2.doc", 1, 8, page);0;

}

 

ПОЛУЧЕНИЕ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ

 

*---------------------------------------------------------------------------------------------*

| НАЗВАНИЕ МОДЕЛИ: nonamed.pgf |

| ВРЕМЯ МОДЕЛИРОВАНИЯ: 24.12 Лист: 1 |

|---------------------------------------------------------------------------------------------|

| | | | | | | 2 | | | | |

| No | Наименование | Тип |Точ-|Загруз-| M [t] | C [t] |Счетчик|Кол.|Оcт.|Состояние узла|

|узла| узла | узла | ка |ка(%=),| среднее |квадрат |входов |кан.|тр. |в этот момент |

| | | | |Путь(км) время |коэф.вар.|и hold | | | |

|----+---------------+------+----+-------+---------+---------+-------+----+----+--------------|

| | | | | | | | | | | |

| 101 Обслуживание serv - %= 95.5 1.00 0.02 24 1 1 закрыт |

| 102 Ожидание queue - - 0.35 0.70 51 1 1 открыт |

| 103 Заявки ag - - 0.48 0.05 51 1 1 открыт |

| 104 Обслужить? key - %= 0.0 0.00 1.00 0 1 1 открыт |

| 105 Обслужен term - - 2.01 0.03 23 0 0 открыт |

| 106 Отказ term - - 0.61 0.09 25 0 0 открыт |

| | | | | | | | | | | |

| | | | | | | | | | | |

| | | | | | | | | | | |

| | | | | | | | | | | |

| | | | | | | | | | | |

| | | | | | | | | | | |

| | | | | | | | | | | |

*---------------------------------------------------------------------------------------------*

 

Из полученных результатов можно сделать вывод что:

ü среднее время ожидания обслуживания клиента равно 0.35;

ü средней интервал обслуживания клиента 1.00;

ü средний интервал прихода клиента 0.48;

ü загрузка операциониста 95.5%;

ü количество пришедших клиентов 24 (обслужено 23, ушло без обслуживания 25);

ü обслуживает 1 опирационист.

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: