Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мим.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2.2 Моделирование в системе gpss/pc

Для моделирования в системе GPSS/PC (GPSS World) необходимо подготовить данные по функциям распределения случайных величин, с помощью которых осуществляется имитация пуассоновского входного потока требований и экспоненциального обслуживания. В обоих случаях моделируется экспоненциальное распределение случайных величин, поскольку интервалы времени между требованиями в пуассоновском потоке распределены по экспоненциальному закону. В рассматриваемом случае параметры пуассоновского потока и экспоненциального обслуживания заданы и равны соответственно λ = 0.33;  = 0.678.

Чтобы смоделировать случайные величины, распределенные по экспоненциальному закону с параметром, отличного от единицы, поступают следующим образом:

  • генерируют значения случайной величины, распределенной по экспоненциальному закону с параметром, равным 1;

  • находят произведение полученного значения и математического ожидания случайной величины, распределенной по экспоненциальному закону с параметром не равным 1.

Описанная процедура реализована в MATLAB по следующей программе:

%-------------- For GPSS/PC -------------------------

X=0:0.2:8;

px1=(1-exp(-X));

fprintf('\n\t CDF for Input:\n')

q = [px1',1/L*X'];

dlmwrite('zx1',q,',') % 1-st method

type zx1

for J = 1:length(q(:,1))% 2-nd method

fprintf('%g%s%g\n',q(J,1),',',q(J,2))

end

C1=size([px1',1/L*X']);

fprintf('\t Row = %g\t Col = %g',C1)

fprintf('\n')

Y=0:0.25:10;

py1=1-exp(-Y);

fprintf('\n\t CDF for Service:\n')

C2=size([py1',1/M*Y']);

w = [py1',1/M*Y'];

dlmwrite('zx2',w,',') % 1-st method

type zx2

for J = 1:length(w(:,1))% 2-nd method

fprintf('%g%s%g\n',w(J,1),',',w(J,2))

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