- •Имитационное моделирование
- •Оглавление
- •Глава 1. Математическое моделирование 8
- •Глава 2. Имитация случайных процессов 54
- •Глава 3. Имитационное моделирование 70
- •Предисловие
- •Введение
- •Глава 1. Математическое моделирование
- •1.1. Модели и их виды
- •1.2. Моделирование
- •1.3. Модельное время и виды процессов
- •1.4. Построение дискретной (пошаговой) аналитической модели
- •1.4.1. Сущность пошагового моделирования
- •1.4.2. Принципы построения пошаговой модели
- •1.4.3. Примеры моделей
- •1.5. Построение аналоговой (дифференциальной) аналитической модели
- •1.5.1. Сущность дифференциального (функционального) подхода
- •1.5.2. Диаграммы процессов и переход к дифференциальным уравнениям
- •1.5.3. Принципы построения дифференциальной модели
- •1.5.4. Примеры
- •1.6. Упражнения
- •Вопросы к главе
- •Глава 2. Имитация случайных процессов
- •2.1. Базовые сведения о случайных величинах
- •2.1.1. Случайные величины и их распределения
- •2.1.3. Характеристики случайных величин
- •2.1.4. Метод Монте-Карло
- •2.2. Дискретные случайные числа и их имитация
- •2.3. Непрерывные случайные числа и их имитация
- •2.4. Упражнения
- •Вопросы к главе
- •Глава 3. Имитационное моделирование
- •3.1. Постановка задачи имитационного моделирования
- •3.2. Специфика имитационных моделей
- •3.3. Построение дискретной (пошаговой) имитационной модели
- •3.3.1. Построение пошаговой имитационной модели
- •3.3.2. Примеры
- •3.4. Блочное моделирование
- •3.4.1. Преимущества блочного моделирования
- •3.4.2. Принципы блочного подхода к составлению дифференциальной модели
- •3.4.3. Переход от диаграммы процессов к блочной модели
- •3.4.4. Примеры
- •3.5. Стохастическое моделирование
- •3.5.1. Основы теории очередей
- •3.5.2. Принципы построения систем массового обслуживания
- •3.5.3. Текстовое моделирование
- •3.5.4. Примеры
- •3.6. Упражнения
- •3.6. Вопросы к главе
- •Заключение
- •Библиографический список
- •Имитационное моделирование
3.5.3. Текстовое моделирование
Текстовое (командное) моделирование – один из подходов к моделированию, реализуемый в специальных программных средах, интерпретирующих команды внутреннего языка в виде модели исследуемой предметной области. Примерами таких языков могут стать DYNAMO, Pilgrim, GPSS World, PLUS и пр. Рассмотрим данную тему на примере внутреннего командного языка системы GPSS World.
Сущность текстового моделирования восходит к языкам программирования, которые применялись для описания динамики исследуемых объектов. Так как функциональность полноценного языка программирования для среды моделирования является излишней, то операторов текстовых моделей сравнительно немного, да и их значения имеют специфику. Основными объектами в системе GPSS World являются транзакты, блоки, каналы, функции, очереди, накопители, переменные, генераторы случайных чисел и другие. Поэтому, чтобы их правильно применять, требуется знать ответы на следующие вопросы, касающиеся особенностей моделируемого процесса:
• Каково число технологических процессов?
• Сколько технологических процессов могут выполняться параллельно?
• Каков характер интенсивности поступления входных данных (транзактов)?
• Каковы особенности движения транзакта в очереди?
• Какова временная характеристика обработки транзакта в каждом накопителе?
• Каков период моделирования?
Разработка модели в системе GPSS имеет следующий жизненный цикл:
1) формирование модели из текстовых блоков на внутреннем языке системы;
2) настройка параметров просчёта и содержимого отчёта;
3) просчёт и трассировка модели;
4) анализ отчёта и графиков.
Для создания кода модели используется два метода: работа в текстовом редакторе и работа с конструктором. Окно модели (текстовый редактор) можно разделить по вертикали на четыре области: область переменных, операторов (блоков), параметров и комментариев (рис. 31).
Рис. 31. Окно текстового редактора в системе GPSS World
Рис. 32. Окно настройки параметров модели
Вводить каждую строку можно как с клавиатуры (разделение областей осуществляется символом табуляции), так и вызывая окно Insert GPSS Block into Model Object (в составе пункта Edit главного меню). При использовании мастера необходимо выбрать нужный блок, затем в окне Enter Block Information ввести в поля настройки все его параметры.
Настройки просчёта модели осуществляется в окне SETTINGS, вызываемого из пункта главного меню Edit (рис. 32). На основной вкладке Reports необходимо сделать следующие настройки:
– отметить объекты, которые будут отображаться в отчёте;
– выбрать режим точности (обычный или научный (Science));
– запускать трассировщик по ходу расчета модели.
Для запуска модели необходимо выполнить следующие действия:
– выбрать команду Command\Create Simulation;
– настроить все параметры графического вывода результатов (объекты меню в списке Window\Simulation Window);
– запустить модель на просчёт (Command\Start).
Рассмотрим кратко основные блоки, используемые в рассматриваемой среде командного моделирования (табл. 15).
Таблица 15
Блоки языка GPSS World
Блок |
Назначение |
Параметры |
GENERATE |
Генерация транзакта |
Указывается частота создания нового транзакта в виде константы, теоретического или эмпирического распределений |
TERMINATE |
Уничтожение транзакта |
Задаётся число уничтожаемых транзактов |
QUEUE |
Объявление очереди |
Указывается название очереди |
TRANSFER |
Передача транзакта |
Задаётся метод перемещения транзакта и возможные пункты назначения |
SEIZE |
Проверка на освобождение канала |
Указывается наименование проверяемого канала обслуживания |
ASSIGN |
Модификация параметра |
Указывается число транзактов и очередь |
DEPART |
Покидание очереди |
Указывается наименование освобождающейся очереди |
ADVANCE |
Обслуживание |
Задаётся время обслуживания в виде константы или функции |
RELEASE |
Покидание канала обслуживания |
Указывается наименование освобождающегося канала обслуживания |
SAVEVALUE |
Сохранение значения в переменной |
Задаётся переменная и свойство объекта СМО, которое подлежит запоминанию |
STORAGE |
Объявление накопителя |
Задаётся число каналов обслуживания для данного накопителя |
ENTER |
Вход в накопитель |
Указывается наименование накопителя |
LEAVE |
Покидание накопителя |
Указывается наименование накопителя |
TABLE |
Объявление таблицы |
Указывается четыре параметра: -объект, для которого создаётся таблица -начальное значение в таблице -шаг между значениями (интервал) -число шагов (строк) таблицы |
QTABLE |
Объявление таблицы для исследования очереди |
С помощью представленных блоков можно сконструировать несложную СМО. Основы создания модели разберем на примерах.