Рекомендации по освоению

 

Для освоения работы с приложением требуется владение базовыми навыками работы с операционными системами семейства Windows:

- приемы работы с окнами;

- работа с меню;

- использование управляющих элементов диалога.

Для эффективного использования приложения рекомендуется знание базовых понятий теории случайных чисел (числовые характеристики случайной величины, законы распределения), математической статистики (эмпирическое распределение, гистограмма, критерий Пирсона) и теории массового обслуживания. Процесс имитационного моделирования рекомендуется проводить в соответствии с последовательностью операций, изложенных в данном руководстве, т.е. в соответствии с основными этапами имитационного моделирования. Кроме того, при разработке имитационной модели нужно учитывать следующее. Имитационное моделирование в принципе неточно, и невозможно измерить степень неточности. Частично это можно преодолеть путем анализа чувствительности модели к изменению определенных параметров системы, выбирая их в качестве фактора для проведения однофакторного эксперимента.

Рассмотрим работу программы на примере исследования СМО, моделирующей работу морского порта. Данная моделью находится в файле «model1.qsf» в папке примеров. Задание на моделирование сформулируем следующим образом.

Рассмотрим морской порт, в который на разгрузку приходят корабли. Время прихода кораблей в порт распределено нормально с математическим ожиданием m = 1 и средним квадратическим отклонением s = 0,3. Разгрузка каждого судна осуществляется около одного из 7 причалов, каждый из которых может обслуживать одновременно только одно судно. Судно, приходящее в порт, становится под разгрузку к освободившемуся причалу, а если все причалы заняты, то оно становится в очередь на рейде. Количество судов на рейде не должно превышать 10. Время разгрузки распределено равномерно. Каждый корабль относится к одной из 3 категорий: первой, второй или третьей. Преимущество разгрузки имеют суда с более высокой категорией. Данные о кораблях всех категорий приведены в таблице 5.

 

Таблица 5 – Данные о категориях кораблей

Категория судна Вероятность появления Минимальная продолжительность разгрузки, ч Максимальная продолжительность разгрузки, ч
I 0,1
II 0,4
III 0,5

 

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

Представим порт в виде имитационной модели СМО в среде моделирования. Каждому объекту предметной области поставим в соответствие объект модели, как показано в таблице 6.

 

Таблица 6 – Соответствие объектов предметной области и объектов модели

Объект предметной области Объект модели
Поток приходящих кораблей Генератор «Поток кораблей»
Очередь кораблей на рейде Накопитель «Рейд»
Причалы Канал «Причалы»
Поток разгруженных кораблей Сток «Сток обслуживания»
Поток кораблей, получивших отказ в ожидании на рейде Сток «Сток отказов»
Корабли I категории Тип заявки «Корабли 1 категории»
Корабли II категории Тип заявки «Корабли 2 категории»
Корабли III категории Тип заявки «Корабли 3 категории»

 

Концептуальная структура модели в среде моделирования будет иметь вид, представленный на рисунке 22.

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

 

Рисунок 22 – Концептуальная структура модели

 

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

Для генератора в соответствии с заданием установим закон распределения интервалов между моментами генерации заявок и вероятности появления каждого типа заявки, как изображено на рисунке 23.

 

Рисунок 23 – Параметры генератора «Поток кораблей»

 

При каждом событии генерации появляется одна заявка. Дисциплина выбора приемника в данном случае не имеет значения, так как он всего один – накопитель «Рейд».

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

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

 

Рисунок 24 – Параметры накопителя «Рейд»

 

 

Рисунок 25 – Параметры канала «Причалы»

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

 

Рисунок 26 – Параметры типов заявок

 

Следующим этапом исследования является настройка условий эксперимента. Так как никаких ограничений на объем выборки и время моделирования в задании не указано, установим критерий окончания моделирования по времени моделирования, которое для обеспечения высокой точности вычислений примем 10000 часов. Для оценки разброса значений времени ожидания кораблей на рейде, выберем для построения распределения накопителя, как показано на рисунке 27.

 

Рисунок 27 – Настройка условий эксперимента

 

Произведем расчет показателей эффективности СМО. Для этого перейдем на вкладку «Показатели» и выполним имитационный эксперимент (прогон модели во времени). Результаты эксперимента сохраним в текстовый файл. Содержание данного файла со значениями показателей эффективности и запланированными распределениями приведено в приложении А. В частности, коэффициент загрузки канала получился равен 1, число заявок, попавшее в сток отказов (т.е. кораблей, получивших отказ в обслуживании) составило примерно 10% от общего числа, среднее время ожидания в очереди на рейде – 9,35 часа. Опираясь на полученные значения, можно сделать вывод, что СМО не справляется с потоком заявок (перегружена).

