Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ПРИКЛАДНОЙ ИНФОРМАТИКИ КАФЕДРА Э

Работа добавлена на сайт samzan.net:


ФГОУ ВПО

«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ»

ФАКУЛЬТЕТ   ПРИКЛАДНОЙ   ИНФОРМАТИКИ

КАФЕДРА   ЭКОНОМИЧЕСКОЙ   КИБЕРНЕТИКИ

Задания

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

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

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

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

Краснодар, 2012


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

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

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

Рецензент:

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

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

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

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

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


Содержание

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

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

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

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

[3.1] Самостоятельная работа 2

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

[4.1] Самостоятельная работа 3

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

[5.1]
Самостоятельная работа 4

[6] Лабораторная работа №5
Сохраняемые величины

[6.1] Самостоятельная работа 5

[7] Лабораторная работа №6

[8] Визуализация процесса имитации

[9] Лабораторная работа №7

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

[10.1] Самостоятельная работа 6

[11] Лабораторная работа №8

[12] Задание функций и изменение приоритетов транзактов

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

[13] Лабораторная работа №9

[14] Назначение именам числовых значений

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

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


Введение

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

Ни один из языков моделирования не оказал на имитацию столь большого воздействия, как 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.

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

Задача 1

В систему массового обслуживания поступают заявки по равномерному закону распределения через 4±3 мин. Обработка заявок осуществляется двумя обслуживающими каналами. Поступление заявок в тот или иной канал происходит с вероятностью 0.3 и 0.7. Обслуживание заявок каждым каналом происходит по равномерному закону от 5 до 9 мин. Осуществить обработку 100 заявок при одном и двух прогонах программы. Проанализируйте полученные результаты.

Задача 2

В систему массового обслуживания поступают заявки по равномерному закону распределения через 3±2 мин. Обработка заявок осуществляется двумя обслуживающими каналами. Обслуживание заявок первым каналом происходит по равномерному закону от 2 до 8 мин., вторым - от 5 до 9 мин. Причем предпочтительнее обработка на первом приборе. Осуществить обработку 100 заявок при одном и двух прогонах программы. Проанализируйте полученные результаты.

Задача 3

В систему массового обслуживания поступают заявки по равномерному закону распределения через 5±2 мин. Обработка заявок осуществляется в одном из четырех обслуживающих каналах. Обслуживание заявок первым каналом происходит по равномерному закону от 15 до 19 мин., вторым - от 10 до 14 мин, третьим - 9±2 мин и четвертым 3±2 мин. Осуществить обработку 100 заявок при одном и двух прогонах программы, когда вновь поступающая заявка обслуживается любым свободным каналом. Проанализируйте полученные результаты.

Задача 4

Смоделировать обслуживание 100 заявок, при одном и двух прогонах программы, которые поступают на обслуживание каждые 4±3 мин. Обработка заявок может осуществляться четырьмя каналами с равной вероятностью и временем обслуживания 12±2 мин, 7±2 мин, 10±2 мин, 13±2 мин соответственно. Проанализируйте полученные результаты.

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

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

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

Блок SPLIT выполняет функцию копирования транзакта, входящего в него, самостоятельно создавать транзакты он не может. При этом входящий транзакт называют транзактом-родителем, а копию – транзактом-потомком. Каждый транзакт-потомок становится членом семейства транзактов, порожденных одним транзактом-родителем. Формат блока:

SPLIT <А>, <B>, <С>

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

Блок ASSEMBLE объединяет определенное количество транзактов, после чего из него выходит один транзакт, а все остальные уничтожаются. Т.о., этот блок осуществляет сборку заданного числа транзактов. Он имеет следующий формат:

ASSEMBLE <А>

Поле А объединяет заданное число транзактов, принадлежащих к одному семейству, в один транзакт, который переходит в следующий по номеру блок.

Пример 6. В цех поступают детали по равномерному закону в интервале 5±2 мин. Обработка деталей, поступивших на первую сортировку, осуществляется также по равномерному закону в интервале от 4 до 8 мин. Далее рассортированные детали проходят параллельную обработку с еще одним этапом сортировки, т.е. формируется новая деталь, состоящая из двух исходных. После обработки новые детали собираются в одном помещении. Смоделировать работу цеха по обработке 100 деталей.

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

