Задание на лабораторные работы (1086521), страница 18
Текст из файла (страница 18)
end
fprintf('\t Row = %g\tCol=%g',C2)
fprintf('\n\n\t L = %1.3f\t M = %1.3f\n',L,M)
В программе приводятся два способа получения данных: с помощью функции dlmwrite, которая позволяет записывать данные с необходимым разделителем (в программе запятая) в текстовый файл (в программе это два файла zx1 и zx2) и считывания данных либо непосредственно из текстового файла, либо вывода их в командное окно с помощью команды type.
Второй способ реализован с помощью функции fprintf и вывода результата в командное окно MATLAB.
GPSS-программа приводится ниже. В ней задано время моделирования величиной 969 единиц времени. Генераторы случайных чисел для определения аргумента функций распределения выбраны с номерами 6 и 5 (RN6, RN5). В поле А блоков generate и advance установлена единица, как математическое ожидание экспоненциального распределения с параметром, равным 1.
simulate
expL function RN6,C41
0,0
0.18127,0.60606
0.32968,1.2121
0.45119,1.8182
0.55067,2.4242
0.63212,3.0303
0.69881,3.6364
0.7534,4.2424
0.7981,4.8485
0.8347,5.4545
0.86466,6.0606
0.8892,6.6667
0.90928,7.2727
0.92573,7.8788
0.93919,8.4848
0.95021,9.0909
0.95924,9.697
0.96663,10.303
0.97268,10.9091
0.97763,11.5152
0.98168,12.1212
0.985,12.7273
0.98772,13.3333
0.98995,13.9394
0.99177,14.5455
0.99326,15.1515
0.99448,15.7576
0.99548,16.3636
0.9963,16.9697
0.99697,17.5758
0.99752,18.1818
0.99797,18.7879
0.99834,19.3939
0.99864,20
0.99889,20.6061
0.99909,21.2121
0.99925,21.8182
0.99939,22.4242
0.9995,23.0303
0.99959,23.6364
0.99966,24.2424
expM function RN5,C41
0,0
0.2212,0.36873
0.39347,0.73746
0.52763,1.1062
0.63212,1.4749
0.7135,1.8437
0.77687,2.2124
0.82623,2.5811
0.86466,2.9499
0.8946,3.3186
0.91792,3.6873
0.93607,4.056
0.95021,4.4248
0.96123,4.7935
0.9698,5.1622
0.97648,5.531
0.98168,5.8997
0.98574,6.2684
0.98889,6.6372
0.99135,7.0059
0.99326,7.3746
0.99475,7.7434
0.99591,8.1121
0.99682,8.4808
0.99752,8.8496
0.99807,9.2183
0.9985,9.587
0.99883,9.9558
0.99909,10.3245
0.99929,10.6932
0.99945,11.0619
0.99957,11.4307
0.99966,11.7994
0.99974,12.1681
0.9998,12.5369
0.99984,12.9056
0.99988,13.2743
0.9999,13.6431
0.99993,14.0118
0.99994,14.3805
0.99995,14.7493
tab1 table m1,0,2,12
tab2 table mp2,0,2,10
******** Basic Program *******
10 generate 1,fn$expL
20 assign 2,1
30 gate NU 1,exitNOT
40 seize 1
50 advance 1,fn$expM
60 release 1
70 mark 2
80 gate NU 2
90 tabulate tab2
100 seize 2
110 advance 1,fn$expM
120 release 2
130 tabulate tab1
140 transfer ,exitSERV
150 exitNOT terminate
160 exitSERV terminate
200 generate 969
210 terminate 1
start 1
;end
Файл стандартного отчета после выполнения GPSS-программы:
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 07-10-2004 21:02:37 page 1
START_TIME END_TIME BLOCKS FACILITIES STORAGES FREE_MEMORY
0 969 18 2 0 102752
LINE LOC BLOCK_TYPE ENTRY_COUNT CURRENT_COUNT RETRY
10 1 GENERATE 364 0 0
20 2 ASSIGN 364 0 0
30 3 GATE 364 0 0
40 4 SEIZE 242 0 0
50 5 ADVANCE 242 0 0
60 6 RELEASE 242 0 0
70 7 MARK 242 0 0
80 8 GATE 242 0 0
90 9 TABULATE 242 0 0
100 10 SEIZE 242 0 0
110 11 ADVANCE 242 0 0
120 12 RELEASE 242 0 0
130 13 TABULATE 242 0 0
140 14 TRANSFER 242 0 0
150 EXITNOT TERMINATE 122 0 0
160 EXITSERV TERMINATE 242 0 0
200 17 GENERATE 1 0 0
210 18 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE._TIME AVAILABLE OWNER PEND INTER RETRY DELAY
1 242 0.278 1.12 1 0 0 0 0 0
2 242 0.262 1.05 1 0 0 0 0 0
TABLE MEAN STD.DEV. RETRY RANGE FREQUENCY CUM.%
TAB1 2.95 2.97 0
- 0 43 17.77
0 - 2 90 54.96
2 - 4 57 78.51
4 - 6 25 88.84
6 - 8 16 95.45
8 - 10 4 97.11
10 - 12 2 97.93
12 - 14 3 99.17
14 - 16 2 100.00
TAB2 0.79 2.25 0
- 0 195 80.58
0 - 2 20 88.84
2 - 4 11 93.39
4 - 6 8 96.69
6 - 8 3 97.93
8 - 10 1 98.35
10 - 12 1 98.76
12 - 14 3 100.00
GPSS/PC Report file REPORT.GPS. (V 2, # 37349) 07-10-2004 21:02:37 page 2
XACT_GROUP GROUP_SIZE RETRY
POSITION 0 0
Комментарии к программе:
-
Введение таблицы tab1 с аргументом М1 (системный стандартный числовой атрибут) — времени пребывания в модели транзакта, обрабатываемого программой в данный момент, позволяет табулировать величину М1 и найти среднее значение времени пребывания транзакта в модели в той ее части, которая образована двумя фазами (1-м и 2-м устройствами).
-
Введение таблицы tab2 с аргументом mp2 (стандартный числовой атрибут транзакта) — значения времени, равного разности относительного модельного времени и содержимого 2-го параметра текущего транзакта. Табулируется время пребывания транзакта в заблокированном состоянии. В программе моделирование времени блокировки осуществляется строками 70, 80, 90. Второй параметр определяется строкой 20.
Расчет операционных характеристик двухфазной системы по файлу стандартного отчета будем помечать буквой g .
-
Расчет вероятности отказа в обслуживании определим как отношение числа требований, получивших отказ (число 122 в поле ENTRY_COUNT блока TERMINATE с именем EXITNOT) к общему числу (число 364 в поле ENTRY_COUNT блока GENERATE) сгенерированных требований за время 969:
Pomkg=122/364=0.3352;
-
Относительная пропускная способность и вероятность того, что вновь поступившее требование будет принято на обслуживание 1-й фазой равны между собой и определяются как противоположная вероятность отказа в обслуживании:
Qg=Pf1g=1-Pomkg=1-0.3352= 0.6648;
-
Расчет эффективной частоты поступления требований в систему:
Lefg=Pf1g=0.33*0.6648=0.2194;
-
Абсолютная пропускная способность двухфазной системы:
Abg=Lefg*Qg=0.2194*0.6648=0.1459;
-
Полное время пребывания требования в системе определяется как среднее значение таблицы с именем tab1:
Tsg=2.95;
-
Среднее время блокировки 1-й фазы определяется как среднее значение таблицы с именем tab2:
Tdg=0.79;
-
Среднее время обработки одного требования в двухфазной системе можно определить двумя путями: как сумму значений полей AVE._TIME для устройств 1 и 2 (FACILITY) и как разность между Tsg и Tdg:
Tcpg=1.12+1.05=2.17, (2.95-0.79=2.16);
-
Среднее число требований в двухфазной системе определим по формуле Литтла:
Ncpg=Lefg*Tsg=0.2194*2.95=0.6472.
Задание:
-
Вычислить полное время работы каждой из фаз данной двухфазной системы.
-
Построить гистограммы и функции распределения полного времени пребывания требования в двухфазной системе и времени блокировки 1-й фазы.
-
Вычислить относительные погрешности расчетных операционных характеристик, определенных в GPSS/PC по отношению к тем же характеристикам, полученных в MATLAB.
-
Смоделировать в MATLAB и в GPSS/PC двухфазную систему обслуживания с параметрами и , задаваемых ниже в соответствии с номером компьютера:
№1: =12.5, =3.2; №2: =6.78, =3.3; №3: =3.2, =12.5; №4: =3.2, =1.25; | №5: =3.3, =6.78; №6: =12.5, =32; №7: =125, =32; №8: =32, =125; №9: =3.2, =1.25. |
Выполнить для своего варианта предыдущие пункты задания. Объяснить возможные расхождения определения операционных характеристик в MATLAB и в GPSS/PC (GPSS World).
-
Смоделировать в MATLAB и в GPSS/PC (GPSS World) трехфазную систему обслуживания и рассчитать операционные характеристики по параметрам предыдущего пункта. Построить функцию распределения полного времени пребывания требования в трехфазной системе.
Примечание: в отчет лабораторной работы должны войти исходные тексты программ и программ с параметрами, соответствующих номеру компьютера, где выполнялась работа.
ЛАБОРАТОРНАЯ РАБОТА №12
МОДЕЛИРОВАНИЕ МНОГОКАНАЛЬНОЙ
СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ
С ОГРАНИЧЕННЫМ ВРЕМЕНЕМ ОЖИДАНИЯ
И ОГРАНИЧЕННОЙ ДЛИНОЙ ОЧЕРЕДИ
Цель работы: практическое освоение методов моделирования в программных средах MATLAB 6.x и GPSS/PC (GPSS World) систем массового обслуживания с ограниченным временем ожидания и ограниченной длиной очереди при пуассоновском входном потоке требований, экспоненциальном обслуживании и экспоненциальном времени пребывания в очереди с целью получения операционных характеристик.
I ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Рассмотрим систему с m параллельно работающими приборами (каналами) обслуживания с ограниченной очередью и ограниченным временем ожидания. Считаем, что входной поток пуассоновский с параметром λ, а обслуживание осуществляется по экспоненциальному закону с параметром . В системе может быть ограниченное число требований, пусть это число будет K. Примем также, что время ожидания начала обслуживания является случайной величиной и подчиняется экспоненциальному закону, например, заданным своей функцией распределения:
где — интенсивность ухода из очереди, т.е. величина, обратная среднему времени ожидания.
Величину можно интерпретировать, как плотность "потока уходов" требований, находящихся в очереди. Такие требования часто называют "нетерпеливыми" требованиями. Изменение вероятностей состояний системы происходит в случае поступления требований или за счет обслуживания, когда нет очереди. При наличии очереди, т.е. когда состояние системы определяется величиной не менее m+1, изменение состояния может происходить также и за счет ухода "нетерпеливых" требований. В случае, когда в системе уже есть K требований, то вновь поступающее требование получит отказ в обслуживании. Граф вероятностей состояний системы M/M/m/K с огр
аниченным временем ожидания показан на рисунке 2.1.
По размеченному графу состояний могут быть составлены дифференциальные уравнения Колмогорова относительно вероятности состояний по мнемоническому правилу: производная вероятности любого состояния системы равна сумме потоков вероятностей, переводящих систему в это состояние, минус сумма потоков вероятностей, выводящих систему из этого состояния. Потоком вероятности называется произведение вероятности на интенсивность (интенсивность входного потока или интенсивность обслуживания).
Для применения мнемонического правила вокруг каждого состояния проводят воображаемую окружность и затем подсчитывают количество стрелок, входящих в эту окружность и количество стрелок, выходящих из этой окружности. Если стрелка входит в воображаемую окружность, то соответствующий поток вероятности будет положительным, в противном случае — отрицательным.