Самостоятельная работа 1

Задания

Для лабораторных занятий и самостоятельной работы студентов

Факультета прикладной информатики

По дисциплине

«Имитационное моделирование экономических процессов»

Краснодар, 2012


Задания подготовлены старшим преподавателем кафедры экономической кибернетики Пермяковой С.В.

Научное редактирование выполнено

д. э. н., профессором Бурда А. Г.

Рецензент:

к.э.н., доцент кафедры системного анализа и обработки информации Яхонтова И.М.

Рассмотрено на заседании кафедры экономической кибернетики

Протокол № _______________________ 2012г.

и рекомендовано к печати методической комиссией факультета прикладной информатики

Протокол № ________________________ 2012г.


Содержание

Введение 6

Лабораторная работа №1
Типы операторов GPSS World. 7

Самостоятельная работа 1. 13

Лабораторная работа №2
Переход транзакта в блок, отличный от последующего. 13

Самостоятельная работа 2. 15

Лабораторная работа №3
Обработка транзактов, принадлежащих одному семейству. 16

Самостоятельная работа 3. 19

Лабораторная работа №4
Проверка числовых выражений. 20

Самостоятельная работа 4. 23

Лабораторная работа №5
Сохраняемые величины.. 23

Самостоятельная работа 5. 26

Лабораторная работа №6

Визуализация процесса имитации. 26

Лабораторная работа №7

Организация циклов. Арифметические переменные в GPSS World 31

Самостоятельная работа 6. 33

Лабораторная работа №8

Задание функций и изменение приоритетов транзактов. 34

Самостоятельная работа 7 Модель приемного покоя. 35

Лабораторная работа №9

Назначение именам числовых значений. 36

Лабораторная работа №10
Оптимизирующий эксперимент. 39

Список использованных источников: 44


Введение

Имитационное моделирование экономических процессов позволяет студентам получить знания по моделированию экономических процессов с помощью инструментов и методов имитационного моделирования. Основное внимание уделяется изложению общих положений имитационного моделирования, моделей экономических систем, процессов массового обслуживания в экономических системах. В ходе изучения этой дисциплины студенты не только знакомятся с современными методами имитационного моделирования экономических процессов, но и практически осваивают эти методы на задачах близких к реальным.

Ни один из языков моделирования не оказал на ими­тацию столь большого воздействия, как General Purpose Simulation System – система имитационного моделирования общего назначения. Это один из первых языков моделирования, облегчающих процесс написания имитационных программ, созданный в виде конечного продукта в фирме IBM в начале 60-х годов прошлого столетия. Система GPSS относится к объектно-ориентированным языкам моделирования, является предшественником таких современных систем имитационного моделирования как Extend, Arena, Process Model и др. Изучение инструментов имитационного моделирования целесообразно начинать именно с GPSS, так как она имеет четкую блочно-ориентированную структуру.

Концепция GPSS разработана с ориентацией на моделирование работы систем массового обслуживания (СМО).

Несмотря на применяемый в GPSS аппарат СМО данную систему нельзя рассматривать как компьютерный алгоритм аналитического моделирования СМО, это система имитационного моделирования, так как в моделях можно отражать различные законы распределения поступления, обслуживания заявок или выбора их из очереди. GPSS относится к системам дискретного типа.


Лабораторная работа №1
Типы операторов GPSS World

Цель работы: ознакомиться с основными правилами моделирования в системе GPSS World.

Задачи: ознакомиться с основными операторами системы, реализовать представленные примеры, сгенерировать отчеты и научиться их анализировать.

Процесс моделирования в системе GPSS World заключается в продвижении сообщений от блока к боку с указанием команд и действий с помощью операторов. Продвижение сообщений по модели начинается с блока GENERATE и заканчивается в блоке TERMINATE. Задержка сообщений во времени по задуманному закону происходит в блоке ADVANCE. Ввод в систему сообщений может быть также задан по какому-либо статистическому закону. Перечисленные три блока относятся к блокам динамической категории.