generate 5,2,,100

split 1,obr1det

seize 1

advance 6,2

release 1

transfer ,out

obr1det split 1, obr2det

seize 2

advance 6,2

release 2

transfer ,out

obr2det seize 3

advance 6,2

release 3

out assemble 3

terminate 1

start 100

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

Блок GATHER осуществляет накопление транзактов одного и того же семейства, с последующей попыткой одновременной передачи их к следующему блоку. Формат блока:

GATHER <А>

Операнд А задает число транзактов, которое необходимо накопить.

Пример 7. На участок сборки подшипников поступает 100 деталей с интервалом времени от 21 до 29 мин. Одна деталь состоит из 1 обоймы и 8 шариков. На контроль обоймы затрачивается от 3 до 5 мин; контроль шариков осуществляется последовательно от 1 до 3 мин на шарик. Операция сборки требует одновременного поступления обоймы и 8 шариков и производится от 2 до 6 мин. Все процессы подчиняются равномерному закону. Смоделировать процесс прохождение 100 деталей на производственном участке сборочного цеха.

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

detal generate 25,4,,100

split 8,shar

oboima seize 1

advance 4,1

release 1

transfer ,soed

shar seize 2

advance 2,1

release 2

gather 8

soed assemble 9

podsh seize 3

advance 4,2

release 3

terminate 1

start 100

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

С помощью блока MATCH осуществляется синхронизация продвижения транзактов по модели с другим блоком MATCH.

Пример 8. Детали на участок поступают с интервалом времени 300±50 мин, их обрабатывают двое рабочих. После завершения операции обработки, выполняемой 1-м рабочим со временем 90 мин и 2-м со временем 60, осуществляется операция сверки, время выполнения которой принимается равной нулю. Затем 3-й рабочий производит сборку изделия из этих деталей со временем 40 мин. Сборка начинается только после поступления всех деталей. Смоделировать процесс прохождения 100 деталей.

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

detal generate 300,50

split 1,rab2

rab1 seize 1

advance 90

qq1 match qq2

release 1

transfer ,soed

rab2 seize 2

advance 60

qq2 match qq1

release 2

soed assemble 2

rab3 seize 3

advance 40

release 3

terminate 1

start 100

Сгенерируйте отчет, проанализируйте полученные результаты, сделайте выводы. Смоделируйте пример 7 без условия синхронизации.

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

Задача 1

В нотариальной конторе работает 4 клерка. Они подготавливают документы в течении 30±5 мин. После чего относит подготовленный им документ для регистрации на подпись менеджеру, что занимает от 6 до 10 мин. Затем клерк начинает работу с новым клиентом по подготовки следующих документов. Промоделировать работу конторы за пятидневную рабочую неделю, с продолжительностью рабочего дня 8 ч.

Сколько документов будет подготовлено и какова эффективность работы клерков и менеджера?

Задача 2.

К условию задания 2 добавим стартовые изменения для начала работы каждого клерка:

— клерк 1 начинает работу над документом;

— клерк 2 освободится у менеджера через 3 мин;

— клерк 3 закончит подготовку документа через 10 мин;

— клерк 4 ожидает приема у менеджера.

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

Цель работы: научиться управлять транзактами при наложении на них различных условий.

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

Блок TEST определяет номер следующего блока для вошедшего в него транзакта в зависимости от того, выполняется требуемое условие или нет. Формат блока:

TEST <Х>  <А>, <B>, <С>

Блок управляет потоком транзактов, проверяя выполнение алгебраических отношений между значениями, заданными в полях А и В. Х – вспомогательный оператор, который представляет собой оператор отношения. C - имя блока, в который переходит транзакт при условии, что ответ на вопрос, подразумеваемый оператором отношения, отрицательный. Может использоваться следующий атрибуты операнда A и В:

P$<имя>, P<номер> - возвращает значение параметра активного требования;

Q<номер> – текущая длина очереди;

С1  – условное время моделирования.

Для моделирования процессов с ограниченной очередью или с ограниченной емкостью накопителя используют 3 блока.

Формат первого оператора:

<Имя хранилища> STORAGE <А>

