Моделирование работы кафе
КУРСОВАЯ РАБОТА
по дисциплине «Имитационное моделирование экономических процессов»
на тему: «Моделирование работы кафе»
Вариант 2
Содержание
1. Введение………………………………………………………… |
3 |
2. Постановка задачи………………………………… |
6 |
3. Метод построения модели…………………………..…….….…………… |
7 |
4. Таблица определений…………………………. |
9 |
5. Блок-схема…..…………………………………………… |
10 |
6. Листинг…………………………………………………..…. |
12 |
7. Выходные данные………………….………………… |
13 |
8. Выводы…………………………………………………....… |
19 |
Список литературы………………….…………… |
20 |
1. ВВЕДЕНИЕ
GPSS (General Purpose System Simulation) является языком для имитационного моделирования. Любая система может быть описана при помощи определенного количества стандартных элементов - объектов. Логические правила, лежащие в основе системы, могут быть сведены к набору простых операций. Следовательно, язык моделирования должен состоять из абстрактных объектов и из операций.
Наилучшие работы в области исследования операций основаны на совместном применении аналитических и статистических моделей. Аналитическая модель дает возможность в общих чертах разобраться в явлении, наметить как бы контур основных закономерностей. Любые уточнения могут быть получены с помощью статистических моделей.
Имитационное моделирование применяется к процессам, в ход которых может время от времени вмешиваться человеческая воля. Человек, руководящий операцией, может в зависимости от сложившейся обстановки, принимать те или другие решения, подобно тому, как шахматист, глядя на доску, выбирает свой очередной ход. Затем приводится в действие математическая модель, которая показывает, какое ожидается изменение обстановки в ответ на это решение и к каким последствиям оно приведет спустя некоторое время. Следующее «текущее решение» принимается уже с учетом реальной новой обстановки и т.д. В результате многократного повторения такой процедуры руководитель как бы «набирает опыт», учится на своих и чужих ошибках и постепенно выучивается принимать правильные решения – если не оптимальные, то почти оптимальные.
Процессы функционирования различных систем и сетей связи могут быть представлены той или иной совокупностью систем массового обслуживания (СМО) - стохастических, динамических, дискретно-непрерывных математических моделей. Исследование характеристик таких моделей может проводиться либо аналитическими методами, либо путем имитационного моделирования.
Имитационная модель
Специализированные языки
Одним из наиболее эффективных
и распространенных языков моделирования
сложных дискретных систем является
в настоящее время язык GPSS.
Он может быть с наибольшим успехом
использован для моделирования
систем, формализуемых в виде
систем массового обслуживания. В
качестве объектов языка используются
аналоги таких стандартных
Этот язык предназначен для изучения поведения систем массового обслуживания, в которых происходит конкуренция людей или заданий на обработку, за ограниченные ресурсы. И в этой связи, люди или задания выстраиваются в очереди, претендуя на обслуживание.
Простейшим примером системы массового обслуживания является система с одним устройством и очередью.
При
моделировании систем массового
обслуживания (СМО), ключевым понятием
является событие. В системе
с одним обслуживающим
GPSS - General Purpose Simulation System (общецелевая система моделирования). Эта система воспринимает текст модели и позволяет пользователю производить эксперименты с моделью. Модель на GРSS составляется из блоков, входящих в язык, и в этом виде поступает на моделирование.
Данная курсовая работа предполагает
изучение технологических этапов имитационного
моделирования: изучение проблемы, постановки
задачи моделирования, изучение метода
построения модели, создание таблицы
определений и блок-схемы
2. ПОСТАНОВКА ЗАДАЧИ
В небольшом кафе работают две официантки (А и В), обслуживая по 6 двухместных столиков. Официантка A пользуется большей популярностью, чем официантка В. Приходя в кафе, клиент садится за столик официантки B только в том случае, если все места за столиками, которые обслуживает официантка А, заняты. Клиенты приходят в кафе через 1 ± 0,5 минуты и, если не застают свободных мест, становятся в очередь.
Когда клиент садится на освободившееся место, он ждет, пока к нему подойдет официантка и примет у него заказ. Время приема заказа у официантки А занимает 45 ± 15 секунд, у официантки В соответственно 50 ± 15 секунды. Приняв заказ у клиента, официантки сразу же его выполняют. Время выполнения заказа обеими официантками составляет 4 ± 1 мин. После получения заказа клиент на протяжении 18 ± 3 минуты обедает и уходит из кафе. Официантки обслуживают клиентов по принципу FIFO и в каждый момент времени могут обслуживать не больше одного клиента.
Определить время ожидания в очереди и время, которое клиент проводит за столиком кафе. Промоделируйте работу кафе на протяжении 10 ч.
Индивидуальное задание. Определить средний промежуток времени между прибытиями клиентов в кафе, при котором в кафе всегда будут свободные места.
3. МЕТОД ПОСТРОЕНИЯ МОДЕЛИ
Для моделирования на GPSS надо определить условия работы моделируемой системы, а также, какие элементы GPSS необходимо использовать для удовлетворения условий модели.
В данном случае есть два вида ограничивающих условий. Во-первых, ограничено число мест в кафе, а именно: имеется 12 двухместных столиков, т.е. общее количество мест в кафе равно 24. Во-вторых, существует фиксированное число официанток, которые обслуживают данные столики. В кафе работают две официантки (А и В), каждая из которых обслуживает по 6 двухместных столиков соответственно.
Для моделирования столиков будем использовать понятие «память» («многоканальное устройство»). В модели будут присутствовать 2 многоканальных устройства – группы столиков, обслуживаемых официантками А и В соответственно. Клиентов кафе будем отождествлять с транзактами, которые циркулируют в системе.
Приходя в кафе (GENERATE), клиент ищет свободное место (TEST). Найдя официантку, у которой есть свободное место, (с помощью блока SELECT), клиент занимает место за столиком (ENTER). Официантка принимает заказ у клиента (время приема заказа зависит от официантки и определяется с помощью функции (PRIEM) и выполняет его (ADVANCE). Далее клиент обедает (ADVANCE), освобождает столик (LEAVE), направляется к выходу (TRANSFER) и уходит из кафе (TERMINATE). В том случае, если свободных мест нет, клиент уходит из кафе.
Программа, моделирующая процесс работы кафе, будет состоять из следующих сегментов: «работа кафе» и «сегмент таймера». В первом сегменте будут описаны исходные данные модели. Также первый сегмент программы предназначен для определения числа клиентов кафе, времени нахождения за столиком, а также для подсчета клиентов, которые не застали свободный столик. Второй сегмент позволяет определить момент окончания моделирования: работу кафе необходимо промоделировать в течение 10 часов.
4. ТАБЛИЦА ОПРЕДЕЛЕНИЙ
Единица времени – 1 секунда
Элементы GPSS |
Интерпретация |
Транзакты | |
в 1-м сегменте модели |
Клиенты кафе; Моделирует приход клиентов в кафе |
во 2-м сегменте модели |
Транзакт-таймер; Моделирует время работы кафе |
Памяти (многоканальные устройства) | |
OfiA |
Группа столиков, обслуживаемых официанткой А |
OfiB |
Группа столиков, обслуживаемых официанткой B |
Переменные пользователя | |
OfiA |
Номер официантки А |
OfiB |
Номер официантки В |
Переменные | |
ZANJATO |
Возможность того, что все столики в кафе заняты |
Var1 |
Время приема заказа официанткой А |
Var2 |
Время приема заказа официанткой В |
Функция | |
PRIEM |
Определяет время приема заказа у клиента |
Обозначения | |
Ofiz |
Параметр транзакта, в который записывается номер официантки, у которой есть свободные места за столиками |
Таблица | |
Za_stolom |
Таблица распределения времени |
5. БЛОК-СХЕМА
Блок-схемы получили широкое применение при описании систем, но форма представления обычно зависит и от самой системы, и от специалиста, описывающего эту систему. Поэтому, при построении блок-схем, следует соблюдать определенные условия, являющиеся основой создания программы на языке моделирования. В GPSS WORLD имеется определенное количество типов блоков для задания объектов и операций над ними. Каждому блоку соответствует графическое изображение на блок-схеме. Стрелки между блоками указывают маршруты потоков сообщений. Далее, для того, чтобы применить язык моделирования GPSS WORLD, каждый блок блок-схемы заменяется соответствующим оператором GPSS WORLD.
1. СЕГМЕНТ МОДЕЛИ - РАБОТА КАФЕ
2. СЕГМЕНТ МОДЕЛИ – СЕГМЕНТ ТАЙМЕРА
6. ЛИСТИНГ
******************************
**Моделирование работы времени небольшого кафе**
************Единица времени - секунда***********
******************************
OfiA EQU 1 ;Создание пользовательской переменной
OfiB EQU 2 ;Создание пользовательской переменной
OfiA STORAGE 12
OfiB STORAGE 12
ZANJATO BVARIABLE ((SF1'E'1)'
Var1 VARIABLE RN1@31+30 ;Перем
Var2 VARIABLE RN2@31+35 ;Перем
PRIEM FUNCTION P$Ofiz,M2 ;Пара
1,V$Var1/2,V$Var2 ;если - 1, то время приема заказа рассч. с помощью перем. Var1, иначе - с Var2
Za_stolom TABLE MP1,1100,60,
;транзактом участка модели(помеченного блоком MARK)
******************************
******************************
GENERATE 60,30 ;Прибытие клиентов
QUEUE Kafe;
TEST NE BV$ZANJATO,1 ;Проверка занятости столиков
;если выполняется (есть хотя бы одно место), то выполняется след.строка,
SELECT SNF Ofiz,OfiA,OfiB ;Выбор между OfiA и OfiB устройства, где есть свободные места,
;и заносим соотв. значения в параметр транзакта Ofiz
ENTER P$Ofiz ;Занять столик официантки,начало обслуж.
DEPART Kafe
MARK 1 ;отмечаем время начала обслуж.клиента
ADVANCE FN$PRIEM ;прием заказа
ADVANCE 240,60 ;выполнение заказа
ADVANCE 1080,180 ;клиент обедает
TABULATE Za_stolom ;запись в таблицу время пребывания клиента за столиком
LEAVE P$Ofiz ;клиент освобождает место в кафе, соответственно освобождается официантка
TERMINATE
***Сегмент таймера***
GENERATE 36000 ;кафе работает на протяжении 10 часов - 36000 секунд
TERMINATE 1
START 1
7. ВЫХОДНЫЕ ДАННЫЕ
GPSS World Simulation Report - курсовик.12.1
Sunday, December 23, 2012 16:13:57
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 36000.000 15 0 2
NAME VALUE
KAFE 10007.000
OFIA
OFIB
OFIZ 10008.000
PRIEM 10005.000
VAR1 10003.000
VAR2 10004.000
ZANJATO 10002.000
ZA_STOLOM 10006.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 593 0 0
2 QUEUE 593 0 0
3 TEST 593 0 0
4 SELECT 593 0 0
5 ENTER 593 0 0
6 DEPART 593 0 0
7 MARK 593 0 0
8 ADVANCE 593 1 0
9 ADVANCE 592 4 0
10 ADVANCE 588 18 0
11 TABULATE 570 0 0
12 LEAVE 570 0 0
13 TERMINATE 570 0 0
14 GENERATE 1 0 0
15 TERMINATE 1 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
KAFE 5 0 593 470 0.212 12.872 62.059 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
OFIA 12 0 0 12 309 1 11.512 0.959 0 0
OFIB 12 1 0 12 284 1 10.525 0.877 0 0
TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%
ZA_STOLOM 1363.943
107.921
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
573 0 36007.857 573 10 11 1 34720.831
595 0 36010.309 595 0 1
590 0 36016.347 590 9 10 1 35731.674
594 0 36027.257 594 8 9 1 35978.257
591 0 36061.496 591 9 10 1 35814.315
574 0 36089.502 574 10 11 1 34760.888
572 0 36115.242 572 10 11 1 34641.273
592 0 36158.622 592 9 10 1 35853.922
593 0 36224.045 593 9 10 1 35905.045
575 0 36243.406 575 10 11 1 34827.475
576 0 36409.485 576 10 11 1 34882.274
577 0 36433.826 577 10 11 1 34960.963
578 0 36460.330 578 10 11 1 34995.560
579 0 36491.101 579 10 11 1 35046.624
580 0 36527.714 580 10 11 1 35115.716
585 0 36535.728 585 10 11 1 35401.312
581 0 36554.036 581 10 11 1 35177.162
583 0 36626.069 583 10 11 1 35298.759
582 0 36694.600 582 10 11 1 35289.728
586 0 36749.359 586 10 11 1 35488.185
584 0 36799.367 584 10 11 1 35358.480
587 0 36962.404 587 10 11 1 35539.884
588 0 36984.343 588 10 11 1 35609.728
589 0 37197.368 589 10 11 1 35697.058
596 0 72000.000 596 0 14
Первый блок:
START TIME - начальное время моделирования (0);
END TIME - конечное время моделирования (36000);
BLOCKS - число блоков в модели (15);
FACILITIES - число устройств в модели (0);
STORAGES - число памятей в модели (количество накопителей) (2);
Второй блок:
Второй блок содержит общие сведения об именах модели (NAME) и числовых значениях, назначенных именам (VALUE).
NAME VALUE
KAFE 10007.000
OFIA
OFIB
OFIZ 10008.000
PRIEM 10005.000
VAR1 10003.000
VAR2 10004.000
ZANJATO 10002.000
ZA_STOLOM 10006.000
Далее в отчете представлены блоки:
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 593 0 0
2 QUEUE 593 0 0
3 TEST 593 0 0
4 SELECT 593 0 0
5 ENTER 593 0 0
6 DEPART 593 0 0
7 MARK 593 0 0
8 ADVANCE 593 1 0
9 ADVANCE 592 4 0
10 ADVANCE 588 18 0
11 TABULATE 570 0 0
12 LEAVE 570 0 0
13 TERMINATE 570 0 0
14 GENERATE 1 0 0
15 TERMINATE 1 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
KAFE 5 0 593 470 0.212 12.872 62.059 0
Отсюда мы видим:
LABEL - метку или имя данного блока (если оно задано);
LOC - номер позиции данного блока в модели;
BLOCK TYPE - тип блока;
ENTRY COUNT - число транзактов, входивших в данный блок;
CURRENT COUNT - число транзактов в блоке при завершении моделирования;
RETRY - число транзактов, ожидающих специального условия, зависящего от состояния данного блока.
QUEUE – имя или номер очереди;
MAX – максимальное количество транзактов, находившихся в очереди;
CONT. – текущее содержимое очереди;
ENTRY – общее количество входов транзактов в очередь;
ENTRY(0) – общее количество входов в очередь с нулевым временем пребывания в очереди;
AVE.COUNT. – средняя длинна очереди;
AVE.TIME – среднее время пребывания в очереди одного транзакта;
AVE.(-0) – среднее время пребывания в очереди одного транзакта, без учета «нулевых» входов;
RETRY – число транзактов, ожидающих специального условия, зависящего от состояния очереди.
Далее в отчете следует:
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
OFIA 12 0 0 12 309 1 11.512 0.959 0 0
OFIB 12 1 0 12 284 1 10.525 0.877 0 0
STORAGE – имя или номер памяти;
CAP. – емкость памяти;
REM. – число свободных единиц памяти на конец моделирования;
MIN. – минимальное количество единиц памяти, занимавшихся в процессе моделирования;
MAX. – максимальное количество единиц памяти, занимавшихся в процессе моделирования;
ENTRIES – количество транзактов, входивших в память;
AVL. – состояние памяти в конце моделирования (0 – недоступно, 1-доступно);
AVE.C. – среднее значение занятой емкости за время моделирования;
UTIL. – коэффициент использования памяти;
RETRY – число транзактов, ожидающих специального условия, зависящего от состояния данной памяти;
DELAY – количество транзактов, претендующих на занятие памяти на момент завершения моделирования.
Далее идет блок:
TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%
ZA_STOLOM 1363.943
107.921
TABLE – имя или номер таблицы;
MEAN – оценка математического ожидания (среднее арифметическое) аргумента таблицы;
STD.DEV. – оценка среднеквадратического отклонения аргумента таблицы;
RANGE – нижняя и верхняя граница интервалов таблицы;
RETRY – число транзактов, ожидающих специального условия, зависящего от состояния данной таблицы;
FREQUENCY – частота попадания транзактов в данный интервал;
CUM.% - накопленная частота, выраженная в % от общей суммы.
В конце отчета представлен список будущих событий (FEC):
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
573 0 36007.857 573 10 11 1 34720.831
595 0 36010.309 595 0 1
590 0 36016.347 590 9 10 1 35731.674
594 0 36027.257 594 8 9 1 35978.257
591 0 36061.496 591 9 10 1 35814.315
574 0 36089.502 574 10 11 1 34760.888
572 0 36115.242 572 10 11 1 34641.273
592 0 36158.622 592 9 10 1 35853.922
593 0 36224.045 593 9 10 1 35905.045
575 0 36243.406 575 10 11 1 34827.475

- Моделирование работы конечного распознавателя для последовательностей путей поиска файлов, разделенных запятой, и заканчивающихся точко
- Моделирование работы машинного зала пользователей ЭВМ
- Моделирование работы отделения банка
- Моделирование работы порта
- Моделирование работы предприятия быстрого обслуживания
- Моделирование работы предприятия быстрого обслуживания
- Моделирование работы сборочного цеха
- Моделирование прчески
- Моделирование работы АЗС
- Моделирование работы библиографической системы
- Моделирование работы вычислительного центра по равномерному распределению
- Моделирование работы диспетчерского пункта
- Моделирование работы железнодорожной сортировочной горки
- Моделирование работы карьера