Моделирующая программа начинается с блока GENERATE и заканчивается в блоке TERMINATE.

Формат описания блока SEIZE имеет вид:

SEIZE <A>

Этот блок имеет только одно поле <A>, которое задает номер или имя устройства, присвоенное разработчиком.

Формат описания блока RELEASE имеет вид:

RELEASE <A>

Операнд поля <A> блока RELEASE должен быть таким же, как и для соответствующего блока SEIZE.

Формат описания блока TERMINATE имеет вид:

TERMINATE <A>

В поле <A> блока TERMINATE задается число единиц транзактов, на которое этот блок изменяет содержимое счетчика завершений, определяющего момент окончания моделирования.

Пример 1. Заявки поступают в систему массового обслуживания через фиксированное время – 7 минут. Обслуживание каждой заявки занимает 5 минут (фиксировано). После обработки заявки покидают систему. Провести обработку 100 заявок.

Рисунок 1 – Листинг программы примера 1 в рабочем окне GPSS World

Для запуска программы на выполнение выберите в строке меню Command>>Create Simulation.

Результаты моделирования по программе EX1.gps рассмотрим по файлу стандартного отчета EX1.1.1 – REPORT, который автоматически формируется системой GPSS World.

GPSS World Simulation Report - EX1.1.1

Monday, December 21, 2009 09:32:29

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 705.000 5 1 0

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 100 0 0

2 SEIZE 100 0 0

3 ADVANCE 100 0 0

4 RELEASE 100 0 0

5 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

1 100 0.709 5.000 1 0 0 0 0 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

101 0 707.000 101 0 1

Рисунок 2 – Стандартный отчет EX1.1.1 – REPORT

В приведенном на рис.2 файле стандартного отчета сначала идет информационная строка системы GPSS World с указанием наименования отчета, дня недели выполнения отчета, дата и время. Затем строка стандартного сообщения о начале моделирования START TIME, его окончании END TIME, количестве используемых в программе блоков BLOCKS, количестве установленных устройств FACILITIES, количестве многоканальных устройств, для которых определяется заданная емкость накопителя STORAGES.

Далее приводятся номера блоков, которые определяются системой LOC, названия блоков BLOCK TYPE, количество транзактов, проходящих через соответствующий блок программы ENTRY COUNT, текущее количество транзактов, задержанных в блоке на момент окончания моделирования CURRENT COUNT, количество транзактов, ожидающих специальных условий для прохождения через данный блок RETRY. В нашем случае, количество транзактов, проходящих через блоки равно 100. Все 100 транзактов, которые были сгенерированы блоком GENERATE, прошли через все блоки программы.

Возможности моделируемой системы отражается через устройство FACILITY под номером 1, где оцениваются следующими стандартными атрибутами: количество транзактов, прошедших через устройство, указывается в поле ENTRIES (в нашем случае это число 100); коэффициент использования в относительных единицах – поле UTIL (0.709, которое показывает ту часть периода моделирования, в течении которого устройство было занято); среднее время обработки или задержки одного транзакта в устройстве – поле AVE. TIME (5 минут, которое также можно определить как среднее время занятости устройства); поле AVAIL. Определяет состояние готовности устройства в конце периода моделирования (оно равно 1, если устройство готово, и 0, - если не готово); поле OWNER определяет номер последнего транзакта, занимавшего устройство (если устройство не занималось, то выставляется 0); поле PEND определяет количество транзактов, ожидающих устройство, находящееся в режиме прерывания; поле INTER определяет количество транзактов, прерывающих устройство в данный момент; поле RETRY определяет количество транзактов, ожидающих специальных условий, зависящих от состояния объекта типа «устройство»; поле DELAY определяет количество транзактов, ожидающих занятия или освобождения устройства.

Чаще процесс поступления транзактов в систему и процесс обработки подчиняется некому закону распределения, в заданном интервале.

