Автор: Пользователь скрыл имя, 25 Марта 2013 в 22:27, курсовая работа
Служба заказа такси имеет 4 каналa дня одновременного приема заказов по телефону. Интервалы времени между попытками вызова такси распределены по закону Эрланга второго порядка со средним 170 секунд. Абонент затрачивает 20 секунд на набор номера. Время обработки заказа клиента по телефону составляет 2 минуты. Если он застает все каналы заказа занятыми или после соединения выясняет, что очередь на обслуживание превышает 2 заказа (в таком случае заказы не принимаются), то через 20 секунд он повторяет набор. После 9 попыток абонент прекращает набор
GPSS World был разработан,
чтобы полностью использовать
возможности вычислительной
GPSS World сочетает в себе функции дискретного и непрерывного моделирования. Возможность перехода из дискретной фазы моделирования в непрерывную фазу и обратно обеспечивает тесную связь с непрерывным моделированием. В непрерывной фазе могут быть установлены пороговые значения, управляющие созданием транзактов в дискретной фазе.
Версия GPSS World включает в себя массу нововведений, позволяю-щих проводить более эффективные исследования и сделать работу с систе-мой максимально простой и удобной для пользователя.
Кроме версии GPSS World доступна и свободно распространяемая версия GPSS World Student Version. Она предназначена для исследования поведения проектируемого устройства при различных условиях его эксплуатации, при различных значениях конструктивных параметров или для расчета определенных параметров его поведения. Полученные в результате значения можно сразу использовать для проведения статистических исследований.
Информацию, получаемую в результате выполнения экспериментов, возможно обобщать и представлять в графической форме.
При создании объекта моделирования GPSS World Student Version создает подробный отчет обнаруженных на этом этапе ошибок. Для каждой ошибки указывается ее положение в тексте (номер строки и столбца), описание ошибки и собственно сам текст ошибочной строки. Также пользователю всегда доступна подробная справка GPSS World Reference Manual, в которой описано практически все, что может понадобиться при создании моделей от общих концепций моделирования и описания параметров всех блоков GPSS до сообщений об ошибках и советов по увеличению производительности моделей.
Основными понятиями языка GPSS World Student Version являются транзакт, блок, оператор. Транзакт GPSS World Student Version - это динамический объект, под которым может подразумеваться клиент, требование, вызов или заявка на обслуживание прибором обслуживания. То есть основное назначение GPSS World Student Version - это моделирование систем массового обслуживания, хотя наличие дополнительных встроенных средств позволяет моделировать и некоторые другие системы (например, распределение ресурсов между потребителями). Транзакты в GPSS World Student Version могут создаваться (вводиться), уничтожаться (выводиться), задерживаться, размножаться, сливаться, накапливаться и т. д. Именно благодаря на-личию транзакта GPSS World Student Version обладает такой изящностью и простотой. Другим фундаментальным понятием GPSS является понятие "блок". Блок GPSS World Student Version представляет собой некоторый самостоятельный элемент моделируемой системы. Каждый блок реализует одну или несколько операций над транзактом, группой транзактов или параметрами транзактов, а совокупность блоков составляет моделирующую программу. Таким образом, GPSS World Student Version имеет блочную структуру и, вообще говоря, легко может быть приспособлен и для структурно-функционального моделирования не очень сложных систем. GPSS World Student Version достаточно легок в освоении, а наличие в нем функций, переменных, стандартных атрибутов, графики и статистических блоков существенно расширяет его возможности.
Таким образом, можно сделать вывод, что в качестве языка моделирования для решения поставленных задач и целей курсовой работы наиболее удобно использовать программу GPSS World Student Version (далее GPSS).
Блок диаграммами GPSS:
Описание программной реализации имитационной модели.
Proezd function RN1,D6 ;функция распределения расстояния
0.1,5/0.3,8/0.55,9/0.72,11/0.
EXPDIS function RN1,C24 ; функция задает пуассоновский поток
0,0/.100,.104/.200,.222/.300,.
.500,.690/.600,.915/.700,1.
.800,1.600/.840,1.830/.880,2.
.920,2.520/.940,2.810/.950,2.
.970,3.500/.980,3.900/.990,4.
.998,6.200/.999,7/1,8
INITIAL X$Pribil,0 ;переменная для хранения выручки от такси
INITIAL X$ChPribil,0 ; переменная хранит чистую прибыль
INITIAL X$VremyaMin,0 ; переменная хранит минимальное время выполнения заказа
INITIAL X$VremyaMax,0; переменная хранит максимальное время выполнения заказа
INITIAL X$Per,9 ; переменная для организации цикла
Operatori STORAGE 4 ;задаем емкость устройства Operatori
Taksi STORAGE 10 ; задаем емкость устройства Taksi
10 GENERATE ,,,1 ; генерируем звонки абонентов
20 RET ADVANCE 85,FN$EXPDIS ;
30 ADVANCE 85,FN$EXPDIS; звонки абонентов поступают по закону
40 SPLIT 1,RET; Эрланга второго порядка
50 Label1 ADVANCE 20; абонент набирает номер 20 сек
60 TEST G R$Operatori,0,Label4; проверка заняты ли операторы
70 ENTER Operatori; занимаем оператора
75 ADVANCE 120 ; время уходящее на обслуживание на клиента
80 TEST LE Q$OceredbTaksi,2,Label2; проверяем очередь заказов
90 ASSIGN 1,1
100 Label3 LEAVE Operatori; освобождаем оператора
110 TEST E P1,1,Label4; если очередь больше 2 то звоним заново
130 QUEUE OceredbTaksi,1; занимаем место в очереди заказов
140 MARK 2
150 ENTER Taksi; заказ уходит на выполнение
160 DEPART OceredbTaksi,1; освобождаем место в очереди заказов
170
ADVANCE (FN$Proezd#(60/Uniform(1,42,
180 ADVANCE 2100,900; таксист выполняет заказ клиента
190
SAVEVALUE Pribil+, (((Uniform(1,20,50)#60)/((60/
200 LEAVE Taksi; заказ выполнен
210 TEST NE X$VremyaMax,0,Label8
220 Label10 TEST NE X$VremyaMin,0,Label9
230 Label11 TEST LE MP2,X$VremyaMax,Label5; если время больше чем самое большее предыдущее сохраняем его.
240 TEST GE MP2,X$VremyaMin,Label6; если время меньше чем самое меньшее предыдущее сохраняем его.
250 Label7 TERMINATE
270 GENERATE 86400; моделируем сутки работы службы такси
280 SAVEVALUE ChPribil,(X$Pribil-(4+10)#
290 TERMINATE 1;заканчиваем моделирование
300 START 1
300 Label2 ASSIGN 1,0
310 TRANSFER ,Label3
320 Label4 ADVANCE 40 ; абонент ждет 40 секунд перед следующим звонком
330 TEST G X$Per,1,MPER
340 SAVEVALUE Per-,1
350 TRANSFER ,Label1
360 MPER TERMINATE
370 Label5 SAVEVALUE VremyaMax,MP2; сохраняем максимальное время
380 TRANSFER ,Label7
390 Label6 SAVEVALUE VremyaMin,MP2; сохраняем минимальное время
400 TRANSFER ,Label7
410 Label8 SAVEVALUE VremyaMax,MP2
420 TRANSFER ,Label10
430 Label9 SAVEVALUE VremyaMin,MP2
440 TRANSFER ,Label11
Говоря об адекватности модели, в первую очередь, мы подразумеваем эффективное функционирование линии (главный критерий анализа оценки).
Рассмотренный метод не претендует на абсолютную точность, но, тем не менее, позволяет примерно оценить соответствие модели реальной ситуации в цеху.
Метод заключается в сравнение временных показателей модели.
Метод будет применен при условии, что:
Количество телефонных оператор, в службе такси: 4 человека.
Количество машин, в службе такси: 10 машин.
Модель, как должно быть.
Модель, при прогоне.
При прогоне модели с заданными значениями получили что:
Показатели |
Модель, как должно быть |
Модель, при прогоне |
Время затрачиваемое операторами на прием заказа |
120 |
120 |
Время затрачиваемое для проезда к клиенту |
60/50±8*(5,8,9,11,12,20)*60 MIN= 310 MAX=1714 |
554 |
Время затрачиваемое для выполнения заказа клиента |
2100±900 |
1449 |
Временные показатели при
прогоне модели не выходят за рамки
временных показателей модели как
должно быть. Это говорит о том что
полученная модель с достаточной
точностью отображает реальную ситуацию
в рамках поставленной задачи.
Цель исследования – Найти оценку интервала времени выполнения заказа (время от момента заказа такси до момента доставки клиента на место).
Проведем прогон модели с параметрами:
Количество телефонных оператор, в службе такси: 4 человека.
Количество машин, в службе такси: 10 машин.
GPSS World Simulation Report - Taksi.357.1
Monday, January 17, 2011 13:51:49
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 86400.000 43 0 2
NAME VALUE
CHPRIBIL 10003.000
EXPDIS 10001.000
LABEL1 5.000
LABEL10 22.000
LABEL11 23.000
LABEL2 29.000
LABEL3 11.000
LABEL4 31.000
LABEL5 36.000
LABEL6 38.000
LABEL7 25.000
LABEL8 40.000
LABEL9 42.000
MPER 35.000
OCEREDBTAKSI 10009.000
OPERATORI 10007.000
PER 10006.000
PRIBIL 10002.000
PROEZD 10000.000
RET
TAKSI 10008.000
VREMYAMAX 10005.000
VREMYAMIN 10004.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1 0 0
RET 2 ADVANCE 498 0 0
3 ADVANCE 498 1 0
4 SPLIT 497 0 0
LABEL1 5 ADVANCE 505 0 0
6 TEST 505 0 0
7 ENTER 504 0 0
8 ADVANCE 504 0 0
9 TEST 504 0 0
10 ASSIGN 312 0 0
LABEL3 11 LEAVE 504 0 0
12 TEST 504 0 0
13 QUEUE 312 0 0
14 MARK 312 3 0
15 ENTER 309 0 0
16 DEPART 309 0 0
17 ADVANCE 309 3 0
18 ADVANCE 306 7 0
19 SAVEVALUE 299 0 0
20 LEAVE 299 0 0
21 TEST 299 0 0
LABEL10 22 TEST 299 0 0
LABEL11 23 TEST 299 0 0
24 TEST 293 0 0
LABEL7 25 TERMINATE 299 0 0
26 GENERATE 1 0 0
27 SAVEVALUE 1 0 0
28 TERMINATE 1 0 0
LABEL2 29 ASSIGN 192 0 0
30 TRANSFER 192 0 0
LABEL4 31 ADVANCE 193 0 0
32 TEST 193 0 0
33 SAVEVALUE 8 0 0
34 TRANSFER 8 0 0
MPER 35 TERMINATE 185 0 0
LABEL5 36 SAVEVALUE 6 0 0
37 TRANSFER 6 0 0
LABEL6 38 SAVEVALUE 2 0 0
39 TRANSFER 2 0 0
LABEL8 40 SAVEVALUE 1 0 0
41 TRANSFER 1 0 0
LABEL9 42 SAVEVALUE 1 0 0
43 TRANSFER 1 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCEREDBTAKSI 3 3 312 40 1.976 547.329 627.819 0