Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.200.66] |
|
Сообщ.
#1
,
|
|
|
Вопщем таг)
задача: Рассмотрим библиотеку без открытого доступа. В такой библиотеке любой желающий получить книгу должен представить библиотекарю, работающему у стола выдачи, листок запроса. После этого библиотекарь идет в книгохранилище, ищет там книгу и возвращается с ней к столу. Затем происходит процедура выдачи, после чего посетитель уходит с книгой. Если обслуживания ожидают несколько человек, то библиотекарь часто экономит время, необходимое для хождения от стола выдачи до хранилища, забирая листки запроса сразу у нескольких читателей. Поскольку число книг, которое библиотекарь может нести одновременно, ограниченно, то и число листков, забираемых библиотекарем одновременно, будет ограниченно. Построить GPSS - модель для имитации процедуры выдачи книг в библиотеке при следующих условиях. 1.Лица, желающие получить книги, приходят к столу по закону Пуассона со средней интенсивностью 30 человек в час. 2. Каждый хочет получить ровно одну книгу. Более того, требуемая книга всегда имеется. 3. Число библиотекарей, работающих у стола выдачи, должно быть переменным. 4. Как только библиотекарь освобождается, он может взять листки запроса не более чем чем у четырех человек одновременно (если такое число людей ожидает обслуживания). 5. В модели приняты следующие временные характеристики. а). Время, затрачиваемое на передачу листков запроса, несущественно. б). Время, необходимое на прохождения в один конец от стола выдачи до хранилища равно 1±0,5 мин. в). Время, необходимое на поиск одной, двух, трех или четырех книг, распределено по нормальному закону со средним соответственно 3, 6, 9 и 12 мин и стандартным отклонением, равным 20% от среднего. г). После возвращения библиотекаря из хранилища время, требуемое на завершение процедуры выдачи, составляет 2 ±1 мин на человека. 6. Листки запросов берут в порядке поступления. По возвращении библиотекаря из хранилища завершение процедуры выдачи осуществляется по этому же принципу. 7. Если свободны два или более библиотекарей и прибывает посетитель, то его обслуживает тот, кто был свободен дольше других. 8. Если свободны два или более библиотекарей и обслуживания ожидают два или более посетителей, то библиотекари не делят работу поровну между собой. Вместо этого, один библиотекарь берет столько листков, сколько сможет (но не более четырех); затем, если остаются еще посетители с листками, то следующий библиотекарь также берет столько листков, сколько сможет и т.д. В модели следует определить распределение случайных величин «время, проведенное каждым читателем у стола выдачи» и «число листков, забираемых библиотекарем». Необходимо найти также нагрузку библиотекарей. Получить требуемую информацию для случаев трех, четырех и пяти библиотекарей, работающих у стола выдачи. Для каждого случая продолжать моделирование до тех пор, пока не будут полностью обслужены 100 человек. То что есть: ; GPSS/PC Program file SCHR6B 05-27-1984 11:09:46 10 * Adapted from "Simulation Using GPSS", by Thomas J. Schriber 100 * LIBRARY STUDY 110 * LOC OPERATION A,B,C,D,E,F,G COMMENTS 115 SIMULATE 125 * EQUIVALENCE DENINITION(S) 135 SLIP EQU 10 145 * FUNCTION DEFINITION(S) 155 SNORM FUNCTION RN1,C25 ;Standard normal distribution func 0,-5/.00003,-4/.00135,-3/.00621,-2.5/.02275,-2 .06681,-1.5/.11507,-1.2/.15866,-1/.21186,-.8/.27425,-.6 .34458,-.4/.42074,-.2/.5,0/.57926,.2/.65542,.4 .72575,.6/.78814,.8/.84134,1/.88493,1.2/.93319,1.5 .97725,2/.99379,2.5/.99865,3/.99997,4/1,5 185 XPDIS FUNCTION RN1,C24 ;Exponential Distribution Function 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 195 * STORAGE CAPACITY DEFINITION(S) 205 BUSY STORAGE 3 ;Set storage capacity for 3-clerk 215 * TABLE DEFINITION(S) 225 DELAY TABLE M1,360,60,26 ;Time spent at checkout dest 230 SLIPS TABLE X$COUNT,1,1,5 ;Number of slips picked up 240 * VARIABLE DEFINITION(S) 250 DOUBL BVARIABLE X$COUNT'E'4+W$WAIT'E'0 255 GNORM FVARIABLE (FN$SNORM/5+1)#180#P2 265 * MODEL SEGMENT 1 270 * 275 GENERATE 120,FN$XPDIS,,,1 ;People arrive at checkout desk 280 WAIT ADVANCE ;Dummy advance block 285 GATE LS SLIP ;Wait until clerk has 290 * opened 'slip-pickup' gate 295 ASSIGN 1,X$CLERK ;Set P1 = clerk I.D. no. 300 SAVEVALUE COUNT+,1 ;Update count of slips clerk now h 305 TEST E BV$DOUBL,1,BYPAS ;Is this clerk done picking up 310 * slips? If not, bypass the next 315 * block 320 LOGIC R SLIP ;Yes, close the 'slip-pickup' gate 325 BYPAS GATE LS P1 ;Wait until clerk has opened 330 * 'checkout-finished' gate 335 LOGIC R P1 ;Close 'checkout-finished' gate 340 TABULATE DELAY ;Record time spent at checkout des 345 TERMINATE 1 ;Leave the checkout desk 350 * 355 * MODEL SEGMENT 2 360 * 365 BLOKA GENERATE ,,,3 ;Provide 3 clerks 370 ASSIGN 1,N$BLOKA ;Set P1 = clerk I.D. no. 375 BLOKB TEST G W$WAIT,0 ;Anyone waiting for slip-pickup? 380 ENTER BUSY ;Yes, enter busy status 385 SAVEVALUE COUNT,0 ;Zero out 'slips picked up' counte 390 SAVEVALUE CLERK,P1 ;Communicate clerk I.D. no. to 395 * people about to be served 400 LOGIC S SLIP ;Open slip-pickup gate 405 BUFFER ;Restart scan to let people throug 410 * the just-opened gate 415 ASSIGN 2,X$COUNT ;Set P2 = no. of slips picked up 420 TABULATE SLIPS ;Record no. of slips picked up 425 ADVANCE 60,30 ;Travel into the stacks 430 ADVANCE V$GNORM ;Locate the books 435 ADVANCE 60,30 ;Return from the stacks 440 BLOKC ADVANCE 120,60 ;Finish checking out next person 445 LOGIC S P1 ;Open 'checkout-finished' gate 450 BUFFER ;Restart scan to let this next 455 * person through the just-opened gate 460 LOOP 2,BLOKC ;Loop back to finish checking out 465 * next person (if any) 470 LEAVE BUSY ;Otherwise, clerk leaves busy stat 475 TRANSFER ,BLOKB ;Go start next service cycle естессно это чудо в студенческой версии не фацает - пишет вот это: 12/18/07 19:29:41 Model Translation Begun. 12/18/07 19:29:41 Line 23, Col 25. Invalid SNA Entity Specifier. 12/18/07 19:29:41 230 SLIPS TABLE X$COUNT,1,1,5 ;Number of slips picked up 12/18/07 19:29:41 Line 25, Col 23. Invalid SNA Entity Specifier. 12/18/07 19:29:41 250 DOUBL BVARIABLE X$COUNT'E'4+W$WAIT'E'0 12/18/07 19:29:41 Line 34, Col 24. GPSS Verb cannot be used as operator or operand. Operand A. 12/18/07 19:29:41 300 SAVEVALUE COUNT+,1 ;Update count of slips clerk now h 12/18/07 19:29:41 Line 51, Col 24. GPSS Verb cannot be used as operator or operand. Operand A. 12/18/07 19:29:41 385 SAVEVALUE COUNT,0 ;Zero out 'slips picked up' counte 12/18/07 19:29:41 Line 57, Col 27. Invalid SNA Entity Specifier. 12/18/07 19:29:41 415 ASSIGN 2,X$COUNT ;Set P2 = no. of slips picked up 12/18/07 19:29:41 **** Model Translation Aborted **** Кто может, помогите подогнать под студенческую... пожалуйста Добавлено а забыл)) прога взята из примеров моделей на GPSSe, так что думаю там все правильно должно быть... |
Сообщ.
#2
,
|
|
|
В gpss есть такой блок COUNT. Поэтому он не фацает. Назови переменную подругому - COUNT1
коммерческая от чудодейственой студенческой версии отличается размером программируемых моделей - 149блоков. |
Сообщ.
#3
,
|
|
|
Спасибо! Запустилось)) буду сдаватся
|
Сообщ.
#4
,
|
|
|
Система передачи данных обеспечивает передачу пакетов дан¬ных из пункта А в пункт C через транзитный пункт В. В пункт А паке¬ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c максимальной вместительностью 25 пакетов и c равной вероятно¬стью передаются по одной из двух линий: AB1 – за 20 мс; AB2 – за 20 ± 5 мс. В пункте В пакеты снова буферизируются в накопителе c максимальной вместительностью 20 пакетов и дальше передаются по линии BC1 за 20 ± 3 мс и по линии BC2 за 25 мс. Причем пакеты, ко¬торые передавались по AB1, поступают в BC1, а те, которые передавались по AB2, – в BC2. При достижении предельного значения коли¬чества пакетов в накопителе (максимальной вместительности) пакет, который пытается попасть в этот накопитель, уничтожается.
Промоделировать работу системы на протяжении 1 мин. Оценить вероятность уничтожения пакетов. Помогите пожалуйста! Завтра сдавать, времени нет =(((((((((( Могу деньги на сотовый вам закинуть. Добавлено Immol у тебя блок-схема есть на твою задачу? если есть, не мог бы ты дать мне её =(( ваще попадалаво в универе. Добавлено Immol mixfix@pochta.ru |
Сообщ.
#5
,
|
|
|
Система передачи данных обеспечивает передачу пакетов дан¬ных из пункта А в пункт C через транзитный пункт В. В пункт А паке¬ты поступают через 10± 5 мс. Здесь они сохраняются в накопителе c максимальной вместительностью 25 пакетов и c равной вероятно¬стью передаются по одной из двух линий: AB1 – за 20 мс; AB2 – за 20 ± 5 мс. В пункте В пакеты снова буферизируются в накопителе c максимальной вместительностью 20 пакетов и дальше передаются по линии BC1 за 20 ± 3 мс и по линии BC2 за 25 мс. Причем пакеты, ко¬торые передавались по AB1, поступают в BC1, а те, которые передавались по AB2, – в BC2. При достижении предельного значения коли¬чества пакетов в накопителе (максимальной вместительности) пакет, который пытается попасть в этот накопитель, уничтожается. Промоделировать работу системы на протяжении 1 мин. Оценить вероятность уничтожения пакетов. ;simulate initial x$kill,0 ; объявление переменной, значение 0 generate 10,5 ; создание транзакций 10+-5 test l q$ochAB,25,mKill ; проверка количества очереди если больше 25 то на выход queue ochAB ; создание очереди seize mess1 ; вход в оду advance 10 ; задержка транзактов в очереди depart ochAB ; выход из очереди release mess1 ; освобождение оду transfer .5,mAB1,mAB2 ; распределение транзактов на 2 пути по 50% mAB1 advance 20 ; путь AB1 задержка 20 мс assign 1,0 ; задание первому параметру значение 0 transfer ,mPunB ; передача транзактов в пункт B mAB2 advance 20,5 ; путь AB2 задержка 20+-5 мс assign 1,1 ; задание первому параметру значение 1 transfer ,mPunB ; передача транзактов в пункт B mPunB test l q$ochBC,20,mKill ; проверка количества очереди если больше 20 то на выход queue ochBC ; создание очереди seize mess2 ; вход в оду advance 10 ; задержка транзактов в очереди depart ochBC ; выход из очереди release mess2 ; освобождение оду test e p1,0,mBC2 ; проверка если значение параметра равно 1 значит транзакт пришел из AB2 отправляем в BC2 mBC1 Advance 20,3 ; путь BC1 задержка 20+-3 мс transfer ,mEnd ; передача транзактов на выход mBC2 advance 25 ; путь BC2 задержка 25 мс transfer ,mEnd ; передача транзактов на выход mKill savevalue kill+,1 ; увеличение переменной на 1 mEnd terminate ; удаление транзактов generate 60000 terminate 1 start 1 эта задача если кому надо. |
Сообщ.
#6
,
|
|
|
Сообщ.
#7
,
|
|
|
Immol, а у вас нет комментариев к вашей программе на русском языке.
Добавлено ImmolImmol Immol, а у вас нет комментариев к вашей программе на русском языке. А то не могу понять программы. |