- •Моделирование систем
- •1. Наличие цели
- •1.2. Модель. Моделирование
- •Система
- •Параметры
- •Внешние
- •Внутренние
- •1.3. Классификация моделей
- •1.4. Методы моделирования
- •Имитационный способ представления задачи 1
- •Имитационный алгоритмический способ
- •Имитационная статистическая постановка задачи
- •2. Математические схемы моделирования систем
- •2.1. Формализация моделирования
- •Математическую схему можно определить как звено при переходе от содержательного к формализованному описанию процесса функционирования системы с учётом воздействия внешней среды.
- •2.2. Задачи, решаемые с помощью моделирования
- •2.3. Проектирование ис и анализ их производительности
- •2.3. Система массового обслуживания как модель
- •2.4. Модели потоков
- •2.2. Аналитический анализ смо
- •2.2.1. Экспоненциальная система массового обслуживания
- •2.2.1.1 Одноканальная однородная экспоненциальная смо
- •2.2.1.2. Многоканальная экспоненциальная смо
- •2.2.1.3. Модель m/g /1
- •2.3. Сети массового обслуживания
- •2.4. Анализ разомкнутых экспоненциальных СеМо
- •2.4.1. Свойства разомкнутой экспоненциальной СеМо
- •2.5. Расчет системных характеристик экспоненциальных СеМо
- •Контрольные вопросы
- •Лекция 4
- •1. Пример: Проблема распределение канала
- •1. Статическое распределение канала
- •2. Динамическое распределение канала
- •2. Пример: расчет системы телеобработки данных
- •3.1. Задание
- •3.2. Решение
- •4. Схема расчета замкнутой СеМо
- •4. Имитационное моделирование систем массового обслуживания
- •4.1. Система массового обслуживания как модель и оригинал
- •4.2. Иллюстративный пример: моделирование посадки самолетов.
- •4.3. Концепция статистического моделирования
- •4.3. Пример: оценка надежности системы
- •5. Построение моделирующего алгоритма
- •5.1. Моделирование на эвм процесса функционирования смо
- •Шагом (принцип t)
- •С другой стороны, принцип особых моментов выгоден тем, что
- •5.2. Особенности реализации процессов с использованием q-схем
- •5.2. Примеры моделирования смо с отказами
- •5.2.1. Подготовка исходных данных и назначение переменных
- •Моделирование смо с отказами по схеме событий
- •5.2.2.1. Построение блок-схем алгоритма имитации
- •5.3. Схемы построения моделирующего алгоритма
- •5.4.1. Моделирование смо с отказами по схеме событий
- •5.4.2. Моделирование смо с отказами по схеме процессов
- •Моделирование смо с отказами по схеме процессов
- •Шаг имитации
- •Класс процессов "генерирование заявок источником"
- •5.4.3. Сопоставление схемы событий и схемы процессов
- •5.5. Семафоры и связные списки
- •5.6. Алгоритмы обслуживания очередей
- •1) Традиционный алгоритм fifo
- •2) Приоритетное обслуживание (Priority Queuing)
- •3) Взвешенные настраиваемые очереди (Weighted Queuing)
- •6. Оценки искомых характеристик и их дисперсии
- •6.1. Структура оценок
- •7. Тестирование имитационной модели
- •8. Случайные факторы и их модели
- •8.1. Моделирование случайных событий
- •8.2. Моделирование дискретных случайных величин
- •321236246263321315464215224214664122142366236246611664533544.
- •8.3.1. Моделирование экспоненциальной с.В.
- •8.5. Моделирование равномерной с.В.
- •Планирование машинных экспериментов с моделями систем
- •Методы планирования эксперимента на модели.
- •Обработка, анализ и интерпретация результатов моделирования
- •11. Замечание о языках моделирования
- •Моделирование смо с одним npи6opом и очередью
5.4.1. Моделирование смо с отказами по схеме событий
(Описание алгоритма)
подготовка:
ввод данных (mt, tобсл,, правило остановки)
установка начальных значений переменных, соответствующих нулевому шагу
основная часть:
do шаг имитации (подробно раскрыт ниже)
until выполнено условие остановки (напр., пройдено Nдоп шагов)
end do
вычисление оценок искомых характеристик (Рпот, Р0, Р1, Р2, Рзп указанным выше формулам)
завершение:
выдача результатов
запрос пользователю на выбор дальнейшего действия (выдача
меню) и переход в соответствующее место программы в
зависимости от ответа пользователя)
end моделирования.
Далее раскрыт алгоритм шага имитации
Шаг имитации
увеличение номера шага (N:=N + 1)
запоминание значений некоторых переменных (YL:=Y; TL:=TT)
определение момента и типа очередного события:
TT
:=
min(Tз,Т1,Т2);
JT:=

