- •Конспект лекций По дисциплине «Моделирование систем» Содержание
- •1.Системы и моделирование
- •1.1.Система как предмет моделирования
- •1.2.Модели
- •1.3.Математическое моделирование
- •2.Математические схемы моделирования систем
- •2.1.Основные подходы к построению математических моделей систем
- •2.2.Задачи теории массового обслуживания
- •2.3.Поток заявок. Время обслуживания
- •2.4.Простейшие смо и их характеристики
- •3.Этапы машинного моделирования систем
- •3.1.Построение концептуальной модели системы и ее формализация
- •3.2.Алгоритмизация модели системы и ее машинная реализация
- •3.3.Получение и интерпретация результатов моделирования системы
- •4.Принципы имитационного моделирования сложных систем
- •4.1.Понятие модельного времени
- •4.2.Способы имитации
- •4.3.Моделирующий алгоритм
- •5.Моделирование случайных факторов
- •5.1.Принципы моделирования случайных элементов
- •5.2.Требования к генератору случайных чисел
- •5.3.Методы построения программных датчиков бсв
- •5.4.Моделирование случайных воздействий на системы
- •6.Программные средства моделирования систем
- •6.1.Машинная реализация имитационных моделей
- •6.2.Классификация языков моделирования
- •6.3.Средства языков моделирования
- •7.Язык и система моделирования gpss
- •7.1.Транзакты
- •7.2.Списки
- •Процедура просмотра списка текущих событий:
- •7.3.Устройства
- •7.4.Многокнальные устройства (мку)
- •7.5.Логические ключи
- •7.6.Очереди и регистраторы очередей
- •7.7.Таблицы
- •7.8.Ячейки (Сохраняемые величины)
- •7.9.Матрицы
- •7.10.Функции
- •7.11.Переменные
- •8.Обработка результатов имитационного моделирования
- •8.1.Точечные оценки неизвестных параметров
- •8.2.Статистические методы обработки
- •8.3.Задачи обработки результатов моделирования
- •9.Планирование имитационных экспериментов
- •9.1.Общие принципы и задачи планирования экспериментов
- •9.2.Планирование экспериментов по исследованию систем методами дисперсионного анализа
- •10 Тактическое планирование машинных экспериментов с моделями систем
- •10.1 Стратегии запуска
- •10.1.1 Задание начальных условий
- •10.1.2 Процедуры отсечения
- •10.2 Определение объема имитационных экспериментов
- •9.3.Методы понижения дисперсии
- •Дополняющая выборка
- •Общие потоки случайных чисел
- •Использование априорной информации
- •Использование управляющих переменных
- •9.4.Правила остановки
- •10.Планирование экспериментов по оптимизации систем
- •10.1.Общие положения
- •10.2.Метод крутого восхождения
4.3.Моделирующий алгоритм
Для расположения событий в хронологическом порядке необходимо вести запись2 событий, подлежащих последующей обработке. Это осуществляется путем фиксирования моментов наступления будущих событий. Сравнение этих моментов определяет затем выбор одного из событий для обработки. События выполняются в упорядоченной по времени последовательности, при этом имитационное время продвигается от одного события к другому.
Продвижение имитационного времени и порядок обработки событий контролируется управляющей программой (исполнительной программой, монитором моделирования, процессором). Пользователю необходимо только запланировать возникновение события, а управляющая программа сама определит порядок обработки каждого события в соответствующие моменты имитационного времени.
Уточним некоторые термины. В процессе имитации объекты чередуют занятие делом с бездействием или ожиданием в очереди, и наоборот. Когда объекты заняты, говорят, что они связаны активностью. События, которые определяют начало активностей, часто зависят от некоторых условий (например, от доступности ресурса). Это условные (conditional, contingent) события. Назначенные (bound, scheduled, occurrence-predictable) события, определяющие конец активностей, безусловно, расписаны к выполнению в соответствующие моменты времени. Диаграммы активностей показывают потоки или жизненные циклы объектов. Язык проектирования программ (псевдокод) используется для записи алгоритмов.
Рассмотрим псевдокод управляющей программы. Подход, ориентированный на активности, по существу, состоит из трех этапов:
a: <установить значение текущего имитационного
времени равным моменту наступления
следующего назначенного события>;
b: <для всех назначенных событий, происходящих
в это время>
<извлечь первый объект из календаря>;
<обработать событие>;
c: <сканировать условия для каждого действия>.
Основное отличие между подходом сканирования активностей и событийным подходом заключается в обработке условных событий. В подходе, ориентированном на активности, условные события рассматриваются как отдельные подпрограммы, тогда как в событийном подходе они дополняют планируемые (scheduled) события.
В моделях, ориентированных на описание процессов, подпрограммы кодируются для каждого процесса и должен использоваться свой вариант управляющей программы. Псевдокод, представленный ниже, основывается на управляющей программе, заложенной в gpss. Здесь объект всегда находится либо в календаре, либо в цепи приостановленных процессов. Сканирование условных событий заменено сканированием цепи приостановленных процессов:
a: <установить значение текущего имитационного
времени равным моменту наступления
следующего события>;
b: <для всех событий, происходящих в это время>
<извлечь первый объект из календаря>;
<активировать соответствующий процесс>;
if <процесс завершен>
then <избавиться от объекта>
else
if <объект вне календаря> then
<поместить его в конец
цепи приостановленных процессов>;
c: repeat
for <каждого объекта в цепи>
<активировать соответствующий процесс>;
if <объект продвинут> or <в календаре>
then <извлечь его из цепи>;
if <процесс завершен>
then <избавиться от объекта>
else
if <объект вне календаря> and
<продвинут>
then <поместить его в конец цепи
приостановленных процессов>
until <цепь сканирована> and
<все процессы активированы>.
Дискретно-событийная имитация прекращается при выполнении одного из следующих условий: имитационное время больше (или равно) времени окончания имитационного прогона, в календаре не осталось ни одного события для обработки.
Такова в общих чертах схема имитации дискретно-событийных моделей.
Можно, таким образом, сделать вывод, что для разработки программы дискретно-событийной имитационной модели необходимо написать управляющую программу, подпрограмму инициализации3, а также сами подпрограммы событий для описания изменений, происходящих в модели в моменты наступления этих событий. Необходимо также наличие в моделях механизмов обработки очередей, сбора статистики и выдачи отчетов, генерации псевдослучайных чисел.