Курсовая работа: Разработка средств моделирования систем
4.2
Класс GPSSOperatori
-
Описываются
переменные целого типа nF, nST, nFas, nQ,
ответственные за номер используемой функции, номер многоканального устройства,
номер одноканального устройства, номер очереди соответственно.
-
МетодGENERATE задаёт параметры оператора GENERATE и возвращает строковое значение
этого оператора с заданными пользователем значениями параметров.
На первом этапе
определяется промежуток времени между появлениями транзактов. Он может быть:
постоянным, случайным, заданным функцией, зависящим от функции, а также не
задан.
При промежутке
времени между появлениями транзактов заданном функцией или зависящем от
функции, определяется, какой будет функция: стандартной или пользовательской, в
зависимости от этого вызываются функцииFStandи
FUNCTIONсоответственно.
На втором этапе
определяется время задержки появления первого транзакта. Оно может быть: задано
или не задано.
На третьем этапе
определяется предельное число транзактов.Оно так же может быть: задано или не
задано.
На четвёртом
этапе определяется приоритет транзактов. Он может быть: задан или не задан.
-
Метод ADVANCE задаёт параметры оператора ADVANCE и возвращает строковое значение
этого оператора с заданными пользователем значениями параметров.
В методе
определяется время задержки транзакта. Оно может быть: постоянным, случайным,
заданным функцией, зависящим от функции.
При времени
задержки транзакта заданном функцией или зависящем от функции, определяется,
какой будет функция: стандартной или пользовательской, в зависимости от этого
вызываются функцииFStandи
FUNCTIONсоответственно.
-
Метод ENTER возвращает строку содержащую
операторы языка имитационного моделирования GPSS, описывающие многоканальное устройство.
На первом этапе
в файл GPSStext.txt
(файл для записи сгенерированного текста программы на языке имитационного
моделирования GPSS) записывается описание
многоканального устройства, то есть его имя и количество каналов.
На втором этапе
определяется, на каком шаге программы пользователь желает получить статистику:
нахождение транзакта в очереди перед ОУ, нахождение транзакта в ОУ, общее
время обработки транзакта, а также возможен вариант без сбора статистики.
На третьем этапе
записывается оператор захвата многоканального устройства с названием этого
устройства и количеством захвачиваемых каналов.
На четвёртом
этапе происходит переход на генерацию текста оператора ADVANCE
.
На пятом этапе
записывается оператор освобождения многоканального устройства с названием этого
устройства и количеством освобождаемых каналов.
-
Метод SIZE возвращает строку содержащую
операторы языка имитационного моделирования GPSS, описывающие одноканальное устройство.
На первом этапе
определяется, на каком шаге программы пользователь желает получить статистику:
нахождение транзакта в очереди перед ОУ, нахождение транзакта в ОУ, общее
время обработки транзакта, а также возможен вариант без сбора статистики.
На втором этапе
записывается оператор захвата одноканального устройства с названием этого
устройства.
На третьем этапе
происходит переход на генерацию текста оператора ADVANCE
.
На четвертом
этапе записывается оператор освобождения одноканального устройства с названием
этого устройства.
-
Метод FUNCTION задаёт параметры оператора FUNCTION и возвращает строковое значение
этого оператора с заданными пользователем значениями параметров.
В файл GPSStext.txtна
первом этапе записывается номер генератора случайного числа; на втором этапе
тип функции; на третьем число точек и их координаты.
-
Метод Fstandartопределяет, какая стандартная
функция будут вызываться, то есть обращается в класс FuncStandart, и возвращает строку, содержащую
описание этой функции.
4.3
Класс GPSSText
-
Переменные oper, ukazat, matrix
типа vectorнаходящиеся в области private,определяют операторы принадлежащие
узлам, указатели на узлы, матрицу переходов от одного узла к другому
соответственно.
-
Метод Matrix генерирует матрицу переходов от
одного узла к другому, а также определяет, какие операторы принадлежат узлам.
На первом этапе
определяется оператор на соответствующем узле.
На втором этапе
в соответствии с номером узла, определяется, какая строка будет генерироваться
в матрице.
Если узел
содержит генератор, одноканальное либо многоканальное устройство, то в столбец с
номером узла, в который переходит дальше транзакт, записывается 1, в остальные
столбцы записывается 0.
Если узел
вероятностный, то в столбцы с номерами узлов, на которые совершается переход,
записывается соответствующая вероятность, в остальные столбцы записываются
нули.
Если узел
является терминатором, то в соответствующую строку записываются все нули.
Причем, при
каждом описании узла, в вектор operзаписывается
оператор, соответствующий узлу.
-
Метод Programma окончательно генерирует текст
программы, написанной на языке имитационного моделирования GPSS.
На первом этапе
вызывается метод Matrix,
который заполняет матрицу переходов и вектор операторов.
На втором этапе
определяются узлы, на которых будут стоять указатели.
На третьем
генерируется программа в соответствии с матрицей, операторами и указателями.
В конце
программы выводится текст, подтверждающий корректное ее завершение, а также
название файла, хранящего текст программы, написанной на языке имитационного
моделирования GPSS.
5 ИСПЫТАНИЕ И ТЕСТИРОВАНИЕ
СИСТЕМЫ
Для испытания и
тестирования системы мы рассмотрели четыре контрольных модели.
С помощью программы,
написанной на MicrosoftVisualStudioC++,
мы получили GPSSтекст и сохранили его в
файлGPSStext.txt.
Запустив
сгенерированную программув GPSSWorld
мы получили отчёт.
Рассмотрим тестовые
четыре модели.
Модель 1(рисунок 5.1)
2
1
Рисунок 5.1
Система включает в себя
два узла:
1 узел – генератор с
постоянным законом поступления заявок и с заданной задержкой первой заявки
(транзакта).
2 узел – одноканальное
обслуживающее устройство с постоянным законом распределения времени
обслуживания заявок.
Задана обратная связь
на ОУ. Сбор статистики осуществляется перед ОУ.
Работа программы для
данной модели выглядит следующим образом:
GPSS World Simulation Report - Untitled Model 1.1.1
Monday, December 20, 2010 01:18:39
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 9645.033 8 1 0
NAME VALUE
F_1 10001.000
Q_1 10000.000
U_2 2.000
U_4
8.000
LABEL
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1000 0 0
U_2
2 QUEUE 1218 0 0
3 SEIZE 1218 0 0
4 ADVANCE 1218 0 0
5 DEPART 1218 0 0
6 RELEASE 1218 0 0
7 TRANSFER 1218 0 0
U_4
8 TERMINATE 1000 0 0
FACILITY
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
F_1
1218 0.109 0.865 1 0 0 0 0 0
QUEUE
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
Q_1
5 0 1218 475 0.121 0.957 1.569 0
FEC
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1001
0 9665.050 1001 0 1
Модель 4 (рисунок 5.4)
3
1
2 5
4
k>1
Рисунок 5.4
Система включает в себя
два узла:
1 узел – генератор с
постоянным законом поступления заявок.
2 узел - вероятностный,
с вероятностью 0.3 транзакт идет на одноканальное ОУ, иначе на многоканальное
ОУ.
3 узел – одноканальное
обслуживающее устройство с законом распределения времени обслуживания заявок
заданным пользовательской функцией. После, обслуживание завершается.
4 узел – многоканальное
обслуживающее устройство с постоянным законом распределения времени
обслуживания заявок. После, обслуживание завершается.
5 узел – терминатор.
Сбор статистики
осуществляется перед многоканальным ОУ.
Работа программы для
данной модели выглядит следующим образом:
Количествоузлов:
5
Введите оператор
1 узла:
1 - генератор;
2 -
одноканальное устройство;
3 -
многоканальное устройство;
4 -
вероятностный узел;
5 - терминатор;
Вашвыбор: 1
Накакойузелидет:
2
Введите оператор
2 узла:
1 - генератор;
2 -
одноканальное устройство;
3 - многоканальное
устройство;
4 -
вероятностный узел;
5 - терминатор;
Ваш выбор: 4
На какой узел
идет (по возрастанию): 3
Вероятность: 0.3
Второй узел: 4
Введите оператор
3 узла:
1 - генератор;
2 -
одноканальное устройство;
3 -
многоканальное устройство;
4 - вероятностный
узел;
5 - терминатор;
Ваш выбор: 2
Накакойузелидет:
5
Введите оператор
4 узла:
1 - генератор;
2 -
одноканальное устройство;
3 -
многоканальное устройство;
4 -
вероятностный узел;
5 - терминатор;
Ваш выбор: 3
На какой узел
идет: 5
Введите оператор
5 узла:
1 - генератор;
2 -
одноканальное устройство;
3 -
многоканальное устройство;
4 -
вероятностный узел;
5 - терминатор;
Ваш выбор: 5
Промежуток
времени между появлениями транзактов:
1 - Постоянный;
2 - Случайный;
3 - Задан
функцией;
4 - Зависит от
функции;
5 - Не задан;
Ваш выбор:1
Время между
появлениями транзактов: 34
Время задержки
появления первого транзакта:
1 - задано;
2 - не задано;
Ваш выбор: 2
Предельное число
таранзактов:
1 - задано;
2 - не задано;
Ваш выбор: 2
Приоритет
транзактов:
1 - задан;
2 - незадан;
Вашвыбор: 2
Узел 3
Время задержки
транзакта:
1 - Постоянное;
2 - Случайное;
3 - Задано
функцией;
4 - Зависит от
функции;
Ваш выбор:3
1 - Стандартная
функция;
2 -
Пользовательская функция;
Ваш выбор: 2
Номер
генератора(аргумент ф-ии): 1
Тип функции:
1 - С
кусочно-линейной (непрерывной) аппроксимацией (С);
2 - С
ступенчатой (дискретной) аппроксимацией (D);
3 - Табличное,
точечное задание функции без аппроксимации (L);
В ходе выполнения курсового проекта, на языке высокого уровня
С++ в средеMicrosoftVisualC++ была разработана программа
генерации GPSSтекста.Возможностью данной программы
является построения имитационной модели системы массового обслуживания.
На практике было выявлено, что использование данного
приложения сильно упрощает построение самой модели СМО, так как нет
необходимости в знании операторов языка имитационного уровня GPSS.
Генерируемый текст легко перемещается в среду GPSSи пользователь имеет возможность
получить готовый отчет, содержащий все необходимые параметры для анализа
имитационной модели.
СПИСОК ЛИТЕРАТУРЫ
1.
Муравьев
Г.Л. Моделирование систем В 2 ч. Ч.1. Конспект лекций–Брест:БГТУ 2003
2.
Мороз
А.И. Курс теории систем. Учебник для ВУЗов– Москва: Высшая школа 1987
3.
Антонов
А.В. Системный анализ. Учебник для ВУЗов – Москва: Высшая школа 2004
4.
Кудрявцев
Е.М.GPSSWorld. Основы
имитационного моделирования различных систем.Учебник для ВУЗов – Москва 2004
5.
Алтаев
А.А. Имитационное моделирование на языке GPSS.
Методическое пособие – Улан- Удэ2002