Для просмотра гистограмм выбранных распределений перейдем на вкладку «Распределения». Для одного из распределений (распределения времени ожидания кораблей I категории на рейде) проверим гипотезу о виде закона распределения, как показано на рисунке 28.

 

Рисунок 28 – Проверка гипотезы о виде распределения

 

Исходя из характера гистограммы, предположим, что данное для описания данного распределения подойдет показательный закон. Выберем данный закон в выпадающем списке «Закон распределения» и вычислим наиболее подходящую интенсивность, нажав кнопку «Вычислить параметры». В результате проверки гипотезы о показательном распределении с найденной интенсивности l = 0,98 гипотеза была принята с уровнем значимости 0,05. При этом значение величины c2 составило 9,77, что меньше критического значения для данного уровня значимости.

Таблицу значений частот найденных эмпирического и теоретического распределений получим копированием таблицы распределения. Результат данной операции приведен в таблице 7.

 

Таблица 7 – Таблица частот распределения

Середина интервала 0,25 0,75 1,25 1,75 2,25 2,75 3,25 3,75
Абсолютная частота
Относительная частота 0,356 0,253 0,162 0,103 0,0665 0,0304 0,0169 0,0124
Теоретическая частота 48,4 29,7 18,2 11,1

 

В целях оптимизации работы СМО определим число причалов, необходимое для обеспечения функционирования порта без перегрузки и простоя. Для этого построим и проанализируем зависимости среднего времени ожидания заявок в накопителе и среднего времени простоя в канале от количества обслуживающих устройств в канале. С этой целью перейдем на вкладку «Зависимости», после чего настроим и проведем однофакторный эксперимент. Для его выполнения определим число обслуживающих устройств в качестве фактора, время ожидания заявок в накопителе и время простоя обслуживающих устройств в канале – в качестве откликов, как показано на рисунке 29.

 

Рисунок 29 – Настройка и проведение однофакторного эксперимента

 

Для выполнения эксперимента нажмем кнопку «Выполнить экспермент» и рассмотрим построенные графики. График зависимости среднего времени ожидания заявок в накопителе от количества обслуживающих устройств в канале приведен на рисунке 29. График зависимости времени простоя обслуживающих устройств от количества обслуживающих устройств в канале представлен на рисунке 30 (данное изображение получено с помощью функции копирования графика).

 

Рисунок 30 – График зависимости среднего времени

от количества обслуживающих устройств

 

Так же представим построенные зависимости в виде сводной таблицы. Для этого нужно выделить в списке оба отклика и нажать кнопку «Показать таблицу», после чего в окне вывода таблиц нажать кнопку «Копировать». Результат копирования представлен в таблице 8.

 

Таблица 8 – Зависимости среднего времени ожидания и среднего времени

простоя от числа обслуживающих устройств

Число устройств (Причалы)
Среднее время ожидания (Рейд, Все типы заявок) 11,7 9,37 2,08 0,141 0,0183 0,00202 0,000155
Среднее время простоя (Причалы, Все типы заявок) 0,00155 0,00232 0,202 1,18 2,18 3,2 4,23

 

Из результатов однофакторного эксперимента видно, что для эффективного функционирования порта необходимо наличие 8 или 9 причалов. В первом случае более рационально используются ресурсы порта (причалы). Второй случай соответствует более высокому качеству обслуживания.

 


Список использованных источников

 

1 Вентцель Е.С. Исследование операций: задачи, принципы, методология / Е.С. Вентцель. – М. : Наука, 1980. – 208 с.

2 Советов Б.Я. Моделирование систем / Б.Я. Советов, С.А. Яковлев. – М.: Высшая школа, 2001. – 343 с.

3 Клейнрок Л. Теория массового обслуживания / Л. Клейнрок. – М.: Машиностроение, 1979 – 432 с.

 


Приложение А

(справочное)

 

Пример текстового файла результатов моделирования

 

Результаты моделирования СМО (model1.qsf).

 

Общесистемные показатели.

 

Число поступивших заявок, по типам заявок:

все типы заявок: 10020

Корабли 1 категории: 1010

Корабли 2 категории: 4036