При равномерном законе поступления транзактов и том же законе обслуживания операнд поля <B> в блоках GENERATE и ADVANCE классифицируются как модификатор-интервал. Если поступление или обслуживание транзактов подчиняется какому-либо функциональному закону, отличному от равномерного, то тогда операнд поля <B> квалифицируется как модификатор-функция.

Формат описания блоков:

GENERATE <A>, <B>, <С>, <D>, <E>

ADVANCE <A>, <B>

Поле <С> блока GENERATE означает временную задержку начала моделирования. В поле <D> указывается число генерируемых транзактов. В поле <Е> отмечается уровень приоритета транзакта.

Пример 2. Изменим начальные условия примера 1. Теперь поступление транзактов и их обработка будут осуществляться по равномерному закону распределения в заданных интервалах. Поступление заявок будет подчиняться равномерному закону с интервалом 7±2 мин. (от 5 до 9 мин.), а обработка – равномерному закону со временем обработки 5±2 мин. (от 3 до 7 мин.).

Листинг программы примера 2:

GENERATE 7,2

SEIZE 1

ADVANCE 5,2

RELEASE 1

TERMINATE 1; уничтожение транзактов

START 100

Файл стандартного отчета для примера 2 представлен на рисунке 3.

GPSS World Simulation Report - EX2.8.1

Monday, December 21, 2009 14:32:56

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 714.047 5 1 0

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 100 0 0

2 SEIZE 100 0 0

3 ADVANCE 100 0 0

4 RELEASE 100 0 0

5 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

1 100 0.699 4.994 1 0 0 0 0 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

101 0 718.106 101 0 1

Рисунок 3 – Стандартный отчет EX2.1.1 – REPORT

Проанализируйте полученные результаты, сравните с результатами примера 1, сделайте выводы.

Пример 3. В систему обслуживания справочного бюро поступают заявки, распределенные по равномерному закону в интервале от 3 до 7 мин. Обработка поступивших заявок осуществляется также по равномерному закону распределения в интервале от 6 до 10 мин. Необходимо смоделировать работу системы обслуживания в течение 120 мин.

Листинг программы примера 3:

GENERATE 120; генерация 1 транзакта в течение 120 мин

TERMINATE 1; уничтожение транзакта

GENERATE 5,2; генерирует транзакты каждые 5±2 мин

SEIZE 1

ADVANCE 8,2; обработка транзактов

RELEASE 1

TERMINATE; уничтожение транзактов

START 1

Сгенерируйте отчет, проанализируйте полученные результаты, сделайте выводы.

Для моделирования постановки транзакта в очередь используется оператор QUEUE. В модели регистрируется и потом выдается в стандартном отчете о результатах моделирования статистика об очереди перед обслуживающим устройством. После занятия обслуживающего устройства транзакт должен покинуть очередь. Это отражается блоком DEPART.

Формат описания блоков:

QUEUE <A>, <B>

DEPART <A>, <B>

Поле <А> отражает имя очереди, в которую необходимо встать (покинуть) транзакту. Поле <В> отражает число единиц, на которое увеличится (уменьшиться) длина очереди.

Пример 4. Прибыв в банк (каждые 2±2 мин.), клиент встает в очередь. После того, как подойдет его очередь на обслуживание работником банка, клиент, подходящий к банкиру, покидает очередь; обслуживание длится 5±2 мин. Работник банка (банкир) имеет 8 часовой рабочий день.

Листинг программы примера 4:

GENERATE 480; генерация 1 транзакта в течение 8 часов

TERMINATE 1; уничтожение транзакта

********

generate 2,2; генерация прихода клиентов

queue ochered; встают в очередь

seize bankir; захват транзактов банкиром

depart ochered; освобождение очереди

advance 5,2; обслуживание клиента банкиром

release bankir; освобождение банкира

terminate; выход клиента из банка

start 1

Сгенерируйте отчет, проанализируйте полученные результаты, сделайте выводы.

