Назначение именам числовых значений
Цель работы: научиться назначать именам числовые значения.
Задачи: познакомиться с оператором EQU, реализовать представленные примеры, сгенерировать отчет и научиться его анализировать.
Назначение именам числовых значений осуществляется c помощью оператора EQU. Формат функции EQU:
<Метка> EQU <А>,<В>
Метка — обязательное имя или символ;
А — имя одного или нескольких классов объектов;
В — количество объектов.
Атрибуты устройств:
F — истинно (1), если устройство занято;
FC — число транзактов в устройстве;
FT — среднее время пребывания транзакта в устройстве.
Атрибуты блоков:
N — полное число транзактов, вошедших в блок (с указанием имени или номера блока)
W — текущее содержание (число транзактов в блоке).
Пример 12. Имитационное моделирование движения на переходном переходе
Смоделировать движение на переходном переходе, оборудованном светофором. Автомобили подъезжают к переходу с равномерным распределением с интервалом времени 20±10 сек., а пешеходы, желающие пересечь улицу по переходу, прибывают к нему с интервалом 30±10 сек. Если переход занят пешеходами, то дорожное движение останавливается и создается очередь из ожидающих автомобилей. Время проезда через пешеходный переход составляет 10±2сек, пешеходы пересекают его в течении 14±3 сек. Красный сигнал светофора горит 300 сек, зеленый – 200 сек. Смоделировать работу системы для проезда 1000 автомобилей.
Таблица обозначений.
Временная дискрета: 1 сек.
| Объект | Объект в системе |
| Транзакты Фрагмент 1 модели Фрагмент 2 модели Фрагмент 3 модели | Поток автомобилей Поток пешеходов Режим работы светофора |
| Функции Perexod | Пешеходный переход |
| Продолжение таблицы обозначений | |
| Очереди OCHER_mash OCHER_pesh | Очередь машин перед переходом Очередь пешеходов перед переходом |
| Переменные SVET_avto SVET_pesh Zelen_time Kras_time Zelen Kras | Сигнал светофора со стороны машин Сигнал светофора со стороны пешеходов Время горения зеленого сигнала светофора Время горения красного сигнала светофора Зеленый сигнал светофора Красный сигнал светофора |
Листинг программы
*****Поток автомобилей****
generate 20,10; подъезжают автомобили
queue OCHER_mash; очередь машин перед переходом
test e X$SVET_avto,F$Perexod;свободен ли переход от пешеходов и горит ли зеленый свет
seize Perexod; машины проезжают по переходу
depart OCHER_mash; освобождаем очередь
advance 10,2; время движения по переходу
release Perexod;освобождение пешеходного перехода
terminate 1
*******Поток пешеходов********
generate 30,10; подъезжают автомобили
queue OCHER_pesh; очередь пешеходов перед переходом
test e X$SVET_pesh,F$Perexod;свободен ли переход от машин и горит ли зеленый свет
seize Perexod; пешеходы проходят по переходу
depart OCHER_pesh; освобождаем очередь
advance 14,3; время движения по переходу
release Perexod;освобождение пешеходного перехода
terminate 0
*********Работа светофора*******
generate,,,1;один светофор
Beg_n savevalue SVET_pesh,Kras;пешеходам горит красный
savevalue SVET_avto,Zelen;машинам горит зеленый
advance Zelen_time;продолжительность зеленого сигнала светофора
savevalue SVET_pesh,Zelen;пешеходам горит зеленый
savevalue SVET_avto,Kras;машинам горит красный
advance Kras_time;продолжительность красного сигнала светофора
transfer,Beg_n
Zelen EQU 0
Kras EQU 100
Zelen_time EQU 200
Kras_time EQU 300
start 1000
Сгенерируйте отчет, проанализируйте полученные результаты, сделайте выводы.
Лабораторная работа №10
Оптимизирующий эксперимент
Цель работы: научиться оптимизировать параметры моделируемой системы
Задачи: промоделировать работу заданной системы, оптимизировать работу системы, исходя из заданных целей, сгенерировать отчет, проанализировать полученные результаты.
Иногда постановка имитационной задачи предполагает нахождение оптимального значения какого-либо параметра системы или сочетания набора ее элементов. В этом случае используют встроенную в GPSS World процедуру оптимизирующего эксперимента.
Рассмотрим задачу оптимизации числа работников цеха механосборки.
Задача
На производственном участке работает 3 человека. Чтобы изготовить изделие, работники сначала его собирает в течение 30±5 мин, а потом обрабатывают с помощью специального устройства в течение 8±2 мин. После обработки изделие считается готовым. Прибыль от одного изделия составляет 5 единиц стоимости, использование машины обходится в 400 единиц стоимости в неделю, зарплата одного работника – 150 единиц стоимости в неделю.
Определить, сколько нужно рабочих, чтобы прибыль от производства была максимальной. Моделирование необходимо выполнить для пятидневной недели с восьмичасовым рабочим днем.
Составьте программу, используя следующие обозначения: количество работников – nworkers; прибыль – prib.
Процедура оптимизирующего эксперимента предполагает следующее:
Необходимо выбрать пункт меню Edit/Insert Experiment/Optimizing после чего откроется диалоговое окно Optimizing Experiment Generator (рис.7)
В полях Experiment Name и Run Procedure Name задают соответственно название эксперимента и Run-процедуры прогонов модели (рекомендуется использовать DoTheRun).
В полях Factor Name указываются изменяемые величины и задаются значения их верхних и нижних уровней. Value 1 и Value 2.