имитация события:
if поступила заявка (JT=
then if есть свободный прибор (Y<2)
then поиск номера свободного прибора (Jv), начиная
с первого прибора
занятие прибора Jv (Х Jv :=1)
увеличение числа занятых приборов (Y:=Y+1)
end if
else (освободился прибор Jт)
перевод прибора в свободное состояние (XJт:=0)
уменьшение числа занятых приборов (Y:=Y-1)
end if
пополнение статистик:
if поступила заявка (Jт = 0)
then пополнение счетчика заявок (Кз:=Кз + 1)
if
заявка потерялась (
=2)
then пополнение счетчика потерянных заявок
(Кпот:=Кпот+1)
end – if
end - if
пополнение суммарного времени пребывания в соответст-
вующем
состоянии (ДТ:=Тт-ТL;
:=
+ДТ)
планирование событий (корректировка календаря):
if поступила заявка (JT=0)
then планирование следующей заявки (Тз:= TТ+, получа-
ется обращением к датчику случайных чисел)
if заявка поступила в прибор JV (YL<2)
then
планирование его освобождения
(
:=ТТ+обсл)
end – if
else
(освободился прибор JТ)
:=
end – if
end - шаг
Отметим, что в алгоритме шага четко разделены этапы: имитация события, пополнение статистик, планирование событий. Если отказаться от такого разделения, можно избежать повторения некоторых пpoвeрок и введения переменной ТL. Однако опыт программистов показал, что стройность и четкость важнее экономии. Поэтому приведенный вариант представляется более предпочтительным.
Хотя рассмотренный пример очень прост, он показывает основные принципы построения моделирующего алгоритма, пригодные и для более сложных случаев. Перечислим эти принципы.
При моделировании по схеме событий понятия работы и процесса не используются. Выделяется несколько событий так, чтобы они исключали друг друга и в совокупности охватывали все возможные изменения в систем.
Основные принципы построения моделирующего алгоритма.
За один шаг имитируется одно событие. Каждому шагу соответствует ТТ - тот особый момент, когда происходит имитируемое на этом шаге событие.
Продвижение по времени за один шаг производятся от момента предыдущего события до момента текущего события. Интервал между особыми моментами, как правило, имеет случайную длину.
Очередной особый момент находится путем поиска минимума в календаре.
Календарь содержит по одной ячейке для каждого типа события. В календаре указаны ближайшие после ТТ моменты наступления событий.
Тип события, которое подлежит имитации на текущем шаге, определяется одновременно с моментом события.
Имитация события сводится к изменению значений переменных, описывающих состояние отдельных элементов и системы в целом.
Пополнение (корректировка) статистик, нужных для последующего вычисления оценок искомых характеристик, производится после имитации события.
Планирование событий. Текущее событие может сделать возможным определение моментов некоторых последующих событий или, как говорят.
Запоминание в отдельных ячейках значения некоторых переменных в самом начале шага и сохранять их до конца шага.
Длина реализации измеряется либо числом шагов, либо системным временам.
Итак, алгоритм шага содержит следующие части:
– запоминание значений некоторых переменных,
– определение момента и типа очередного события,
– имитация события, пополнение статистик,
– планирование событий.
Каждому типу события соответствует блок в алгоритме имитации, а каждому событию - определенное место в календаре. Алгоритм шага состоит в выяснении типа очередном события (с помощью календаря) и выполнении тех блоков алгоритма, которые соответствуют этому типу события
Шаги выполняются до тех пор, пока не будет воспроизведена реализация заданной длины. Длина реализации измеряется либо числом шагов, либо системным временам. Не исключены и другие правила остановки, например по количеству обслуженных заявок.
До начала шагов производятся ввод исходных данных и установка начальных значений переменных, а по окончании шагов - подсчет оценок искомых характеристик по накопленным статистикам и выдача результатов.
Описанные принципы моделирования пригодны как для простых, так и .для сложных случаев, но в сложных случаях потребуется трудная работа по составлений перечня возможных событий и разработке алгоритмов имитации этих событий. Трудность состоит в том, что многие события оказываются взаимообусловленными и должны рассматриваться как одно сложное событие, включающее ряд элементарны событий. Рассмотрим, например, моделирование СМО, в которой имеется буфер. Имитация поступления заявки включает несколько частей: выяснение, имеется ли свободный прибор; поиск свободного прибора и его занятие; в случае отсутствия свободного прибора - поиск и занятие свободной ячейки буфера. Если заявка имеет абсолютный приоритет, возможно вытеснение менее приоритетной заявки из прибора. Тогда надо будет еще учесть дальнейшую судьбу вытесненной заявки. Таким образом, в рамках одного события имитируются многие элементарные события, отражающие изменения состояний сразу нескольких объектов: поступившей заявки, прибора, ячейки 6yфеpa, вытесненной заявки.
Описанная схема построения моделирующего процесса носит название - схема событий, или принцип событий. Ее основная отличительная черта - описание возможных изменений в системе с помощью взаимоисключающих (непересекающихся) событий и имитация на каждом шаге одного из возможных событий. Кроме этой схемы используется схема процессов.

Схема событий реализуется с использованием операторов структурного програмирования
Алгоритмическое изображение оператора
Первый
структурный оператор называется линейная
цепочка операторов.
Любая задача может быть разбита на
несколько подзадач. Выполнение подзадач
может быть поручено подпрограмме, в
названии которой можно (и нужно) отразить
подзадачу, которую должна решать эта
подпрограмма
Алгоритмическое изображение оператора
Второй
структурный оператор называется условный
оператор.
Достаточно часто одна или другая задачи
должны исполняться в зависимости от
определённого условия, которое зависит
от результатов выполнения предыдущей
программы или от внешних
устройств.
Каждая из таких задач называется плечом
условного оператора.
Алгоритмическое изображение оператора
Условный оператор может использоваться в неполном варианте, когда одно из плеч алгоритма отсутствует:



Третий структурный оператор - это оператор цикла с проверкой условия после тела цикла. Отличие от условного оператора заключается в том, что передача управления осуществляется не вперёд, а назад. На языках программирования высокого уровня такой оператор входит в состав языка (оператор do..while в языке программирования C или оператор repeat..until в языке программирования PASCAL).
Четвёртый структурный оператор - это оператор цикла с проверкой условия до тела цикла. В отличие от предыдущего оператора тело цикла в этом операторе может ни разу не выполниться, если условие цикла сразу же выполнено. Этот оператор как и условный оператор невозможно реализовать на одной машинной команде
