Файл: Основные задания к самостоятельным работам в системе gpss.docx
Добавлен: 09.11.2023
Просмотров: 80
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
| 100000 | 200000 | 300000 | 400000 | 500000 | 600000 | 700000 |
| 0,348 | 0,348 | 0,362 | 0,356 | 0,356 | 0,352 | 0,356 |
| 0,217 | 0,215 | 0,207 | 0,209 | 0,209 | 0,205 | 0,202 |
| 0,434 | 0,437 | 0,431 | 0,435 | 0,435 | 0,442 | 0,442 |
Как видим, с ростом продолжительности моделирования погрешность реализации разветвлений уменьшается.
ЗАДАНИЕ 3.2. Построение модели с разветвлением потока на 5 направлений.
Вариант 3.2.1. Нарисовать схему СМО, содержащую одноканальное устройство (ОКУ), на вход которого поступает 5 потоков заявок, образующих соответствующие неограниченные очереди заявок, различающихся значением первого параметра. На выходе ОКУ образуется поток заявок, который надо преобразовать в 5 потоков, в каждом из которых содержатся транзакты с одинаковыми значениями первого параметра. Дальнейшее перемещение потоков – по вашему усмотрению. Интенсивности входных потоков и обслуживания заявок задать самостоятельно, но выполнять условие - коэффициент загрузки ОКУ должен принимать значение не выше 0.9. В отчёте представить и обсудить результаты моделирования.
Схема СМО:
Программа:
SIMULATE
GENERATE (Exponential (1,0,10)) ;1-й поток
ASSIGN 1,1 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (2,0,15)) ;2-й поток
ASSIGN 1,2 ;номер потока в 1-ом параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (3,0,20)) ;3-й поток
ASSIGN 1,3 ;номер потока в 3-ем параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (4,0,25)) ;4-й поток
ASSIGN 1,4 ;номер потока в 3-ем параметре
TRANSFER ,obsl ;переход на метку с обслуживанием
GENERATE (Exponential (5,0,30)) ;5-й поток
ASSIGN 1,5 ;номер потока в 3-ем параметре
obsl QUEUE P1 ;стали в очередь
SEIZE OKU1 ;заняли прибор
DEPART P1 ;ушли из очереди
ADVANCE (Exponential (6,0,3)) ;обслуживание
RELEASE OKU1 ;закончили обслуживание
obsl1 QUEUE (P1+10) ;стали в очередь
SEIZE (P1+10);заняли прибор
DEPART (P1+10);ушли из очереди
ADVANCE (Exponential (7,0,(UNIFORM(8,4#P1,6#P1)))) ;обслуживание
RELEASE (P1+10);закончили обслуживание
TERMINATE
GENERATE 100000
TERMINATE 1
START 1
Файл REPORT:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100000.000 27 6 0
NAME VALUE
OBSL 15.000
OBSL1 20.000
OKU1 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 9879 0 0
2 ASSIGN 9879 0 0
3 TRANSFER 9879 0 0
4 GENERATE 6525 0 0
5 ASSIGN 6525 0 0
6 TRANSFER 6525 0 0
7 GENERATE 4906 0 0
8 ASSIGN 4906 0 0
9 TRANSFER 4906 0 0
10 GENERATE 3846 0 0
11 ASSIGN 3846 0 0
12 TRANSFER 3846 0 0
13 GENERATE 3325 0 0
14 ASSIGN 3325 0 0
OBSL 15 QUEUE 28481 0 0
16 SEIZE 28481 0 0
17 DEPART 28481 0 0
18 ADVANCE 28481 1 0
19 RELEASE 28480 0 0
OBSL1 20 QUEUE 28480 7 0
21 SEIZE 28473 0 0
22 DEPART 28473 0 0
23 ADVANCE 28473 2 0
24 RELEASE 28471 0 0
25 TERMINATE 28471 0 0
26 GENERATE 1 0 0
27 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
11 9878 0.492 4.982 1 0 0 0 0 0
12 6525 0.668 10.238 1 0 0 0 0 0
13 4903 0.717 14.620 1 28465 0 0 0 3
14 3846 0.760 19.768 1 0 0 0 0 0
15 3321 0.832 25.056 1 28426 0 0 0 4
OKU1 28481 0.857 3.009 1 28485 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
1 18 0 9879 1373 1.855 18.774 21.804 0
2 16 0 6525 912 1.282 19.640 22.832 0
3 13 0 4906 728 0.932 18.991 22.300 0
4 11 0 3846 562 0.730 18.977 22.225 0
5 7 0 3325 509 0.616 18.527 21.876 0
11 10 0 9878 4987 0.490 4.962 10.022 0
12 16 0 6525 2131 1.279 19.600 29.106 0
13 18 3 4906 1377 1.620 33.024 45.910 0
14 19 0 3846 910 2.181 56.699 74.272 0
15 28 4 3325 557 4.115 123.745 148.646 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
28485 0 100001.558 28485 18 19 1 1.000
28487 0 100002.929 28487 0 1
28486 0 100004.795 28486 0 4
28465 0 100006.666 28465 23 24 1 3.000
28426 0 100016.720 28426 23 24 1 5.000
28481 0 100022.420 28481 0 7
28482 0 100024.354 28482 0 10
28472 0 100032.728 28472 0 13
28488 0 200000.000 28488 0 26
В данной модели мы вносим номер потока в параметр активного транзакта, и в последствии в зависимости от значения этого параметра транзакта направляется в необходимую очередь и обслуживается также на приборе обслуживания в соответствии со значением параметра (на второй фазе обработки). Как видим из файла REPORT, разделение на различные очереди на второй фазе обработки отвечает тому числу заявок, которые поступили в систему в каждом из потоков.
Вариант 3.2.2. Нарисовать схему СМО, содержащую одноканальное устройство (ОКУ), на вход которого поступает поток заявок, загружающий ОКУ на 80%, а после обслуживания в ОКУ этот поток делится на 5 направлений с заданными вероятностями соответственно 0.1, 0.2, 0.3, 0.15 и 0.25. С вновь образованными потоками происходит следующее: Первый поток поступает на вход ОКУ, образуя свою очередь заявок с приоритетом на 1 меньше, чем заявки первоначального входного потока. Остальные 4 потока распределяются на различные схемы, построенные по вашему усмотрению. Запустить программу и по результатам экспериментов с моделью определить погрешность в оценке распределения первоначального потока с заданными вероятностями.
Схема СМО:
Программа:
MKU12 EQU 12 ;объявляем номер МКУ
MKU12 STORAGE 2 ;и число каналов в нем
MKU13 EQU 13
MKU13 STORAGE 2
MKU14 EQU 14
MKU14 STORAGE 2
MKU15 EQU 15
MKU15 STORAGE 2
SIMULATE
GENERATE (Exponential(1,0,10)),,,,1 ;поступление заявок с приоритетом
QUEUE OCH1 ;стали в очередь
SEIZE OKU1 ;заняли прибор
DEPART OCH1 ;ушли из очереди
ADVANCE (Exponential(2,0,8)) ;обслуживание
RELEASE OKU1 ;освободили прибор
nxt TRANSFER 0.9,,nxt1 ;1-0.9=0.1 - возврат
PRIORITY 0 ;убираем приоритет
prb1 QUEUE OCH2 ;стали в очередь
SEIZE OKU1 ;заняли прибор
DEPART OCH2 ;ушли из очереди
ADVANCE (Exponential(3,0,8)) ;обслуживание
RELEASE OKU1 ;освободили прибор
TERMINATE ;покинули систему
nxt1 TRANSFER 0.7778,,nxt2 ;0.9(1-0.7778)=0.2
prb2 QUEUE OCH12 ;стали в очередь
ENTER MKU12 ;заняли канал
DEPART OCH12 ;ушли из очереди
ADVANCE (Exponential(4,0,50)) ;обслуживание
LEAVE MKU12 ;освободили канал
TERMINATE ;покинули систему
nxt2 TRANSFER 0.5714,,nxt3 ;следующий
prb3 QUEUE OCH13 ;стали в очередь
ENTER MKU13 ;заняли канал
DEPART OCH13 ;ушли из очереди
ADVANCE (Exponential(4,0,50)) ;обслуживание
LEAVE MKU13 ;освободили канал
TERMINATE ;покинули систему
nxt3 TRANSFER 0.625,,prb5 ;следующий
prb4 QUEUE OCH14 ;стали в очередь
ENTER MKU14 ;заняли канал
DEPART OCH14 ;ушли из очереди
ADVANCE (Exponential(4,0,50)) ;обслуживание
LEAVE MKU14 ;освободили канал
TERMINATE ;покинули систему
prb5 QUEUE OCH15 ;стали в очередь
ENTER MKU15 ;заняли канал
DEPART OCH15 ;ушли из очереди
ADVANCE (Exponential(4,0,50)) ;обслуживание
LEAVE MKU15 ;освободили канал
TERMINATE ;покинули систему
GENERATE 10000 ;время моделирования
SAVEVALUE Prob1,(N$prb1/N$nxt) ;вычисляем вероятность перехода
SAVEVALUE Prob2,(N$prb2/N$nxt) ;вычисляем вероятность перехода
SAVEVALUE Prob3,(N$prb3/N$nxt) ;вычисляем вероятность перехода
SAVEVALUE Prob4,(N$prb4/N$nxt) ;вычисляем вероятность перехода
SAVEVALUE Prob5,(N$prb5/N$nxt) ;вычисляем вероятность перехода
TERMINATE 1
START 1
Файл REPORT:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 10000.000 48 1 4
NAME VALUE
MKU12 12.000
MKU13 13.000
MKU14 14.000
MKU15 15.000
NXT 7.000
NXT1 15.000
NXT2 22.000
NXT3 29.000
OCH1 10004.000
OCH12 10009.000
OCH13 10006.000
OCH14 10008.000
OCH15 10007.000
OCH2 10010.000
OKU1 10005.000
PRB1 9.000
PRB2 16.000
PRB3 23.000
PRB4 30.000
PRB5 36.000
PROB1 10011.000
PROB2 10012.000
PROB3 10013.000
PROB4 10014.000
PROB5 10015.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 1010 0 0
2 QUEUE 1010 6 0
3 SEIZE 1004 0 0
4 DEPART 1004 0 0
5 ADVANCE 1004 1 0
6 RELEASE 1003 0 0
NXT 7 TRANSFER 1003 0 0
8 PRIORITY 117 0 0
PRB1 9 QUEUE 117 25 0
10 SEIZE 92 0 0
11 DEPART 92 0 0
12 ADVANCE 92 0 0
13 RELEASE 92 0 0
14 TERMINATE 92 0 0
NXT1 15 TRANSFER 886 0 0
PRB2 16 QUEUE 205 0 0
17 ENTER 205 0 0
18 DEPART 205 0 0
19 ADVANCE 205 0 0
20 LEAVE 205 0 0
21 TERMINATE 205 0 0
NXT2 22 TRANSFER 681 0 0
PRB3 23 QUEUE 303 10 0
24 ENTER 293 0 0
25 DEPART 293 0 0
26 ADVANCE 293 2 0
27 LEAVE 291 0 0
28 TERMINATE 291 0 0
NXT3 29 TRANSFER 378 0 0
PRB4 30 QUEUE 178 0 0
31 ENTER 178 0 0
32 DEPART 178 0 0
33 ADVANCE 178 1 0
34 LEAVE 177 0 0
35 TERMINATE 177 0 0
PRB5 36 QUEUE 200 1 0
37 ENTER 199 0 0
38 DEPART 199 0 0
39 ADVANCE 199 2 0
40 LEAVE 197 0 0
41 TERMINATE 197 0 0
42 GENERATE 1 0 0
43 SAVEVALUE 1 0 0
44 SAVEVALUE 1 0 0
45 SAVEVALUE 1 0 0
46 SAVEVALUE 1 0 0
47 SAVEVALUE 1 0 0
48 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
OKU1 1096 0.917 8.366 1 1005 0 0 0 31
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCH1 24 6 1010 78 4.797 47.491 51.465 0
OCH13 14 10 303 120 1.685 55.624 92.099 0
OCH15 7 1 200 131 0.520 26.015 75.407 0
OCH14 2 0 178 146 0.073 4.123 22.936 0
OCH12 5 0 205 115 0.531 25.889 58.968 0
OCH2 29 25 117 10 5.230 446.973 488.747 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
MKU12 2 2 0 2 205 1 1.130 0.565 0 0
MKU13 2 0 0 2 293 1 1.522 0.761 0 10
MKU14 2 1 0 2 178 1 0.739 0.369 0 0
MKU15 2 0 0 2 199 1 1.020 0.510 0 1
SAVEVALUE RETRY VALUE
PROB1 0 0.117
PROB2 0 0.204
PROB3 0 0.302
PROB4 0 0.177
PROB5 0 0.199
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
1005 1 10001.420 1005 5 6
996 1 10011.376 996 39 40
1012 1 10026.982 1012 0 1
972 1 10044.220 972 26 27
1003 1 10057.976 1003 39 40
1001 1 10071.062 1001 33 34
977 1 10138.358 977 26 27
1013 0 20000.000 1013 0 42
Сравнивая полученные вероятности переходов с заданными, отмечают расхождение с заявленными блоком TRANSFER: вместо переходов с вероятностями 0,1, 0,2, 0,3, 0,15 и 0,25 в результате моделирования получены вероятности 0,117, 0,204, 0,302, 0,177 и 0,199.
Проведем несколько экспериментов с различным временем моделирования с целью выявления зависимость погрешности реализации разветвлений от времени моделирования
| 10000 | 20000 | 30000 | 40000 | 50000 | 60000 | 70000 |
| 0,117 | 0,103 | 0,095 | 0,096 | 0,099 | 0,101 | 0,101 |
| 0,204 | 0,210 | 0,207 | 0,207 | 0,203 | 0,202 | 0,201 |
| 0,302 | 0,305 | 0,306 | 0,301 | 0,297 | 0,294 | 0,294 |
| 0,177 | 0,157 | 0,160 | 0,153 | 0,155 | 0,153 | 0,156 |
| 0,199 | 0,225 | 0,232 | 0,243 | 0,246 | 0,249 | 0,249 |