Описание этого оператора должно находиться вне основного тела программы. Операнд А определяет объем накопителя с именем <Имя хранилища>.

Значение оператора отношений

Вопрос оператора отношения

G

А больше В?

GE

А больше или равно В?

E

А равно В?

NE

А не равно В?

LE

А меньше или равно В?

L

А меньше В?

Формат второго блока:

 ENTER <А>, <B>

Формат третьего блока:

 LEAVE <А>, <B>

Операнд А указывает на имя накопителя. Поле В указывает на число занимаемых/освобождаемых единиц накопителя, если это поле пусто, предполагается 1.

Блок GATE проверяет состояние различных устройств. Формат блока:

GATE <Х>  <А>, <B>

Операнд А содержит имя или номер объекта, для которого проводится проверка. Операнд В указывает на блок, куда отправится транзакт, если логический оператор поля Х имеет значение «ложь». В поле Х может находиться:

SNF – накопитель, указанный в поле А, заполнен;

SF - накопитель, указанный в поле А, не заполнен.

Пример 9. Поток заявок поступает в накопитель с допустимой емкостью, равной 3 единицам, равномерно от 4 до 6 мин. Если заявки после накопителя застают 1-й обслуживающий канал занятым (время обработки от 8 до 10 мин), то они поступают на обработку во 2-й канал (от 12 до 14 мин). Смоделировать обработку 100 заявок.

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

nak storage 3

generate 5,1

gate snf nak,kan2

enter nak

queue kan1

seize kan1

depart kan1

leave nak

advance 9,1

release kan1

transfer ,out

kan2 queue kanal2

seize kanal2

depart kanal2

advance 13,1

release kanal2

out terminate 1

start 100

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

При применении перечисленных блоков в файле стандартной статистики появится следующая информация:

Поле STORAGE определяет имя или номер данного блока. Поле САР определяет емкость блока, указанную оператором STORAGE. Поле REMAIN определяет количество единиц свободной емкости хранилища в конце периода моделирования. Поле MIN определяет минимальное количество используемой емкости хранилища. Поле MАХ определяет максимальное количество используемой емкости хранилища. Поле  ENTRIES определяет количество входов в хранилище за период моделирования. Поле AVL определяет состояние готовности хранилища в конце периода моделирования: 1- хранилище готово, 0 – не готово. Поле AVE.C определяет среднее значение занятой емкости. Поле UTIL определяет средний коэффициент использования всех устройств. Поле DELAY определяет количество транзактов, ожидающих возможности входа в блок ENTER.


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

Задача 1

Построить программу модели многоканальной системы массового обслуживания с очередью. В парикмахерской три мастера, очередь к ним общая. Клиенты приходят с интервалом (10 ± 5) минут, обслуживание парикмахером клиента занимает (25 ± 10) минут. Смоделировать работу парикмахерской в течение одного рабочего дня (8 часов).

Задача 2

СМО состоит из одного прибора и очереди перед ним. Обработка заявки в приборе занимает (20 ± 5) единиц времени. Очередь ограничена длиной 4. Заявки приходят каждые (15 ± 3) единиц времени и если в очереди нет свободных мест, то заявки покидают модель не обслуженными. Промоделировать систему в течение 1000 единиц времени.

Задача 3

Автомашины (транзакты) прибывают к ресторану с интервалом 10± 10 мин, для заказа на пункте двусторонней связи (сервер) тратится 3±1 мин, затем за 15±3 сек. автомашина переезжает к окну выдачи заказа (сервер) и за 3±2 мин получает упакованный заказ, после чего автомашина уезжает. Собрать статистику по загрузке ресторана в целом и окна выдачи при обслуживании 50 автомашин. Проделайте то же самое за сутки работы ресторана .

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

Цель работы: научиться определять собственные переменные и вводить в имитационную модель расчетные параметры.

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

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

Оператор INITIAL используется для задания сохраняемой величины. Формат оператора:

INITIAL Х<А>, <B>

Операнд А указывает на имя сохраняемой величины (если имя сохраняемой величины текстовое, то после Х ставится символ $, затем имя, если числовое, то оно указывается сразу за стандартным атрибутом Х). Операнд В указывает на начальное значение величины.

Пример 10. Смоделировать процесс обслуживания потока заявок с интервалом от 4 до 6 мин. Причем в течении первых 100 мин обслуживание осуществляет 2-й канал (от 12 до 14 мин), а по истечении 100 мин – 1-й канал (от 8 до 10 мин).

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

initial x1,100

generate 5,1

test le c1,x1,kan2

seize kan1

advance 9,1

release kan1

transfer ,out

kan2 seize kanal2

advance 13,1

release kanal2

out terminate 1

start 100

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

Если в модели требуются операции с матрицей, то вводится оператор описания матрицы – MATRIX. Формат:

<Имя матрицы> MATRIX , <B>, <С>…

В – максимальный индекс элементов в первой размерности;

С - максимальный индекс элементов во второй размерности и т.д. Матрица может быть шестиразмерной.

Если необходимо обратиться к элементу матрицы, то необходимо указать:

МХ$<Имя матрицы>(m,n).

В блоке MSAVEVALUE можно обращаться к первым двум размерностям.

При входе транзакта в блок SAVEVALUE значение сохраняемой величины можно изменить. Эта величина будет выведена в стандартном отчете о результатах моделирования. Формат блока:

SAVEVALUE <А>[+,-], <B>

Операнд А – номер или символьное имя сохраняемой величины. Операнд В – величина, используемая для модификации. Могут использоваться следующие атрибуты операнда В:

С1  – условное время моделирования;

Q1 – текущая длина очереди;

S$<имя>, S<номер> - текущая вместимость накопителей;

Q<имя> - длина очереди под названием<имя>;

QТ<имя> - среднее время пребывания транзакта в очереди под названием<имя>;

 QA<имя> - средняя длина очереди под названием<имя>;

 QМ<имя> - максимальная длина очереди под названием<имя>;

QС<имя> - общее число входов в очередь под названием<имя>;

QХ<имя> - среднее время пребывания транзакта в очереди под названием<имя>.

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

Фирма производит центробежные насосы, сборка которых осуществляется по заказу покупателей. Заказы поступают каждые 19±3 мин.

Когда прибывает заказ, делается две его копии. Оригинал используется для получения двигателя со склада и подготовки его для сборки, на что уходит 8 мин. Первый экземпляр копии заказа используется для заказа и адаптации насоса (10±2 мин). Второй экземпляр используется для начала изготовления плиты основания (15 мин). Когда насос и плита основания готовы, проводится пробная подгонка (5±1 мин).

Все три компонента собираются вместе (6±1 мин), когда они имеются в наличии. Затем установка разбирается, насос и двигатель подвергаются окраске. Время покраски двигателя 2±0.5 мин. Время покраски насоса - 1±0.5 мин. Плита основания гальванизируется 4 мин. После этого производится окончательная сборка. Время сборки составляет 8±1 мин.

Смоделируйте сборку 100 центробежных насосов. Все процессы подчиняются равномерному закону.

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

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

Цель работы: научиться получать графическую информацию имитируемой системы.

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

Оператор управления TABLE позволяет получить дополнительную, по сравнению со стандартным отчетом, статистическую информацию. Например, интересует текущее содержание памяти в различных репликах. Полученное значение математического ожидания может использоваться для выбора числа серверов в проектируемой системе. Этот оператор позволяет получить математическое ожидание (среднее значение), стандартное отклонение и относительные частоты попадания в заданный интервал. Формат TABLE имеет вид:

< label TABLE A,B,C,D,[E] >

label — не имеет значения по умолчанию, отсутствие ярлыка приводит к ошибке компиляции, определяет имя или номер таблицы.

А — не имеет значения по умолчанию, определяет вид операций с таблицей. Существует несколько видов возможных таблиц, задаваемых операндом А:

1. Операнд А определяется выражением, на основе которого определяется статистика, помещаемая в таблицу.

2. Операнд А определяется так же, как в случае 1, но впереди стоит знак “–”. В этом случае таблица называется дифференциальной, т. е. берется разница между текущим значением и предыдущим и результат помещается в таблицу, текущее значение сохраняется для последующих вычислений.

3. Операнд А имеет впереди символы IA (interarrival), что обозначает определение промежутков между последовательными входами. При этом определяется разность между текущим значением абсолютного времени и значением абсолютного времени в предыдущий момент, результат помещается в таблицу, текущее значение времени сохраняется для последующих вычислений.