В стандартном отчете появятся новые статистические показатели. В столбце QUEUE указывается название очереди, далее следует максимальная длина очереди за весь период моделирования - MAX. CONT. – указывает на текущую длину очереди. Общее количество транзактов в очереди указывается в столбце ENTRY. ENTRY (0) отражает количество нулевых входов. Средняя длина очереди отразится в AVE.CONT. AVE. TIME укажет на среднее время пребывания транзакта в очереди. В столбце AVE. (-0) отражается среднее время пребывания транзакта в очереди без учета нулевых входов. RETRY – указывает на количество транзактов, ожидающих специального условия.

Самостоятельная работа 1

Покупатели приходят в магазин по равномерному закону распределения каждые 2±1 мин. На выбор товара они тратят от 2 до 8 мин, после чего отправляются на кассу. Кассир обслуживает клиентов в среднем от 3 до 7 мин. Смоделируйте работу системы в течение 8 часового рабочего дня.

Лабораторная работа №2
Переход транзакта в блок, отличный от последующего

Цель работы: научиться перенаправлять генерируемые транзакты в блоки, отличные от последующего.

Задачи: ознакомиться с операторами перехода транзактов, реализовать представленные примеры, сгенерировать отчет и проанализировать его.

Блок TRANSFER (передать) переводит транзакты в блоки, отличные от последующего. Данный блок имеет несколько режимов:

А) Режим безусловной передачи. Формат блока:

TRANSFER, <B>

<B> - это метка или номер блока, куда должен перейти транзакт. В этом режиме, блок TRANSFER не может отказать транзакту во входе, который сразу же пытается войти в блок В.

Б) Режим статистический. Формат блока:

TRANSFER <А>, <B>, <С>

<А> - вероятность передачи транзакта в блок С, задаваемая в долях тысячи. <B> - позиция блока, в которую должен перейти транзакт (с вероятностью 1-А). <С> - позиция блока, в которую должен перейти транзакт (с вероятностью А).

В) Режим BOTH – если в операнде А стоит слово BOTH, то входящий транзакт пытается перейти к блоку, метка которого указана в операнде В. Если этот блок занят, то транзакт идет в блок с меткой, указанной в операнде С.

Пример 5: К рабочимпоступают на изготовление детали с транспортного конвейера. Интервал между поступлениями двух идущих одна за другой деталей равен 9±1 мин. Время изготовления детали первым рабочим составляет 12±1 мин, а вторым - 13±2 мин. Если рабочий занят, он не берет деталь с конвейера, и она перемещается к другому рабочему. Смоделировать работу первого и второго рабочих в течении 8 часовой смены. Первая деталь поступает на изготовление через 15 мин после начала смены.

Листинг программы примера 5:

generate 9,1,,15

transfer both,,raboch2; если следующий блок занят, то транзакт переходит на метку raboch2

seize raboch_1

advance 12,1

release raboch_1

terminate

raboch2 seize raboch_2

advance 13,1

release raboch_2

terminate

**********

generate 480

terminate 1

start 1

Г) Режим ALL. Формат блока:

TRANSFER ALL, <B>, <С>, <D>

При данном режиме проверяется блок, метка которого указана в операнде В. Если этот блок занят, то последовательно проверяются все блоки до тех пор, пока не будет достигнут блок, заданный в операнде С, или один из проверенных блоков не примет транзакт до достижения блока, метка которого указана в операнде С. В операнде D задается число, строк блоков между каждым из анализируемых устройств.

Д) Режим PICK. Формат записи:

TRANSFER PICK, <B>, <С>

В этом режиме блок TRANSFER случайным образом с равной вероятностью отправляет транзакт в один из блоков, которые составляют ряд от начального блока, указанного в операнде В, до блока, указанного в операнде С.

Если необходимо провести два прогона, то после оператора START предусматривается оператор очистки данных CLEAR, после которого повторяется оператор START.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: