Моделирование работы кафе

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

КУРСОВАЯ РАБОТА

Моделирование работы кафе

Введение

GPSS (General Purpose System Simulation) является языком для имитационного моделирования. Любая система может быть описана при помощи определенного количества стандартных элементов — объектов. Логические правила, лежащие в основе системы, могут быть сведены к набору простых операций. Следовательно, язык моделирования должен состоять из абстрактных объектов и из операций.

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

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

Процессы функционирования различных систем и сетей связи могут быть представлены той или иной совокупностью систем массового обслуживания (СМО) — стохастических, динамических, дискретно-непрерывных математических моделей. Исследование характеристик таких моделей может проводиться либо аналитическими методами, либо путем имитационного моделирования.

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

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

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

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

Простейшим примером системы массового обслуживания является система с одним устройством и очередью.

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

GPSS — General Purpose Simulation System (общецелевая система моделирования). Эта система воспринимает текст модели и позволяет пользователю производить эксперименты с моделью. Модель на GРSS составляется из блоков, входящих в язык, и в этом виде поступает на моделирование.

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

1. Постановка задачи

В небольшом кафе работают две официантки (А и В), обслуживая по 6 двухместных столиков. Официантка A пользуется большей популярностью, чем официантка В. Приходя в кафе, клиент садится за столик официантки B только в том случае, если все места за столиками, которые обслуживает официантка А, заняты. Клиенты приходят в кафе через 1 ± 0,5 минуты и, если не застают свободных мест, становятся в очередь.

Когда клиент садится на освободившееся место, он ждет, пока к нему подойдет официантка и примет у него заказ. Время приема заказа у официантки, А занимает 45 ± 15 секунд, у официантки В соответственно 50 ± 15 секунды. Приняв заказ у клиента, официантки сразу же его выполняют. Время выполнения заказа обеими официантками составляет 4 ± 1 мин. После получения заказа клиент на протяжении 18 ± 3 минуты обедает и уходит из кафе. Официантки обслуживают клиентов по принципу FIFO и в каждый момент времени могут обслуживать не больше одного клиента.

Определить время ожидания в очереди и время, которое клиент проводит за столиком кафе. Промоделируйте работу кафе на протяжении 10 ч.

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

2. Метод построения модели

Для моделирования на GPSS надо определить условия работы моделируемой системы, а также, какие элементы GPSS необходимо использовать для удовлетворения условий модели.

В данном случае есть два вида ограничивающих условий. Во-первых, ограничено число мест в кафе, а именно: имеется 12 двухместных столиков, т. е. общее количество мест в кафе равно 24. Во-вторых, существует фиксированное число официанток, которые обслуживают данные столики. В кафе работают две официантки (А и В), каждая из которых обслуживает по 6 двухместных столиков соответственно.

Для моделирования столиков будем использовать понятие «память» («многоканальное устройство»). В модели будут присутствовать 2 многоканальных устройства — группы столиков, обслуживаемых официантками, А и В соответственно. Клиентов кафе будем отождествлять с транзактами, которые циркулируют в системе.

Приходя в кафе (GENERATE), клиент ищет свободное место (TEST). Найдя официантку, у которой есть свободное место, (с помощью блока SELECT), клиент занимает место за столиком (ENTER). Официантка принимает заказ у клиента (время приема заказа зависит от официантки и определяется с помощью функции (PRIEM) и выполняет его (ADVANCE). Далее клиент обедает (ADVANCE), освобождает столик (LEAVE), направляется к выходу (TRANSFER) и уходит из кафе (TERMINATE). В том случае, если свободных мест нет, клиент уходит из кафе.

Программа, моделирующая процесс работы кафе, будет состоять из следующих сегментов: «работа кафе» и «сегмент таймера». В первом сегменте будут описаны исходные данные модели. Также первый сегмент программы предназначен для определения числа клиентов кафе, времени нахождения за столиком, а также для подсчета клиентов, которые не застали свободный столик. Второй сегмент позволяет определить момент окончания моделирования: работу кафе необходимо промоделировать в течение 10 часов.

3. Таблица определений

Единица времени — 1 секунда

Элементы GPSS

Интерпретация

Транзакты

в 1-м сегменте модели

Клиенты кафе;

Моделирует приход клиентов в кафе

во 2-м сегменте модели

Транзакт-таймер;

Моделирует время работы кафе

Памяти (многоканальные устройства)

OfiA

Группа столиков, обслуживаемых официанткой А

OfiB

Группа столиков, обслуживаемых официанткой B

Переменные пользователя

OfiA

Номер официантки А

OfiB

Номер официантки В

Переменные

ZANJATO

Возможность того, что все столики в кафе заняты

Var1

Время приема заказа официанткой А

Var2

Время приема заказа официанткой В

Функция

PRIEM

Определяет время приема заказа у клиента

Обозначения

Ofiz

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

Таблица

Za_stolom

Таблица распределения времени пребывания клиентов за столиками в кафе

4. Блок-схема

Блок-схемы получили широкое применение при описании систем, но форма представления обычно зависит и от самой системы, и от специалиста, описывающего эту систему. Поэтому, при построении блок-схем, следует соблюдать определенные условия, являющиеся основой создания программы на языке моделирования. В GPSS WORLD имеется определенное количество типов блоков для задания объектов и операций над ними. Каждому блоку соответствует графическое изображение на блок-схеме. Стрелки между блоками указывают маршруты потоков сообщений. Далее, для того, чтобы применить язык моделирования GPSS WORLD, каждый блок блок-схемы заменяется соответствующим оператором GPSS WORLD.

5. Листинг

имитационный моделирование листинг

************************************************

**Моделирование работы времени небольшого кафе**

************Единица времени — секунда***********

************************************************

OfiA EQU 1; Создание пользовательской переменной

OfiB EQU 2; Создание пользовательской переменной

OfiA STORAGE 12

OfiB STORAGE 12

ZANJATO BVARIABLE ((SF1'E'1)'AND'(SF2'E'1))

Var1 VARIABLE RN1@31+30; Переменная, отвечающая за время приема заказа официанткой A

Var2 VARIABLE RN2@31+35; Переменная, отвечающая за время приема заказа официанткой B

PRIEM FUNCTION P$Ofiz, M2; Параметр P$Ofiz может принимать 2 значения:

1, V$Var½, V$Var2; если — 1, то время приема заказа рассч. с помощью перем. Var1, иначе — с Var2

Za_stolom TABLE MP1,1100,60,10; Табл. Za_stolom, в кот. вносятся сведения СЧА MP1 — транзитное время прохождения

; транзактом участка модели (помеченного блоком 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 36 000; кафе работает на протяжении 10 часов — 36 000 секунд

TERMINATE 1

START 1

6. Выходные данные

GPSS World Simulation Report — курсовик. 12. 1

Sunday, December 23, 2012 16: 13:57

START TIME END TIME BLOCKS FACILITIES STORAGES

0. 000 36 000. 000 15 0 2

NAME VALUE

KAFE 10 007. 000

OFIA 1. 000

OFIB 2. 000

OFIZ 10 008. 000

PRIEM 10 005. 000

VAR1 10 003. 000

VAR2 10 004. 000

ZANJATO 10 002. 000

ZA_STOLOM 10 006. 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 0

1100. 000 — 1200. 000 28 4. 91

1200. 000 — 1300. 000 157 32. 46

1300. 000 — _ 385 100. 00

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

573 0 36 007. 857 573 10 11 1 34 720. 831

OFIZ 1. 000

595 0 36 010. 309 595 0 1

590 0 36 016. 347 590 9 10 1 35 731. 674

OFIZ 2. 000

594 0 36 027. 257 594 8 9 1 35 978. 257

OFIZ 1. 000

591 0 36 061. 496 591 9 10 1 35 814. 315

OFIZ 2. 000

574 0 36 089. 502 574 10 11 1 34 760. 888

OFIZ 1. 000

572 0 36 115. 242 572 10 11 1 34 641. 273

OFIZ 2. 000

592 0 36 158. 622 592 9 10 1 35 853. 922

OFIZ 2. 000

593 0 36 224. 045 593 9 10 1 35 905. 045

OFIZ 1. 000

575 0 36 243. 406 575 10 11 1 34 827. 475

OFIZ 2. 000

576 0 36 409. 485 576 10 11 1 34 882. 274

OFIZ 1. 000

577 0 36 433. 826 577 10 11 1 34 960. 963

OFIZ 2. 000

578 0 36 460. 330 578 10 11 1 34 995. 560

OFIZ 2. 000

579 0 36 491. 101 579 10 11 1 35 046. 624

OFIZ 1. 000

580 0 36 527. 714 580 10 11 1 35 115. 716

OFIZ 1. 000

585 0 36 535. 728 585 10 11 1 35 401. 312

OFIZ 1. 000

581 0 36 554. 036 581 10 11 1 35 177. 162

OFIZ 2. 000

583 0 36 626. 069 583 10 11 1 35 298. 759

OFIZ 2. 000

582 0 36 694. 600 582 10 11 1 35 289. 728

OFIZ 1. 000

586 0 36 749. 359 586 10 11 1 35 488. 185

OFIZ 1. 000

584 0 36 799. 367 584 10 11 1 35 358. 480

OFIZ 2. 000

587 0 36 962. 404 587 10 11 1 35 539. 884

OFIZ 1. 000

588 0 36 984. 343 588 10 11 1 35 609. 728

OFIZ 1. 000

589 0 37 197. 368 589 10 11 1 35 697. 058

OFIZ 2. 000

596 0 72 000. 000 596 0 14

Первый блок:

START TIME — начальное время моделирования (0);

END TIME — конечное время моделирования (36 000);

BLOCKS — число блоков в модели (15);

FACILITIES — число устройств в модели (0);

STORAGES — число памятей в модели (количество накопителей) (2);

Второй блок:

Второй блок содержит общие сведения об именах модели (NAME) и числовых значениях, назначенных именам (VALUE).

NAME VALUE

KAFE 10 007. 000

OFIA 1. 000

OFIB 2. 000

OFIZ 10 008. 000

PRIEM 10 005. 000

VAR1 10 003. 000

VAR2 10 004. 000

ZANJATO 10 002. 000

ZA_STOLOM 10 006. 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 0

1100. 000 — 1200. 000 28 4. 91

1200. 000 — 1300. 000 157 32. 46

1300. 000 — _ 385 100. 00

TABLE — имя или номер таблицы;

MEAN — оценка математического ожидания (среднее арифметическое) аргумента таблицы;

STD. DEV. — оценка среднеквадратического отклонения аргумента таблицы;

RANGE — нижняя и верхняя граница интервалов таблицы;

RETRY — число транзактов, ожидающих специального условия, зависящего от состояния данной таблицы;

FREQUENCY — частота попадания транзактов в данный интервал;

CUM.% - накопленная частота, выраженная в % от общей суммы.

В конце отчета представлен список будущих событий (FEC):

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

573 0 36 007. 857 573 10 11 1 34 720. 831

OFIZ 1. 000

595 0 36 010. 309 595 0 1

590 0 36 016. 347 590 9 10 1 35 731. 674

OFIZ 2. 000

594 0 36 027. 257 594 8 9 1 35 978. 257

OFIZ 1. 000

591 0 36 061. 496 591 9 10 1 35 814. 315

OFIZ 2. 000

574 0 36 089. 502 574 10 11 1 34 760. 888

OFIZ 1. 000

572 0 36 115. 242 572 10 11 1 34 641. 273

OFIZ 2. 000

592 0 36 158. 622 592 9 10 1 35 853. 922

OFIZ 2. 000

593 0 36 224. 045 593 9 10 1 35 905. 045

OFIZ 1. 000

575 0 36 243. 406 575 10 11 1 34 827. 475

OFIZ 2. 000

576 0 36 409. 485 576 10 11 1 34 882. 274

OFIZ 1. 000

577 0 36 433. 826 577 10 11 1 34 960. 963

OFIZ 2. 000

578 0 36 460. 330 578 10 11 1 34 995. 560

OFIZ 2. 000

579 0 36 491. 101 579 10 11 1 35 046. 624

OFIZ 1. 000

580 0 36 527. 714 580 10 11 1 35 115. 716

OFIZ 1. 000

585 0 36 535. 728 585 10 11 1 35 401. 312

OFIZ 1. 000

581 0 36 554. 036 581 10 11 1 35 177. 162

OFIZ 2. 000

583 0 36 626. 069 583 10 11 1 35 298. 759

OFIZ 2. 000

582 0 36 694. 600 582 10 11 1 35 289. 728

OFIZ 1. 000

586 0 36 749. 359 586 10 11 1 35 488. 185

OFIZ 1. 000

584 0 36 799. 367 584 10 11 1 35 358. 480

OFIZ 2. 000

587 0 36 962. 404 587 10 11 1 35 539. 884

OFIZ 1. 000

588 0 36 984. 343 588 10 11 1 35 609. 728

OFIZ 1. 000

589 0 37 197. 368 589 10 11 1 35 697. 058

OFIZ 2. 000

596 0 72 000. 000 596 0 14

В этом блоке заключается следующая информация о модели:

XN — номер каждого транзакта, находящегося в FEC;

PRI — приоритет транзакта (в данном случае все транзакты имеют приоритет равный 0);

BDT — значение абсолютного модельного времени, когда планируется вывести транзакт из FEC;

ASSEM — номер семейства данного транзакта;

CURRENT — номер блока, в котором находится транзакт в конце моделирования;

NEXT — номер следующего блока для транзакта;

PARAMETR — имя или номер параметра транзакта;

VALUE — значение параметра.

Выводы

В ходе выполнения курсовой работы были получены основные навыки решения задач по автоматизации процессов в среде имитационного моделирования GPSS WORLD, что включало в себя изучение проблемы, постановку задачи моделирования, изучение метода построения модели, создание таблицы определений и блок-схемы модели, написание листинга и получение выходных данных.

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

Список литературы

1. Мысютин А. П. Имитационное моделирование экономических процессов: лабораторный практикум. — Брянск: БГТУ, 2007. — 76 с.

2. Королев А. Г. Моделирование систем на языке GPSS WORLD. Практический подход в примерах и задачах: Учебное пособие. — Северодонецк, 2006.

3. Методические указания по использованию средств имитационного моделирования систем и сетей связи для слушателей ФПКП/ Л. А. Воробейчиков, В. Н. Шакин, С.Е. Шибанов/МИС. — М., 1990.

ПоказатьСвернуть
Заполнить форму текущей работой