4. Операнд А имеет впереди символы RT (arrival rate),что обозначает определение доли приходов (относительной частоты) в какой-то интервал. При этом варианте операндом Е оговаривается интервал времени, являющийся шагом таблицы. Этот вид используется для определения такой статистики как «приход в течении часа».

В — не имеет значения по умолчанию, определяет собой верхнее значение первого (нижнего) интервала частот.

С — не имеет значения по умолчанию, представляет собой ширину интервала и постоянен для всех интервалов, кроме первого и последнего.

D — не имеет значения по умолчанию, определяет число частотных интервалов таблицы.

Данный оператор описывается вне основного тела системы.

Оператор TABULATE используется для сбора дополнительной информации, которая не выводится в стандартном отчете. Структура таблицы задается оператором TABLE. Модельный файл может содержать несколько таблиц, которые описываются в отчете, и каждая содержит размер выборки, стандартное выборочное отклонение, относительные и накопленные частоты. Формат оператора имеет вид:

< TABULATE A,[B] >

A — не имеет значения по умолчанию, определяет имя или номер таблицы, в которую вносятся желаемые наблюдения, описание таблицы дается в модуле описания с помощью оператора TABLE.

В — по умолчанию равен 1, является не обязательным и служит в качестве весового коэффициента при создании взвешенных таблиц.

Пример 11: Моделирование работы переговорного пункта

Переговорный пункт имеет одно помещение, где единовременно могут обслуживаться три посетителя. Поток прихода посетителей равномерный. Интервал между прибытиями посетителей колеблется в пределах от 0.85 до 2.85 мин включительно. Время оплаты каждого переговора составляет 1.5±0.4 мин, а время разговора посетителей по телефону – 4.4±1.35 мин. Если все телефоны переговорного пункта заняты, то посетитель ожидает освобождения одного из них в течение 3.5±1.1 мин.

Промоделировать работу переговорного пункта в течении 8 часового рабочего дня.

В отчете появляются новые табличные данные для построения соответствующей гистограммы:

MEAN – среднее значение;

STD. DEV. – среднеквадратичное отклонение;

RANGE – область;

FREQUENCY – частота;

CUM.% - суммарный процент.

Таблица обозначений.

Временная дискрета: 1 мин.

Объект

Объект в системе

Транзакты

    Фрагмент 1 модели

    Фрагмент 2 модели

    Фрагмент 3 модели

Вместимость пункта и формирование таблицы

Приход посетителей

Транзакт управления

Очереди

    Ocher_kassir

Очередь к кассиру

Продолжение таблицы обозначений

Таблица

     Transit

Формирование таблицы с информацией об использовании посетителями переговорного пункта

Памяти

     Punkt

Вместимость переговорного пункта

Для вывода гистограммы необходимо:

  •  щелкните по пункту Window главного меню системы.
  •  щелкните по пункту Simulation Window выпадающего меню.
  •  щелкните по пункту Table Window всплывающего меню. Появится диалоговое окно Open Table Window. В раскрывающемся списке  Table щелкните по нужной гистограмме (рисунок 4).  

После нажатия OK, появится соответствующая гистограмма (рисунок 5).

Рисунок 5 – Окно гистограммы имитационной модели переговорного пункта

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

  •  щелкните по пункту Window главного меню системы.
  •  щелкните по пункту Simulation Window выпадающего меню.
  •  щелкните по пункту Plot Window всплывающего меню. Появится диалоговое окно Edit Plot Window, которое необходимо соответствующим образом заполнить (рисунок 6).  

Рисунок 6 – Диалоговое окно Edit Plot Window для имитационной модели

После заполнения щелкните по кнопкам Plot, Memorize, а затем – по кнопке ОК. Появится заготовка графика. После этого:

  •  щелкните по пункту Command главного меню системы.
  •  щелкните по пункту Start.
  •  введите в диалоговом окне Start Command число посетителей, например 100, и щелкните по кнопке ОК.  

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

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

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

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

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

Оператор  ASSIGN  изменяет атрибуты транзактов. Формат оператора  ASSIGN имеет вид:

