
- •0. Лекция: Введение
- •1. Лекция: Понятие модели и моделирования:
- •1.1. Общее определение модели
- •1.2. Классификация моделей и моделирования
- •1.2.1. Классификация моделей и моделирования по признаку "характер моделируемой стороны объекта"
- •1.2.2. Классификация моделей и моделирования по признаку "характер процессов, протекающих в объекте"
- •1.2.3. Классификация моделей и моделирования по признаку "способ реализации модели"
- •1.3. Этапы моделирования
- •1.4. Адекватность модели
- •1.5. Требования, предъявляемые к моделям
- •2.1. Дискретные марковские процессы
- •2.2. Моделирование по схеме непрерывных марковских процессов
- •2.3. Схема гибели и размножения
- •2.4. Элементы смо, краткая характеристика
- •2.5. Моделирование смо в классе непрерывных марковских процессов
- •2.5.1. Многоканальная смо с отказами
- •2.5.2. Многоканальная смо с ожиданием
- •2.5.3. Одноканальная смо с ограниченной очередью
- •2.5.4. Одноканальная замкнутая смо
- •2.5.5. Одноканальная смо с конечной надежностью
- •2.6. Метод динамики средних. Сущность и содержание метода
- •2.7. Принцип квазирегулярности
- •2.8. Элементарные модели боя
- •2.8.1. Модель высокоорганизованного боя
- •2.8.2. Высокоорганизованный бой с пополнением группировок
- •2.8.3. Высокоорганизованный бой с упреждением ударов
- •2.8.4. Модель боя с неполной информацией
- •2.8.5. Учет запаздывания в переносе и открытии огня
- •3. Лекция: Статистическое моделирование:
- •3.1. Сущность имитационного моделирования
- •3.2. Общая характеристика метода имитационного моделирования
- •3.3. Статистическое моделирование при решении детерминированных задач
- •3.4. Моделирование равномерно распределенной случайной величины
- •3.5. Моделирование случайной величины с произвольным законом распределения
- •3.6. Моделирование единичного события
- •3.7. Моделирование полной группы несовместных событий
- •3.8. Моделирование совместных независимых событий
- •3.8.1. Определение совместных исходов по жребию
- •3.8.2. Последовательная проверка исходов
- •3.9. Моделирование совместных зависимых событий
- •3.10. Классификация случайных процессов
- •3.11. Способы продвижения модельного времени
- •3.12. Модель противоборства двух сторон
- •3.13. Модель противоборства как процесс блуждания по решетке
- •3.14. Типовая схема имитационной модели с продвижением времени по событиям
- •3.15. Имитационная модель системы массового обслуживания
- •4. Лекция: Планирование экспериментов
- •4.1. Сущность и цели планирования эксперимента
- •4.2. Элементы стратегического планирования экспериментов
- •4.3. Стандартные планы
- •4.4. Формальный подход к сокращению общего числа прогонов
- •4.5. Элементы тактического планирования
- •4.6. Точность и количество реализаций модели при определении средних значений параметров
- •4.6.1. Определение оценки матожидания
- •4.6.2. Определение оценки дисперсии
- •4.7. Точность и количество реализаций модели при определении вероятностей исходов
- •4.8. Точность и количество реализаций модели при зависимом ряде данных
- •4.9. Проблема начальных условий
- •5. Лекция: Обработка результатов имитационного эксперимента
- •5.1. Характеристики случайных величин и процессов
- •5.2. Требования к оценкам характеристик
- •5.3. Оценка характеристик случайных величин и процессов
- •5.4. Гистограмма
- •5.4. Элементы дисперсионного анализа. Критерий Фишера
- •5.6. Критерий Вилькоксона
- •5.7. Однофакторный дисперсионный анализ
- •5.8. Выявление несущественных факторов
- •5.9. Сущность корреляционного анализа
- •5.10. Обработка результатов эксперимента на основе регрессии
- •6. Лекция: Моделирование в gpss World
- •6.1. Основы построения и принципы функционирования языка имитационного моделирования
- •6.2. Построение моделей с устройствами
- •6.2.1. Организация поступления транзактов в модель и удаления транзактов из нее
- •6.2.1.1. Поступление транзактов в модель
- •6.2.1.2. Удаление транзактов из модели и завершение моделирования
- •6.2.1.3. Изменение значений параметров транзактов
- •6.2.2. Занятие и освобождение одноканального устройства
- •6.2.3. Имитация обслуживания посредством задержки во времени
- •6.2.4. Проверка состояния одноканального устройства
- •6.2.5. Методы сбора статистики в имитационной модели
- •6.2.5.1. Регистратор очереди
- •6.2.5.1. Статистические таблицы
- •6.2.6. Методы изменения маршрутов движения транзактов в модели
- •6.2.6.1. Блок transfer
- •6.2.6.2. Блок displace
- •6.2.7. Прерывание функционирования одноканального устройства
- •6.2.7.1. Прерывание в приоритетном режиме
- •6.2.7.2. Прерывание в режиме "захвата"
- •6.2.7.3. Проверка состояния одноканального устройства, функционирующего в приоритетном режиме
- •6.2.8. Недоступность одноканального устройства
- •6.2.8.1. Перевод в недоступное состояние и восстановление доступности
- •6.2.8.2. Проверка состояний недоступности и доступности одноканального устройства
- •6.2.9. Сокращение машинного времени и изменение дисциплин обслуживания методом применения списков пользователя
- •6.2.9.1. Ввод транзактов в список пользователя в безусловном режиме
- •6.2.9.2. Вывод транзактов из списка пользователя в условном режиме
- •6.2.10. Построение моделей систем с многоканальными устройствами и переключателями
- •6.2.10.1. Занятие многоканального устройства и его освобождение
- •6.2.10.2. Перевод многоканального устройства в недоступное состояние и восстановление его доступности
- •6.2.10.3. Проверка состояния многоканального устройства
- •6.2.10.4. Моделирование переключателей
- •6.3. Решение прямой и обратной задач в системе моделирования
- •6.3.1. Постановка прямой и обратной задач
- •6.3.2. Решение прямой задачи
- •6.3.2.1. Блок-диаграмма модели
- •6.3.2.2. Программа модели
- •6.3.2.3. Ввод текста программы модели, исправление ошибок и проведение моделирования
- •6.3.3. Решение обратной задачи
- •6.4. Пример построения моделей с оку, мку и списками пользователя
- •6.4.1. Модель процесса изготовления изделий на предприятии. Прямая задача
- •6.4.1.1. Постановка задача
- •6.4.1.2. Исходные данные
- •6.4.1.3. Задание на исследование
- •6.4.1.4. Уяснение задачи на исследование
- •6.4.1.5. Блок-диаграмма модели
- •6.4.1.6. Программа модели
- •6.4.2. Модель процесса изготовления изделий на предприятии. Обратная задача
- •6.4.2.1. Постановка задачи
- •6.4.2.2. Программа модели
- •6.5. Уменьшение числа объектов в модели
- •6.5.1. Постановка задачи
- •6.5.2. Исходные данные
- •6.5.3. Задание на исследование
- •6.5.4. Блок-диаграмма модели
- •6.5.5. Программа модели
- •6.6. Применение матриц, функций и изменение версий модели
- •6.6.1. Постановка задачи бизнес-процесса
- •6.6.2. Уяснение задачи
- •6.6.3. Программа модели
- •6.7. Моделирование неисправностей одноканальных устройств
- •6.7.1. Постановка задачи
- •6.7.2. Исходные данные
- •6.7.3. Задание на исследование
- •6.7.4. Уяснение задачи
- •6.7.5. Программа модели
- •6.8. Моделирование неисправностей многоканальных устройств
- •6.8.1. Постановка задачи
- •6.8.2. Программа модели
- •7. Лекция: Организация компьютерных экспериментов
- •7.1. Дисперсионный анализ (отсеивающий эксперимент). Прямая задача
- •7.2. Регрессионный анализ (оптимизирующий эксперимент). Прямая задача
- •7.3. Дисперсионный анализ (отсеивающий эксперимент). Обратная задача
- •7.3.1. Постановка задачи
- •7.3.2. Исходные данные
- •7.3.3. Задание на исследование
- •7.3.4. Уяснение задачи на исследование
- •7.3.5. Программа модели
- •7.3.6. Проведение экспериментов
- •8. Лекция: Разработка имитационных моделей в виде приложений с интерфейсом
- •8.1. Применение текстовых объектов и потоков данных
- •8.1.1. Блок open
- •8.1.2. Блок close
- •8.1.3. Блок read
- •8.1.4. Блок write
- •8.1.5. Блок seek
- •8.2. Разработка модели в gpss World
- •8.2.1. Постановка задачи
- •8.2.2. Программа модели
- •8.3. Создание стартовой формы приложения - имитационной модели
- •8.3 Добавление компонент в стартовую форму имитационной модели
- •8.3.1. Добавление полей редактирования
- •8.3.2. Добавление меток
- •8.3.3. Добавление компонент для ввода и вывода данных, представленных в виде таблиц
- •8.3.4. Добавление командных кнопок
- •8.4. События и процедуры обработки событий
- •8.4.1. События
- •8.4.2. Разработка процедур обработки событий для кнопок
- •8.4.3. Разработка процедур обработки событий для полей редактирования
- •8.4.4. Модификация программы имитационной модели
- •8.5. Работа с приложением
3.15. Имитационная модель системы массового обслуживания
Рассмотрим имитационную модель СМО следующего вида:
многофазная;
многоканальная;
с несколькими неоднородными потоками заявок на обслуживание;
разомкнутая;
абсолютно надежная;
с очередями неограниченной емкости на всех фазах обслуживания.
СМО такого вида показана на рис. 3.29.
На рис. 3.29:
-
источники потоков заявок на обслуживание;
-
каналы обслуживания;
- число фаз;
-
число каналов в каждой фазе;
-
очереди заявок на входах соответствующих
фаз.
Рис. 3.29. Многофазная СМО
Такой СМО может быть, например, сборочный цех радиоэлектронного предприятия. Из нескольких цехов ( ) поступают готовые блоки для сборки изделия. Сначала они поступают на диспетчерские посты, на которых происходит оформление соответствующей документации. После этого блоки направляются на сборочные участки.
Диспетчеризация - первая фаза обслуживания.
Сборка изделий - вторая фаза обслуживания.
Затем идет стендовый контроль и регулировка - это третья фаза обслуживания.
Четвертая фаза - приемка готового изделия (например, военная приемка)
Далее может быть упаковка изделия - пятая фаза.
Упакованные изделия поступают в транспортное подразделение для отправки - это шестая фаза.
На каждом из этих шести участков работают инженеры, техники, наладчики, контролеры, упаковщики. В силу различного рода случайностей на входе каждой фазы могут образовываться очереди комплектующих блоков, непроверенных изделий, готовых изделий. А также могут быть простои работников, что в терминах СМО трактуется как очереди свободных каналов.
Вернемся к общей постановке задачи.
Целью
моделирования является определение
показателей исхода операции массового
обслуживания на временном интервале
.
Например, оценка относительной пропускной
способности СМО, среднее количество
заявок в очередях, коэффициент
использования каналов в каждой фазе и
др.
Проанализируем элементы СМО.
Входные потоки заявок на обслуживание
Поступление заявок на вход первой фазы - событие активное.
Следовательно,
в модели должны быть предусмотрены
модули реакции на это событие. Каждый
поток обслуживает свой модуль реакции,
значит, модулей реакции этого типа
должно быть столько, сколько имеется
потоков заявок, то есть
.
Моменты поступления заявок имитируются
соответствующими генераторами (датчиками)
случайных интервалов между заявками
потоков
.
Каналы обслуживания
Каждый канал имеет два состояния: свободен или занят. Переход в состояние "занят" - событие пассивное, так как определяется поступлением заявки. Переход в состояние "свободен" - событие активное, оно определяется внутренними свойствами канала, например, производительностью. Следовательно, в модели должны быть модули реакции на освобождение каналов. И этих модулей должно быть столько, сколько имеется в нашей СМО каналов:
Очереди заявок на обслуживание на входах фаз
Эти элементы СМО - пассивные, число состояний неограниченно.
Очереди свободных каналов в каждой фазе обслуживания
Эти элементы СМО также пассивные, число состояний равно числу каналов в каждой фазе.
Обобщенный элемент "СМО в целом"
Характеризуется одним активным событием - завершение интервала исследования . Следовательно, для обработки этого события в модели предусматривается один специальный модуль реакции.
Изменения состояний считаем мгновенными. Общее число модулей реакции в рассматриваемой модели должно быть:
При большом числе входных потоков и каналов обслуживания количество модулей реакции будет значительным, и модель будет труднообозримой, громоздкой. Однако структуру модели можно существенно упростить, назначив однородным активным событиям по одному модулю реакции. Или: освобождение любого канала вызывает обращение к другому общему модулю реакции. Естественно, на входе таких универсальных модулей реакции должен присутствовать блок настройки на конкретное активное состояние объединенной группы.
Строить же общий модуль реакции на освобождение всех каналов СМО нецелесообразно, так как освобождение каналов последней фазы СМО требует действий, заметно отличающихся от тех, которые необходимо выполнить при освобождении каналов не последней фазы.
Таким образом, имитационная модель СМО будет иметь всего четыре модуля реакции:
модуль реакции на поступление заявки (А);
модуль реакции на освобождение канала не последней фазы (В);
модуль реакции на освобождение канала последней фазы (С);
модуль реакции на завершение интервала исследования - реакция на изменение состояния обобщенным элементом "СМО в целом".
Блок-схема имитационной модели СМО состоит из общей части и модулей реакции. Общая часть имеет стандартный вид и была рассмотрена ранее. Структура общей части определяется способом продвижения модельного времени по событиям. Она показана на рис. 3.30.
Блок 1 - установка начальных условий на весь процесс моделирования. Вводятся константы , , указываются число источников заявок, число каналов. Счетчик числа реализаций устанавливается в нуль (или в - в зависимости от того, как организован счет реализаций модели). Указываются данные планирования эксперимента с моделью и др.
Блок 2 - установка начальных условий на очередную реализацию модели. Текущее время, счетчики числа поступивших и обслуженных заявок устанавливаются в нуль. Каналы обслуживания и очереди к ним устанавливаются в исходные состояния (установки исходных состояний определяются требованиями к исследованию) и др.
Рис. 3.30. Блок схема имитационной модели СМО
Наборы исходных данных и определяются конкретным назначением моделируемой СМО и характером последующих экспериментов.
Блоки 3, 4 реализуют продвижение времени по событиям.
Блок
5 -
выбор модуля реакции. В зависимости от
индекса
пространственно
временной точки
передает
управление соответствующему модулю
реакции -
,
,
или
.
В рассматриваемой модели элементы СМО имеют только два состояния, одно из которых является начальным. Поэтому индекс не имеет смысла.
Рассмотрим состав и функционирование модулей реакции.
Допустим, что в рассматриваемый момент времени свершилось активное событие - поступление заявки от одного из источников. Блок 5 передает управление модулю реакции А.
Блок-схема алгоритма модуля реакции приведена рис. 3.31.
Блок А5 - блок настройки. Обеспечивает доступ к ДСЧ, ячейкам и т. д. модуля, предназначенным для обслуживания конкретного потока заявок, которому принадлежит поступившая заявка.
Рис. 3.31. Блок-схема алгоритма модуля реакции А
Блок
А6 -
проверка наличия свободных каналов
первой фазы. Количество свободных
каналов в очереди обозначено:
.
Если
все каналы заняты
,
управление передается блоку А7. Если
свободные каналы есть
,
управление передается блоку А9.
Блок
А7 -
размещение поступившей заявки в
соответствующей очереди первой фазы
.
Текущее содержимое этой очереди
обозначено как
.
Блок А8 - запоминание времени постановки заявки в очередь и передача управления блоку А13.
Правая ветвь алгоритма (см. рис. 3.30) выполняет действия, связанные с постановкой заявки на обслуживание.
Блок
А9 -
имитация загрузки одного из свободных
каналов поступившей заявкой. Очередь
свободных каналов уменьшается на
(
)
. Выбранному каналу присваивается
признак занятости -
.
У свободных каналов этот признак равен
.
Блок А10 - определение и запоминание длительности простоя канала. Накопление времени простоя необходимо, например, для определения коэффициента занятости канала на интервале исследования.
Блок А11 - имитация времени обслуживания заявки.
Случайное
время обслуживания
формируется
обращением к соответствующему датчику
случайных чисел.
Блок
А12 -
прогноз времени окончания обслуживания
и
занесение новой пространственно-временной
точки в список событий.
Блок
А13 -
прогноз момента времени поступления
очередной заявки. Соответствующий
датчик случайных чисел выдает длительность
случайного временного интервала между
заявками данного типа. Момент поступления
очередной заявки вычисляется как
.
Полученная таким образом
пространственно-временная точка
заносится в список событий.
Управление передается в точку Е - блоку 3 для определения очередного ближайшего события.
Если очередным ближайшим событием окажется освобождение канала не последней фазы, то блок 5 передает управление модулю реакции В, имитирующему действия в СМО при свершении этого активного события.
Блок-схема алгоритма модуля реакции В представлена на рис. 3.32.
Модуль В имеет две функции. Во-первых, попытаться загрузить освободившийся канал заявкой из очереди на входе фазы, в которой находится освободившийся канал. Во-вторых, имитировать продвижение заявки, освободившей канал, в следующую фазу обслуживания.
Рис. 3.32. Блок-схема алгоритма модуля реакции В
Блок В5 - настройка модуля на освободившийся канал конкретной фазы.
Каждая фаза обслуживания имеет свою очередь заявок на входе, свою очередь свободных каналов и, возможно, свои датчики случайных чисел. Поэтому не будем вводить для них новые обозначения, оставим те, которые были использованы при описании модуля А.
Блок
В6.
Проверка: есть ли в очереди на входе
фазы заявки, ожидающие обслуживания
(
)
? Если есть, то освободившийся
канал должен быть немедленно загружен (блоки 10… 13). Если нет, то канал должен быть переведен в режим ожидания (блоки В7…В9).
Блок
В7.
Очередь свободных каналов увеличивается
на
(
)
. Признак занятости канала устанавливается
в нуль.
Блок В8. Запоминание момента освобождения канала.
Блок В9. Перевод освободившегося канала в пассивное состояние. Для этого пространственно-временной точке , относящейся к освободившемуся каналу, присвоить значение времени,
превышающего
интервал исследования
,
то есть
.
Это значение
заносится
в список событий. Управление передается
блоку В14.
Блоки В14…В20 моделируют размещение заявки, освободившей канал, в следующей фазе обслуживания. Функции и взаимные связи этих блоков аналогичны блокам А6 … А12, рассмотренным ранее:
Блок 20 передает управление блоку 3 для идентификации очередного активного события. Этим событием может быть поступление заявки от какого-либо источника на вход первой фазы или окончание обслуживания заявки каким-либо каналом. В этих случаях управление будет снова передано модулям реакции или .
Если же очередным активным событием окажется освобождение канала последней фазы, то управление передается модулю реакции С (рис. 3.33).
Блок С5 - настройка на соответствующий канал последней фазы. Аналогичен блоку В5.
Блоки С6…С13 - загрузка освободившегося канала ожидающей заявкой, если таковая есть на входе последней фазы. Функции и взаимосвязи блоков аналогичны блокам В6…В13. Блок С6 соответствует блоку В6, блок С7 - блоку В7 и т. д. по одинаковым номерам.
Блок С14 формирует числовые атрибуты заявок, покидающих СМО. Такими атрибутами могут быть: суммарное время обслуживания заявки на всех фазах, суммарное время ожидания в очередях, число обслуживаний без ожидания и др. Атрибуты запоминаются и управление передается блоку 2.
Рис. 3.33. Блок-схема алгоритма модуля реакции С
Если
очередное значение
,
что означает окончание интервала
исследования работы СМО, управление
передается модулю реакции
(рис.
3.34).
Рис. 3.34. Блок-схема алгоритма модуля реакции \Theta
Построить имитационную модель с продвижением времени можно и по-другому. Однако рассмотренная структура модели обладает важными достоинствами:
Моделирующий алгоритм нагляден и прост, что существенно упрощает программирование и, особенно, отладку модели, а также изучение готовых моделей.
Рассмотренная структура алгоритма позволяет параллельно разрабатывать модель по отдельным модулям и, следовательно, сокращать время на ее создание.
Облегчены корректировка и развитие модели. Например, в рассмотренной модели СМО легко учесть выход из строя и восстановление каналов обслуживания. Для этого надо добавить два модуля реакции: один - на возникновение отказа, другой - на восстановление работоспособности. Оба эти события рассматриваются как активные, если неисправность возникает из-за внутренних дефектов оборудования, а восстановление является результатом усилий обслуживающего персонала, входящего в состав СМО.