Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.225.55.151] |
|
Сообщ.
#1
,
|
|
|
Есть задача.
По расписанию автобус должен приходить на остановку каждые 30 минут, однако возможное опоздание составляет 1,5 +- 1,5 минут. В автобусе в момент прибытия может находиться от 20 до 50 пассажиров. Приход людей подчиняется закону Пуассона с интенсивностью 12 человек каждые 30 минут. После того как от 3 до 7 человек выйдут (равномерное распределение), в автобус входит столько людей, сколько возможно. Те, кто не смог уехать, уходят и не возвращаются. Для высадки пассажиров требуется 4 +- 3 секунды, для посадки - 8 +- 4 секунды. Посадка выполняется после высадки и по правилу FIFO. Если пассажир приходит в момент прибытия автобуса (временной узел), то он может сесть в австобус. Смоделировать процесс. Вот программа GPSS. Она выдает ошибки. Помогите исправить. xpdis function off function rn1,c2 0,3/1,8 onbus function rn1,c2 0,20/1,51 inqueqe qtable line,300,300,7 mad table x$mad,0,1,10 *segment1 generate 150,fn$xpdis,,,1 queue line gate lr bus depart line test x$nowon,50,mad logic r bus geton advance 8,4 savevalue nowon+,1 logic s bus terminate mad savevalue mad+,1 terminate *segment2 generate 1800 advance 90,90 savevalue nowon,fn$onbus assign 1,fn$off next advance 4,3 savevalue nowon-,1 loop 1,next logic s bus test e q$line,0 test e w$geton,0 tabulate mad savevalue mad,0 logic r bus terminate 1 |
Сообщ.
#2
,
|
|
|
ошибки:
xpdis function - xpdis function RN200,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38 .8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2 .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 off function rn1,c2 - off1 function rn1,c2 assign 1,fn$off - assign 1,fn$off1 test x$nowon,50,mad - пропущен условный оператор X (TEST X A,B,C) generate 1800 advance 90,90 - вместо двух строк одна - generate 1890,90 другое решение GENERATE ,,,1 met4 ADVANCE 1890,90 SAVEVALUE CountP,(Uniform(1,20,51)\1) SAVEVALUE ConditionBS,1 ASSIGN OutPassenger,(Uniform(1,3,8)\1) met1 ADVANCE 4,3 ASSIGN OutPassenger-,1 SAVEVALUE CountP-,1 TEST E P$OutPassenger,0,met1 SAVEVALUE ConditionBS,2 TEST E x$ConditionBS,3 ADVANCE 0.000001 SAVEVALUE ConditionBS,0 SPLIT 1,met4 TERMINATE 1 GENERATE (Poisson(1,5/2#60)) QUEUE 1 SEIZE BusDoor DEPART 1 TEST E x$ConditionBS,3,met2 RELEASE BusDoor TERMINATE met2 TEST E x$ConditionBS,2 ADVANCE 8,4 SAVEVALUE CountP+,1 TEST E ((x$CountP=50) | (Q1=0)),1,met3 SAVEVALUE ConditionBS,3 met3 RELEASE BusDoor TERMINATE start 25 |
Сообщ.
#3
,
|
|
|
Здравствуйте, задача похожая, только еще условия с терпеливчми\нетерпеливыми добавлено. с ними разобраться не могу уже неделю вторую(( пробую трансфером их в конце разделить, но я наверн синтаксис неправильно понимаю.
Помогите пжлста. По расписанию автобус должен приходить на остановку каждые 30 мин. Ориентировочно точность прибытия можно оценить величиной +-7 мин. Приход пассажиров на автобусную остановку описывается моделью простейшего потока с интенсивностью 24 человека в час. Автобус вместимостью 50 человек в момент своего прибытия везет 35+-15 пассажиров. Выходят на остановке 5+-2 пассажира, а входят в автобус столько ожидающих, сколько возможно. Для высадки пассажира требуется 4+-3 сек, а для посадки 8+-4 сек. Ожидающие посадки не входят в автобус до тех пор, по не выйдут все желающие, посадка осуществляется в порядке очереди. Пассажиры, которым не удалось сесть в автобус, делятся на две категории: • «нетерпеливые» (уходят с остановки и больше не возвращаются); • «терпеливые» (ждут следующего автобуса). Любой пассажир, приходящий на остановку с вероятностью 0,5, относится к «терпеливым». Но после каждой неудачной попытки сесть в автобус вероятность его «терпения» уменьшается вдвое. Соответственно увеличивается вероятность его превращения в «нетерпеливого» и ухода с остановки при невозможности сесть в следующий автобус. Построить модель, имитирующую события на автобусной остановке, и определить распределение числа необслуженных пассажиров на один автобус. Моделирование провести для 100 прибытий автобусов. XPDIS FUNCTION RN200,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38 .8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2 .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 ONBUS FUNCTION RN1,D2 0,20/1,51 OUT FUNCTION RN1,D2 0,3/1,8 INQUE QTABLE LINE,300,300,7 MAD TABLE X$MAD,0,1,10 START 100 MET1 GENERATE 150,FN$XPDIS ;пришел человек на остановку QUEUE LINE ;встал в очередь GATE LS BUS ;ждет открытие дверей автобуса DEPART LINE ;выходит из очереди TEST L X$NOWON,50,ISMAD ;если нет места, модифицируем счетчик отказов - покидаем очередь LOGIC R BUS ;место есть - закрываем автобус перед следующим GETON ADVANCE 8,4 ;войти в автобус SAVEVALUE NOWON+,1 ;посчитать людей в автобусе LOGIC S BUS ;окрываем автобус перед следующим TRANSFER .5,MET1,MET2 MET2 TERMINATE ;удаляем пассажира из модели ISMAD SAVEVALUE MAD+,1 ;подсчитываем необслуженных TERMINATE GENERATE 1800,420 ;прибытие автобуса SAVEVALUE NOWON,FN$ONBUS ;определяем число пассажиров в автобусе ASSIGN 1,FN$OUT ;определяем число выходящих пассажиров NEXT ADVANCE 4,3 ;выход пассажиров SAVEVALUE NOWON-,1 ;подсчет вышедших LOOP 1,NEXT LOGIC S BUS ;открываем автобус для входящих TEST E Q$LINE,0 ;ждем пассажиров из очереди TEST E W$GETON,0 ;проверяем последнего пассажира, что он зашел TABULATE MAD SAVEVALUE MAD,0 ;фиксируем число необслуженных LOGIC R BUS TERMINATE 1 |
Сообщ.
#4
,
|
|
|
это курсач,диплом?
тема интересна, Цитата можно "реплицировать" на множество маршрутов, ост.пунктов, пассажиров,.. приделить ГИС Google Maps API (и альтернативы) другое решение |
Сообщ.
#5
,
|
|
|
эх, всегда мечтал узнать, в каких единицах измеряется "нетерпеливость"
|
Сообщ.
#6
,
|
|
|
2Eugen
это просто задача на зачет По теме, задачу переделал, так работает Правильно? [CODE]XPDIS FUNCTION RN200,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38 .8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2 .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8 ONBUS FUNCTION RN1,D2 0,20/1,51 OUT FUNCTION RN1,D2 0,3/1,8 MAD TABLE X$MAD,0,1,10 START 100 GENERATE 150,FN$XPDIS ;пришел человек на остановку MET1 QUEUE LINE ;встал в очередь GATE LS BUS ;ждет открытие дверей автобуса DEPART LINE ;выходит из очереди TEST L X$NOWON,50,ISMAD ;если нет места, модифицируем счетчик отказов - покидаем очередь LOGIC R BUS ;место есть - закрываем автобус перед следующим GETON ADVANCE 8,4 ;войти в автобус SAVEVALUE NOWON+,1 ;посчитать людей в автобусе LOGIC S BUS ;окрываем автобус перед следующим TERMINATE ;удаляем пассажира из модели ISMAD TRANSFER .5,MET2,MET1 MET2 SAVEVALUE MAD+,1 ;подсчитываем необслуженных TERMINATE GENERATE 1800,420 ;прибытие автобуса SAVEVALUE NOWON,FN$ONBUS ;определяем число пассажиров в автобусе ASSIGN 1,FN$OUT ;определяем число выходящих пассажиров NEXT ADVANCE 4,3 ;выход пассажиров SAVEVALUE NOWON-,1 ;подсчет вышедших LOOP 1,NEXT LOGIC S BUS ;открываем автобус для входящих TEST E Q$LINE,0 ;ждем пассажиров из очереди TEST E W$GETON,0 ;проверяем последнего пассажира, что он зашел TABULATE MAD SAVEVALUE MAD,0 ;фиксируем число необслуженных LOGIC R BUS TERMINATE 1 [\CODE] |
Сообщ.
#7
,
|
|
|
здрасте, тоже потребовался второй вариант задачи. вроде работает, генерит пассажиров и автобусы что то внутри происходит, но совершенно не могу понять отчет...
может ктонибудь объяснить что да как? и ваще, правильно ли оно работает? GPSS World Simulation Report - 13.2.1 Thursday, December 10, 2009 19:20:10 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 182316.098 26 0 0 NAME VALUE BUS 10005.000 GETON 7.000 ISMAD 11.000 LINE 10004.000 MAD 10003.000 MET1 2.000 MET2 12.000 NEXT 17.000 NOWON 10006.000 ONBUS 10001.000 OUT 10002.000 XPDIS 10000.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 1183 0 0 MET1 2 QUEUE 1628 0 0 3 GATE 1628 0 0 4 DEPART 1628 0 0 5 TEST 1628 0 0 6 LOGIC 686 0 0 GETON 7 ADVANCE 686 0 0 8 SAVEVALUE 686 0 0 9 LOGIC 686 0 0 10 TERMINATE 686 0 0 ISMAD 11 TRANSFER 942 0 0 MET2 12 SAVEVALUE 497 0 0 13 TERMINATE 497 0 0 14 GENERATE 100 0 0 15 SAVEVALUE 100 0 0 16 ASSIGN 100 0 0 NEXT 17 ADVANCE 800 0 0 18 SAVEVALUE 800 0 0 19 LOOP 800 0 0 20 LOGIC 100 0 0 21 TEST 100 0 0 22 TEST 100 0 0 23 TABULATE 100 0 0 24 SAVEVALUE 100 0 0 25 LOGIC 100 0 0 26 TERMINATE 100 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY LINE 21 0 1628 445 5.828 652.682 898.196 0 TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.% MAD 4.970 3.421 0 _ - 0.000 11 11.00 0.000 - 1.000 6 17.00 1.000 - 2.000 7 24.00 2.000 - 3.000 15 39.00 3.000 - 4.000 10 49.00 4.000 - 5.000 7 56.00 5.000 - 6.000 14 70.00 6.000 - 7.000 6 76.00 7.000 - 8.000 10 86.00 8.000 - _ 14 100.00 LOGICSWITCH VALUE RETRY BUS 0 0 SAVEVALUE RETRY VALUE MAD 0 0 NOWON 0 50.000 FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE 1284 0 182318.560 1284 0 1 1285 0 184119.235 1285 0 14 |
Сообщ.
#8
,
|
|
|
Люди, подскажите пожалуйста как символизируется оператор многоканального устройства?
|
Сообщ.
#9
,
|
|
|