< ASSIGN A,B,C,D >

A — не имеет значения по умолчанию, определяет имя или номер параметра, которому назначается значение. Если последний символ в операнде А + или –, то параметр уменьшается или увеличивается на значение, определяемое операндом В.

В — не имеет значения по умолчанию, представляет собой замещаемое значение, которое вычитается или прибавляется к значению операнда А. Если модифицируется параметр, представляемый числом с плавающей точкой, то операнд В тоже должен иметь такой вид.

С — не имеет значения по умолчанию, определяет имя или номер оцениваемой функции, значение операнда В умножается на значение функции после определения знака функции.

Рассмотрим несколько примеров.

1. ASSIGN 3+,5

2. ASSIGN 5,2.5,,PL

В первом примере производится прибавление к значению параметра 3 пяти единиц. Во втором примере задается значение параметру форматом «плавающая точка».

Оператор LOOP служит для организации циклов в процессе имитационного моделирования, формат его имеет вид:

< LOOP A,B>

А — не имеет значения по умолчанию и характеризует номер параметра транзакта.

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

При каждом вхождении транзакта в блок LOOP значение счетчика уменьшается на 1 и сравнивается с 0. Если оно больше 0, его адрес определяется операндом В, который задает петлю; если становится равным нулю, транзакт переходит к следующему блоку; если становится меньше 0, появляется ошибка исполнения.

Рассмотрим пример использования оператора (фрагмент программы).

ASSIGN 5,4

WAIT ADVANCE 15,3

LOOP 5,WAIT

Для транзакта, вошедшего в блок ASSIGN, значение 5-го параметра 4, внутри цикла этот параметр не меняется, следовательно, этот транзакт еще 3 раза возвратится к началу цикла — блоку WAIT.

Арифметические переменные делятся на переменные с фиксированной и с плавающей точками.  Переменные с фиксированной точкой обозначаются оператором VARIABLE, а с плавающей – FVARIABLE. Формат операторов:

<Имя> VARIABLE <А>

<Имя> FVARIABLE <А>

Операнд А отображает выражение, которое используется для вычисления значения переменной. Для обращения к переменным используется символ V. В выражениях используются следующие знаки:

+ сложение;

- вычитание;

# умножение;

/ деление…

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

Задача 1

Построить программу модели процесса прохождения деталей, поступающих через интервалы времени, распределенные равномерно в промежутке 7...11 единиц. Детали направляются к одному рабочему, обрабатывающему их со временем 8 ± 3 единицы, распределенным по равномерному закону. Прохождение деталей моделируется по трем интервалам, каждый на 480 единиц времени. После каждого интервала выдается вся статистика, затем вся информация стирается, кроме содержимого устройства и информации о нем.

Задача 2

Построить. программу модели процесса прохождения деталей, поступающих на склад, затем со склада на обработку к одному рабочему со временем 20 ± 12 единиц,, распределенным по закону равномерной плотности. Время обработки 19 ± 15 единиц распределено по равномерному закону. Определить коэффициенты занятости рабочего для двух моделей: первая — без отграничения мест на складе, вторая — с ограничением (два места). Во второй модели подсчитывается количество отказов.

Промоделировать прохождение 100 деталей в каждой модели.

Задача 3

Построить программу модели процесса прохождения 70 деталей, поступающих с интервалом времени 12 ± 2 единицы и обрабатываемых одним рабочим по пяти последовательно идущим друг за другом операциям, времена выполнения которых распределены в интервале 2 ± 1 единица времени. Распределение всех времени в указанных интервалах равномерно. В результате моделирования требуется определить коэффициент занятости рабочего.

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

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

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

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

Запись функций — задается в модуле задания FUNCTION формата:

< n FUNCTION A,B>

n — номер или имя функции,

А — операнд, указывающий на аргумент функции, обычно случайное число,

В — тип функции (Dm, Cm) — дискретная или непрерывная с числом точек табуляции m.

В процессе моделирования иногда приходится менять как дисциплину обслуживания, так и приоритет транзакта. Для этой цели используется оператор PRIORITY, формат которого имеет вид:

< PRIORITY A >

