- •1. Наличие цели
- •1.3. Классификация моделей
- •1.4. Методы моделирования
- •2. Математические схемы моделирования систем
- •2.1. Основные подходы к построению мм систем
- •2.2. Задачи, решаемые с помощью моделирования
- •2.3. Система массового обслуживания как модель
- •2.4. Модели потоков
- •2.2. Аналитический анализ смо
- •2.2.1. Экспоненциальная система массового обслуживания
- •2.2.1.2. Многоканальная экспоненциальная смо
- •2.2.1.3. Модель m/g /1
- •2.3. Сети массового обслуживания
- •2.4. Анализ разомкнутых экспоненциальных СеМо
- •2.4.1. Свойства разомкнутой экспоненциальной СеМо
- •2.5. Расчет системных характеристик экспоненциальных СеМо
- •Контрольные вопросы
- •Пример 1. Проблема распределение канала
- •1. Статическое распределение канала
- •2. Динамическое распределение канала
- •Пример: расчет системы телеобработки данных
- •3.1. Задание
- •3.2. Решение
- •4. Схема расчета замкнутой СеМо
- •4. Имитационное моделирование систем массового обслуживания
- •4.1. Система массового обслуживания как модель и оригинал
- •4.2. Иллюстративный пример: моделирование посадки самолетов.
- •4.3. Пример: оценка надежности системы
- •Рассмотрим случайную величину
- •5. Построение моделирующего алгоритма
- •5.1. Моделирование на эвм процесса функционирования смо
- •Шагом (принцип t)
- •С другой стороны, принцип особых моментов выгоден тем, что
- •5.2. Особенности реализации процессов с использованием q-схем
- •5.2. Примеры моделирования смо с отказами
- •5.2.1. Подготовка исходных данных и назначение переменных
- •Моделирование смо с отказами по схеме событий
- •5.2.2.1. Построение блок-схем алгоритма имитации
- •Моделирование смо с отказами по схеме событий
- •5.3. Схемы построения моделирующего алгоритма
- •5.4. Моделирование смо с отказами по схеме процессов
- •Моделирование смо с отказами по схеме процессов
- •Шаг имитации
- •Класс процессов "генерирование заявок источником"
- •Численный пример
- •5.5. Семафоры и связные списки
- •5.6. Алгоритмы обслуживания очередей
- •1) Традиционный алгоритм fifo
- •2) Приоритетное обслуживание (Priority Queuing)
- •3) Взвешенные настраиваемые очереди (Weighted Queuing)
- •6. Оценки искомых характеристик и их дисперсии
- •6.1. Структура оценок
- •7. Моделирование случайных факторов
- •8. Тестирование имитационной модели
- •9. Планирование статистического эксперимента
- •Вопросы и задания
- •Планирование машинных экспериментов с моделями систем
- •Методы планирования эксперимента на модели.
- •11. Замечание о языках моделирования
- •Моделирование смо с одним npи6opом и очередью
11. Замечание о языках моделирования
Разработки языков моделирования велась с использованием идей и приемов, содержащихся в универсальных языках программирования: алголе, фортране, Паскале и др. Язык моделирования представляет собой расширение универсального языка путем добавления специальных средств моделирования, либо на основе универсального языка создан пакет программ для моделирования. В последнем случае не нужен специальный транслятор, можно воспользоваться транслятором универсального языка.
В основе каждого языка лежит одна из схем построения моделирующего алгоритма: схема событий, схема процессов, схема работ (схема в курсе не рассматривалась). Соответственно говорят о языке событий, языке процессов и языке работ.
Когда говорят о языке моделирования, предполагают, что в распоряжении исследователя имеется соответствующий транслятор, переводящий программу, записанную на языке моделирования, в программу на языке вычислительной машины. Язык моделирования вместе с соответствующим транслятором образует систему моделирования. Создано большое число языков моделирования, и даже предпринята попытка их систематизации.
Исторически первым языком моделирования можно считать GPSS (General Purpose Sistems Simulatoг), разработанный фирмой IBM. Первое представление о языке GPSS дает простейший пример, приведенный ниже.
Моделируется СМО с одним прибором и неограниченным числом мест для очереди. Заявки поступают через случайные промежутки времени, распределенные равномерно в интервале, который иначе можно записать в виде 18±6. Время обслуживания заявки в приборе распределено аналогично, но в интервале 164. Предполагается получить одну реализацию длиной 1000, т.е. имитировать функционирование указанной СМО в течение 1000 единиц системного времени. В процессе моделирования должны быть собраны статистические данные, по которым исследователь смог бы судить о загрузке прибора, длине очереди, времени ожидания.
Приведем текст программы на языке GPSS.
SIMULATE
Моделирование смо с одним npи6opом и очередью
GENERATE 18, 6 генерирование заявок через интервалы 18±6
QUEUE QPR постановка в очередь, имя которой QPR
SEIZE PR занятие прибора
DEPART QPR уход из очереди
ADVANCE 16,4 обслуживание (задержка на время 16±4)
RELEASE PR освобождение прибора
TERMINATE уход заявки из системы
Второй сегмент: условие остановки
GENERATE 1000 выдача таймером сигнала в момент 1000
TERMINATE 1 завершение реализаций (прогона)
Видно, что это действительно язык моделирования, так как используются характерные для моделирования термины: генерировать, очередь занять, задержать (на время выполнения работы), освободить.
Написать программу моделирования в этих терминах значительно легче, чем составить алгоритм на псевдокоде и потом перевести его на алгоритмический язык. В этом и состоит цель применения языков моделирования. Здесь, в частности, не надо думать ни о календаре, ни о планировании событий, ни о пополнении статистик - обо всем позаботится интерпретатор.
GPSS по этому признаку надо считать языком процессов. Но его называют также языком транзактов, так как в нем понятие транзакта играет существенную роль.
Транзакт- это временный объект, который появляется в системе, продвигается в ней и покидает систему. Само слово транзакт ассоциируется с пассивным объектом, которого кто-то ведет (transact - вести). Активность – это постоянно присутствующий в системе объект, который занимается передвижением транзактов Активность принимает транзакт на некоторое время, а потом передает его другой активности. Примеры транзактов: заявки, детали, покупатели. Примеры активностей: приборы, ячейки буфера; станки, склады; кассиры, продавцы.
Применительно к программе моделирования транзакты и активности
– это некоторые структуры данных, содержимое которых меняется, моделируя передвижение транзактов. Информация, содержащаяся в атрибутах транзактов и активностей, зачастую дублируется. Например, момент перехода заявки из буфера в прибор может быть записан и в транзакте, описывающем заявку, и в активности, описывающей буфер, и в активности, описывающей прибор. В некоторых языках моделирования используется структуры данных только одного вида: либо транзакты, либо активности. Чаще используются оба вида, но какой-то является ведущим. По этому признаку подробная классификация языков моделирования приведена Е. Киндлером.
Система GPSS прошла длинный путь развития. Ее главными недостатками были:
■ низкий уровень входного языка;
■ невозможность реализации нестандартных вычислений;
■ скрытость от программиста внутренней логики поведения модели.
Они резко ограничивали полезность системы Радикальные изменения произошли одновременно с переходом Windows-версиям.Написана студенческая версия GPSS World 4.2.1. Она бесплатно распространяется через Интернет (эл. адрес www.minutemansoftware.com).
Разработки языков моделирования велись в направлении устранения неудобств и предоставления пользователю все более универсальных средств для составления программ. Это привело фактически к слиянию универсальных языков с языками моделирования. Уже язык SIMULA-67 (Норвегия,1968) в дополнении к средствам языка ALGOL-60 содержит удобный аппарат описания новых понятий, средства обработки текстовой информации, стандартные средства ввода-вывода, средства для организации квазипараллельного исполнения компонентов программы. SIMULA-67 позволяет создать специализированный язык моделирования и пакет прикладных программ для конкретной предметной области с использованием терминов из этой области. Это значительно облегчает специалистам разных областей использование моделирования на ЭВМ для решения своих проблем.
Многие из языков моделирования позволяют в рамках одной программы моделировать системы, в которых взаимодействуют дискретные и непрерывные процессы. К таким языкам относятся НЕДИС, GASP IV, СИМФОР, СЛАМ II и др.
В эпоху персональных компьютеров разработаны программные средства, объединяющие идеологию моделирования (как правило, по схеме процессов) с богатыми возможностями персональных компьютеров по обеспечению сервиса. Обычно это - мощные инструментальные программные системы, совместимые с такими распространёнными языками как: MODUL-2, ТURBO-C, TURBO-C++.
Приобрело популярность объектно-ориентированное программирование. В понятии «объект» совмещены структуры данных к описанию процедур, способных оперировать с этими данными. Вспомним , что понятие процесса рассматривалось нами в двух смыслах: как структура данных и как алгоритм. Теперь эти два понятия объединены в одном понятии объекта. Объекты взаимодействуют между собой подобно процессам в системе. SIMULA-67 послужил идейным источником объектно-ориентированного программирования.
Для языков, используемых в задачах моделирования, можно составить классификацию следующего вида (см. рис. 11.1)
Вопросы и задания
1. Система моделирования и язык моделирования - каково соотношение этих понятий?
2. Чем программа на языке GPSS напоминает программу на языке ассемблера?
3. Как может быть связан язык моделирования с универсальным языком программирования?
4. Что в приведенной программе (с . ) свидетельствует о том, что GPSS' язык процессов?
5. Что в приведенной программе подкрепляет утверждение, что GPSS язык транзактов?
6, Рассмотрите приведенные алгоритмы моделирования СМО (по схемам событий и процессов), чтобы определить их ориентации: на транзакты или да активности.
7. В чем состоят главные достоинства языка СИМУЛА - 67?
Рис. 11.1. Классификация языков моделирования.