- •Конспект лекций По дисциплине «Моделирование систем» Содержание
- •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.Метод крутого восхождения
7.2.Списки
Логика работы моделирующей системы обеспечивается списками. Списки представляют собой структуры данных, в которых размещается полная информация о транзактах.
Список будущих событий (FEC) содержит транзакты, которые смогут начать движение в модели в будущие моменты времени. Это те транзакты, для которых моменты начала движения определены в блоках GENERATE и ADVANCE.
В список текущих событий (CEC) входят транзакты, которые должны перемещаться в модели в текущий момент модельного времени. Если при этом транзакт входит в блок ADVANCE с ненулевым временем задержки, то он перемещается в список будущих событий.
В список прерываний помещаются транзакты, обслуживание которых прервано блоком PREEMPT. После снятия прерывания в блоке RETURN транзакты вновь возвращаются в список будущих событий. На рис. 1 представлена структура элемента списка GPSS.
Номер транзакта |
Приоритет |
Время помещения в список |
Группа |
Номер текущего блока |
Номер следующего блока |
XN |
PRI |
BDT |
ASSEM |
CURRENT |
NEXT |
Рис 1. Структура списка GPSS
В список синхронизации помещаются транзакты, ожидающие объединения с другими транзактами в блоках GATHER и ASSEMBLE или находящиеся в блоках MATCH. После выполнения условий синхронизации транзакты возвращаются в список текущих событий.
Кроме рассмотренных списков, обработка которых происходит без участия программиста, в GPSS существуют списки пользователя, управление которыми осуществляется с помощью блоков LINK и UNLINK. Списки пользователя имеют СЧА, к которым можно обращаться внутри модели:
CHj - текущее число транзактов в списке j;
CAj - среднее число транзактов в списке j;
CMj - максимальное число транзактов в списке j;
CCj - общее число входов транзактов в список j;
CTj - среднее время пребывания транзакта в списке j.
Процедура просмотра списка текущих событий:
Процесс движения транзактов в модели сопровождается просмотром содержимого списков, внесением в них изменений, а также перемещением транзактов из одного списка в другой.
Транзакты, находящиеся в списке текущих событий, расположены в порядке убывания приоритетов. Когда транзакт вводится в список текущих событий, он становится последним среди транзактов, имеющих тот же приоритет. Процедура просмотра списка текущих событий выполняет три основные действия:
Коррекция таймера. При этом момент времени устанавливается равным наименьшему времени выхода из блока для транзактов, находящихся в списке будущих событий. Все транзакты, имеющие такое время выхода, переводятся из списка будущих событий в список текущих событий;
Последовательный просмотр списка текущих событий к его концу с целью определения возможностей движения их в модели;
Попытка продвижения транзакта в последующие блоки. Если транзакт может войти в следующий блок, выполняется программа, соответствующая данному блоку. Если дальнейшее движение транзакта невозможно в силу тех или иных условий, процедура переходит к обработке следующего транзакта. Так до тех пор, пока дальнейшее продвижение любого транзакта станет невозможным. Тогда осуществляется коррекция таймера, и процедура повторяется сначала.