
- •Конспект лекций По дисциплине «Моделирование систем» Содержание
- •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.Метод крутого восхождения
6.2.Классификация языков моделирования
Языки моделирования дискретных систем в зависимости от подхода к описанию рассматриваемых объектов можно разделить на классы языков, ориентированных на события, активности (действия, работы) или процессы.
Язык активностей удобен для описания систем с большим числом разнообразных ресурсов, так как позволяет записывать условия их доступности в компактной форме. Он предполагает формализацию условий, при которых можно начать ту или иную работу, и описание вычислительных операций, которые необходимо проделать, если эти условия выполняются. В языках, ориентированных на активности, реализуется поисковая схема, предполагающая постоянство законов, обуславливающих порядок смены состояний системы в процессе ее функционирования. К данному классу языков относятся csl, forsim, gsp.
Язык, основанный на механизме расписания событий, обеспечивает экспериментатору строгий контроль прохождения программы. В событийно-ориентированных языках реализуется схема расписания событий. Моделирующая программа организуется в виде совокупности процедур событий, выполнение которых синхронизируется во времени списковым механизмом планирования. К данному классу языков относятся gasp, simscript, smpl, simtran.
Язык процессов допускает объединение нескольких событий в одну программу, что облегчает описание динамики системы. Принципиальная особенность программы процесса в том, что она выполняется так, как будто состоит из отдельных независимо управляемых программ. У каждого процесса может быть несколько точек взаимодействия (связи) с другими процессами и несколько активных фаз. Каждая фаза представляет собой некоторое событие. Это отличает язык процессов от языков активностей и событий. К процессно-ориентированным языкам относятся gpss, simula, sol, aspol.
Поисковый алгоритм и механизм планирования событий представляют собой различные пути решения одной проблемы. Язык активностей с поисковой схемой эффективен для описания сильно взаимосвязанных процессов, охватывающих фиксированное число объектов. Планирование событий эффективно для имитации менее связанных процессов с большим (возможно, переменным) числом объектов. Одно из неудобств схемы расписания событий заключается в дроблении логического блока модели. Язык активностей лишен этого недостатка, но, вообще говоря, менее эффективен с вычислительной точки зрения. Описание системы на языке взаимодействия параллельных процессов представляет собой попытку объединить машинную эффективность языка событий и лаконичность языка активностей. Однако более простая организация моделирующей программы на языке, ориентированном на процессы, обеспечивается сложной по сравнению с программой на языке, ориентированном на события, системой имитации во времени, скрытой от программиста. В то же время, любую систему, описанную в терминах одной из перечисленных выше схем, можно смоделировать на основе двух других. Таким образом, обращение к тому или иному языку определяется удобствами моделирования, которые он предоставляет6.
6.3.Средства языков моделирования
Система управления имитацией, отвечающая за пересчет системного времени, слежение за выполнением условий активизации событий и др., является необходимым компонентом любого ЯИМ, который определяет динамику моделируемой системы и оформляется в виде управляющей программы, называемой монитором, симулятором и т.п. Система управления имитацией базируется на одном из трех основных типов систем планирования или их комбинации: интеррогативном (вопросительном, спрашивающем), императивном (повелительном, указывающем) и автоматическом, причем каждый последующий тип является частным случаем предыдущего.
Наиболее общее интеррогативное управление определяет процесс функционирования модели по мере выполнения определенных логических условий; соответствующие операторы имеют вид “жди выполнения условия A”. Операторы могут иметь явную (например, repeat … until A) или неявную форму.
При императивном управлении система планирования базируется на операторах вида “жди период времени T”, т.е. управление происходит в будущие моменты модельного времени. Операторы императивного планирования являются особыми случаями интеррогативных операторов и в различных ЯИМ представлены, как правило, в явной форме. Они позволяют задать монитору те временные точки, когда в системе происходят определенные события.
В тех языках, где параметр задержки у всех элементов моделирующих систем одинаков (шаг Δt), т.е. их активные фазы синхронизированы, используется система автоматического планирования. Для нее период между активными фазами является системной переменной, а не атрибутом элемента. Такая система применяется в языке DYNAMO.
Языки, в которых используется интеррогативное или императивное управление, называются двухфазовыми ЯИМ, так как в их мониторах имитационный шаг, в течение которого проводятся вычисления между двумя устойчивыми состояниями, состоит из двух фаз. В первой фазе новое значение системного времени определяется после просмотра всех условий активных элементов и выбора наименьшего временного интервала или оно берется как значение времени первого сведения из календаря событий. Во второй фазе проводится просмотр условий активных элементов, проверка их выполнения, а затем определяются соответствующие операторы или те операторы, относящиеся к элементу, сведения о котором в календаре первые.
В языках, базирующихся на комбинированных системах управления и называемых трехфазовыми, синтаксис операторов планирования близок к синтаксису интеррогативных систем. При этом за счет некоторого усложнения монитора вычисления существенно ускоряются, так как вместо длительной первой фазы интеррогативного управления быстро определяются системное время и операторы активного элемента.
К числу основных средств ЯИМ относятся также средства создания и уничтожения объектов, управления очередями, планирования и упорядочивания событий, трассировки системы и сбора статистики, генерации случайных чисел с различными распределениями. Внешние декларации подпрограмм и функций могут быть помещены в отдельный файл, который включается в программу пользователя. ИМ может быть представлена следующим образом: объекты имеют атрибуты, могут принадлежать множествам, и могут использовать ресурсы. Синхронизация выполнения событий осуществляется при помощи двунаправленных циклически связных списков. Тип записи языка (например, Pascal) позволяет описать объекты, ресурсы и сообщения о событиях по специальным шаблонам. Так, поля записи объекта содержат идентификатор категории объекта, его имя и номер, указатели на положение в списке объектов, атрибуты, используемые при обработке списков, и т.д. Поля записи ресурса содержат имя ресурса и номер, количество имеющегося в наличии ресурса, доступные единицы ресурса, указатель на список объектов, ожидающих этот ресурс, и т.п. Уведомление о событии является записью с атрибутами: тип события, время наступления события, указатели положения события в списке событий, имя события и т.д. Подобное описание основных конструкций обеспечивает всю необходимую информацию для выполнения подпрограмм в ходе имитационного моделирования. Преимущество использования языка Pascal состоит в том, что для имитационного моделирования необходим лишь транслятор с языка. Применение стандартного Pascal делает программы переносимыми. Проектирование программ моделирования осуществляется по методу “сверху-вниз”, причем легче, чем на gpss или Fortran. Подпрограммы и структуры Pascal придают описанному подходу к моделированию большую гибкость. Кроме того, использование атрибутов объектов, ресурсов и сообщений позволяет осуществить не только дискретно-событийное, но и процессно-ориентированное моделирование аналогично тому, как это сделано в simula.
Запуск имитационной программы, текст которой обычно состоит из описаний динамики элементов моделируемой системы или классов, осуществляется автоматически или специальными средствами. Для повторного прогона инициализация модели обеспечивается, как правило, специальными указаниями, в которых задаются новые значения параметров. В языках, динамика системы которых структурирована на активности, имитация начинается выполнением всех активностей. Если язык имеет головную программу, то ее операторы выполняются в начале прогона модели. При использовании головной программы только для запуска модели она играет роль начальных условий.
Для повторения прогонов с новыми параметрами модели в ЯИМ используются специальные средства.
При взаимодействии двух элементов необходимо изменять атрибуты одного элемента с помощью атрибутов другого элемента. Соответствующие средства ЯИМ обеспечивают такой доступ к атрибутам. Наиболее просто это выполняется для активностей (или псевдоактивностей) в языках GPSS, SOL и родственных им. Но атрибуты транзактов (временных элементов) не имеют доступа к ним со стороны других транзактов. В языках CSL и SIMSCRIPT такие возможности имеются, и это позволяет составлять сложные имитационные программы.
Некоторые атрибуты являются системными (неявными) или недоступными. Они служат для реализации каких-либо функций, управление которыми нежелательно со стороны пользователя (например, системное время, сбор статистики и др.). Поэтому в трансляторах ЯИМ предусмотрена защита от присваиваний и назначений со стороны пользователя.
Возможно моделирование систем в режиме диалога пользователя с ЭВМ. Такое интерактивное взаимодействие обеспечивают генераторы имитационных программ. Машина “задает” в этом случае развернутые вопросы о структуре и параметрах моделируемой системы, а пользователь дает короткие ответы. Генераторы переводят тексты имитационных программ на другие языки. Такие средства автоматизированного программирования моделей позволяют создавать сложные имитаторы при относительно низкой квалификации пользователя и вмешиваться в проведение эксперимента на ЭВМ в диалоговом режиме.