Рисунок 7 – Окно «Optimizing Experiment Generator»
Поля Low Limit, High Limit для Movement Limit задают максимальные границы перемещения.
Значение поля Redirection Limit ограничивает количество изменений направлений при поиске оптимума.
В поле Expression указывают целевую функцию. С помощью переключателя Maximize/Minimize выбирается направление оптимизации.
При выборе Generate Run Procedure создается процедура прогонов модели. Выбор Load F12 позволяет запускать эксперимент с помощью нажатия одной клавиши F12.
Для запуска автоматической генерации эксперимента нажмите кнопку Insert Experiment, после чего откроется окно Run Procedure Generation (рис.8), в котором отображается автоматически сгенерированный текст Run-процедур.

Рисунок 8 – Окно «Run Procedure Generation»
В него нужно внести исправления (рис. 9).

Рисунок 9 – Откорректированное окно «Run Procedure Generation»
Теперь надо оттранслировать модель, выполнив пункт меню Command/Create Simulation. При этом все процедуры регистрируются (рис.10).

Рисунок 10 – Журнал регистрации процедур эксперимента
Нажатием клавиши F12 запускают эксперимент. В журнале сессии будет представлена следующая информация о ходе эксперимента (рис. 11).

Рисунок 11 – Журнал оптимизирующего эксперимента
Оптимальные значения: переменная nworkers составляет 4,978; переменная prib = 53,26 ед. С учетом условия целочисленности количества работников для этой работы равно 5, а величина дохода при этом составит 53,26 ед.
Список использованных источников:
1. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. – М.: ДМК Пресс, 2004.
2. Прицкер А. Введение в имитационное моделирование и язык СЛАМ II – M.: Мир, 1987.
3. Советов Б.Я. Моделирование систем. Практикум: Учеб. пособие для вузов/ Б.Я. Советов, С.А. Яковлев. – 3-е изд., стер. – М.: Высш. шк., 2005.
4. Томашевский В. Имитационное моделирование в среде GPSS./В. Томашевский, Е. Жданова. – М.: Бестселлер, 2003.
5. Ходяков Е.В. Имитационное моделирование экономических процессов в АПК. Учебное пособие/Е.В. Ходяков, А.А. Липатов. – М. Издательский центр МГАУ, 2006.
6. Шеннон Р. Имитационное моделирование систем – наука и искусство. – М.: Мир, 1978.