Корабли 3 категории: 4974

 

Пропускная способность, по типам заявок:

все типы заявок: 1

Корабли 1 категории: 0,101

Корабли 2 категории: 0,403

Корабли 3 категории: 0,496

 

Среднее число заявок в системе, по типам заявок:

все типы заявок: 15,4

Корабли 1 категории: 0,539

Корабли 2 категории: 3,02

Корабли 3 категории: 11,9

 

Максимальное число заявок в системе, по типам заявок:

все типы заявок: 17

Корабли 1 категории: 4

Корабли 2 категории: 9

Корабли 3 категории: 18

 

Сток отказов (сток)

 

Число поступивших заявок, по типам заявок:

все типы заявок: 1018

Корабли 1 категории: 113

Корабли 2 категории: 409

Корабли 3 категории: 496

 

Среднее время жизни заявки, по типам заявок:

все типы заявок: 0

Корабли 1 категории: 0

Корабли 2 категории: 0

Корабли 3 категории: 0

 

Минимальное время жизни заявки, по типам заявок:

все типы заявок: 0

Корабли 1 категории: 0

Корабли 2 категории: 0

Корабли 3 категории: 0

 

Максимальное время жизни заявки, по типам заявок:

все типы заявок: 0

Корабли 1 категории: 0

Корабли 2 категории: 0

Корабли 3 категории: 0

 

Причалы (канал)

 

Число поступивших заявок: 8994

Среднее время простоя: 0,0032

Максимальное время простоя: 6,7

Среднее время обслуживания: 7,78

Коэффициент загрузки: 1

 

Сток обслуживания (сток)

 

Число поступивших заявок, по типам заявок:

все типы заявок: 8987

Корабли 1 категории: 897

Корабли 2 категории: 3621

Корабли 3 категории: 4469

 

Среднее время жизни заявки, по типам заявок:

все типы заявок: 17,1

Корабли 1 категории: 5,99

Корабли 2 категории: 8,34

Корабли 3 категории: 26,5

 

Минимальное время жизни заявки, по типам заявок:

все типы заявок: 4,02

Корабли 1 категории: 4,02

Корабли 2 категории: 6,03

Корабли 3 категории: 8,04

 

Максимальное время жизни заявки, по типам заявок:

все типы заявок: 43,9

Корабли 1 категории: 10,1

Корабли 2 категории: 14,5

Корабли 3 категории: 43,9

 

Рейд (накопитель)

 

Число поступивших заявок, по типам заявок:

все типы заявок: 9002

Корабли 1 категории: 897

Корабли 2 категории: 3627

Корабли 3 категории: 4478

 

Число нулевых заявок, по типам заявок:

все типы заявок: 14

Корабли 1 категории: 3

Корабли 2 категории: 4

Корабли 3 категории: 7

 

Средняя длина очереди, по типам заявок:

все типы заявок: 8,42

Корабли 1 категории: 0,0896

Корабли 2 категории: 0,492

Корабли 3 категории: 7,84

 

Среднее время ожидания, по типам заявок:

все типы заявок: 9,35

Корабли 1 категории: 0,999

Корабли 2 категории: 1,36

Корабли 3 категории: 17,5

 

Максимальная длина очереди, по типам заявок:

все типы заявок: 10

Корабли 1 категории: 3

Корабли 2 категории: 5

Корабли 3 категории: 10

 

Максимальное время ожидания, по типам заявок:

все типы заявок: 34,8

Корабли 1 категории: 4,98

Корабли 2 категории: 6,97

Корабли 3 категории: 34,8

 

Доля заявок, получивших отказ, по типам заявок:

все типы заявок: 0

Корабли 1 категории: 0

Корабли 2 категории: 0

Корабли 3 категории: 0

 

Распределение времени ожидания (по всем типам заявок)

1,5 4,5 7,5 10,5 13,5 16,5 19,5 22,5

4137 389 31 276 921 1281 1082 581

 

Распределение времени ожидания (Корабли 1 категории)

0,25 0,75 1,25 1,75 2,25 2,75 3,25 3,75

316 224 144 91 59 27 15 11

 

Распределение времени ожидания (Корабли 2 категории)

0,25 0,75 1,25 1,75 2,25 2,75 3,25 3,75 4,25 4,75

956 743 606 447 323 194 151 85 55 24

 

Распределение времени ожидания (Корабли 3 категории)

2 6 10 14 18 22 26 30

10 18 288 1329 1651 885 235 36