A — не имеет значения по умолчанию, определяет новое значение приоритета для транзакта. Транзакты удаляются при этом из системы и возвращаются обратно с новым приоритетом, становясь последними в список данного приоритета. Уровень приоритета в последней версии

Приведем пример использования оператора:

PRIORITY 5

В примере у транзакта переназначается приоритет на 5.

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

Темп прихода пациентов подчиняется распределению Пуассона, среднее время их появления равно 30 мин. Затем они подходят в регистрацию, 45 % из них в состоянии ожидать приема у врача, обозначьте их CW, а 55 % требуется немедленная помощь, их обозначим NIA.

Регистратор тратит какое-то время на заполнение карты больного и выяснение обстоятельств, время распределено по экспоненте со средним значением 10 мин.

В приемном покое принимают два доктора, пациенты NIA имеют больший приоритет по сравнению с CW. На осмотр пациентов NIA доктор тратит 45 мин (экспоненциально распределенных), 75 % осмотренных вынуждены сдавать анализы и ждать результата исследований, а 25 % уходят домой. После получения анализов (экспоненциальное распределение со средним 30 мин) пациенты NIA снова должны пройти к любому доктору, но уже имея более низкий приоритет по сравнению с пациентами CW, время вторичного ожидания распределено экспоненциально со средним 15 мин, после чего пациенты уходят. Пациенты CW проходят к доктору один раз, время их осмотра распределено по экспоненте со средним значением 30 мин, и они имеют приоритет меньший, чем у пациентов NIA, идущих на прием первый раз, но больший, чем у тех же пациентов, приходящих второй раз с результатами анализов.

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

Допущения, сделанные в модели.

Транзакты (пациенты) поступают с одного генератора с приоритетом 10, проходят через классификацию, а затем разделяются на два потока, у пациентов NIA приоритет возрастает до 15, а затем этот поток делится на два, идущих на сдачу анализов и уходящих домой, при этом у первых приоритет снижается до 5 и они вновь идут к доктору, после чего покидают систему. Пациенты CW не меняют своего приоритета за все время моделирования.

Таблица обозначений.

Временная дискрета: 1 мин.

Объект

Объект в системе

Транзакты

    Фрагмент 1 модели

    Фрагмент 2 модели

    Фрагмент 3 модели

    Фрагмент 4 модели

Приход пациентов на регистрацию

Пациенты

Пациенты

Транзакт управления

Функции

     NURSE

Регистратор

Очереди

    CWLINE

     NIALINE1

     NIALINE2

     NURSE

Очередь пациентов CW

Очередь пациентов NIA

Вторичная очередь пациентов NIA

Очередь к регистратору

Памяти

     DOCTORS

Доктора, ведущие прием

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

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

Цель работы: научиться назначать именам числовые значения.

Задачи: познакомиться с оператором 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.




1. Тема урока- правописание звонких и глухих согласных перед согласными
2. Мифологические конструкции в советской культуре и искусстве.html
3. Влияние права на культуру Великобритании
4. летию Москвы Мэр Москвы Столица нашей Родины Москва отмечает свое 850летие
5. Дианетику Л. Рона Хаббарда Дианетика искателям сфабрикованного счастья Эрих Фромм Челов
6. Культура Беларуси в XIX начале XX в
7. Миф и символ как семиотические категории.html
8. і І ми вже не раз писали про використання біодеградуючих пластмас у виробництві пляшок пакувальних пакетів
9. I. Завершение процедуры- 15
10. Традиционный свадебный обряд народов Карелии
11. і. Таким чином скасування кріпацтва в Західній Україні практично не полегшило становища селян
12. резиновый Если в дизайн жесткого сайта вставить картинку или текст без пробелов ширина которых будет бо
13. ТЕМА 16 люминесцентный метод исследования продуктов растительного и животного происхождения ТЕСТ 1
14. Бытие и сознание
15. Вам и не снилось Ангел ~ тссс
16. Тематичне оцінювання за темою Взаємодія тіл Мета уроку- оцінити знання уміння й навички учнів з вивченої
17. Коломенское является комплексным памятником истории и культуры России
18. Ярославский государственный университет им
19. то нехорошо зудело что лучше бы пораньше хотя изначально собиралась я к пол8 а то и к 8 я увидела что количе
20. Ультразвуковая терапия