Аналог моделируемой системы:
Пусть моделируемой системой будет клиент пиринговой сети. Пользователь ищет и добавляет файлы, программа их закачивает. Файлы и будут являться требованиями. Клиент имеет ограничение на одновременное количество закачек, которое в данном случае равняется трем. Каждый канал, через который может идти только одна закачка, является в терминологии моделирования систем устройством обслуживания. Пользователь также для каждого загружаемого файла выбирает приоритет, с которым тот попадет в очередь на закачку. Приоритеты соответственно бывают: наименьший, низкий, средний (нормальный), высокий, наивысший. По умолчанию каждой новой закачке выставляется приоритет «средний», однако пользователь может менять его. Чем выше приоритет – тем быстрее закачка перейдет в активную стадию, т.е. начнется ее обработка, при всех занятых каналах. Будем считать что пользователь выставляет приоритет при добавлении закачки и больше его не меняет. При всех занятых каналах, закачка с наивысшим требованием будет поставлена в очередь и обработана при освобождении любого из них.
Для правдоподобия будем считать, что пользователь ищет в сети музыкальные файлы, размер которых весьма небольшой. Просматривая список, пользователь добавляет новый файл на закачку примерно каждые 20 секунд. Т.к. размер файлов небольшой, то каждый из них закачивается примерно за 30 секунд.
Таким образом входными случайными величинами при моделировании данной системы будут являться:
· интервал времени, за который закачается (обработается) одна закачка (требование)
· интервал времени, через который пользователь добавит новую закачку (требование)
· приоритет новой заявки
Математические ожидания для первых двух случайных величин составляют 30 и 20 секунд соответственно. Так как время, через которое будет добавлена закачка, никак не зависит от времени, через которое были добавлены предыдущие, то логично выбрать для данной входной величины экспоненциальное распределение. Аналогично экспоненциальное распределение следует выбрать и для времени обработки каждого требования.
Генератор случайной величины с экспоненциальным распределением будет построен на основе генератора стандартной равномерно распределенной величины. Преобразование будет выполняться по формуле
X = -b*ln(U)
где Х – экспоненциально распределенная случайная величина,
b – математическое ожидание случайной величины Х
U – стандартная равномерно распределенная случайная величина
Ниже приведен листинг генератора в нотации MATLAB
1 function r = gener_exp( g1, n, b )
2 k1 = 630360016;
3 k2 = 2147483647;
4 r(1) = k1*g1;
5 while (r(1) > k2 ),
6 r(1) = r(1)/k2;
7 end
8 for i=2:1:(n)
9 r(i) = mod(k1*r(i-1), k2);
10 r(i-1) = -b*log(r(i-1)/k2);
11 end
12 r(1) = -b*log(mod(k1*r(n), k2)/k2);
13 r(n) = -b*log(r(n)/k2);
14 end
Здесь первый параметр является начальным значением для генератора, второй – количеством случайных величин, которые необходимо сгенерировать, третий – математическое ожидание получаемых случайных величин.
С помощью критерия «хи квадрат» оценим достоверность генератора. Для этого с помощью генератора сформируем выборку из 200 случайных величин с математическим ожиданием 20 (для удобства величины расположены в порядке возрастания):
Таблица 1. Выборка из 20 случайных величин
0,055253 |
2,967348 |
5,377173 |
9,472257 |
15,58128 |
20,03511 |
31,24815 |
45,32839 |
0,068548 |
3,037029 |
5,404124 |
10,00148 |
15,77921 |
20,06716 |
31,89586 |
46,07235 |
0,414104 |
3,222119 |
5,43369 |
10,18146 |
16,12142 |
20,86617 |
32,09766 |
47,72999 |
0,549494 |
3,323995 |
5,482919 |
11,02815 |
16,21697 |
20,89258 |
32,69934 |
48,34819 |
0,579787 |
3,361148 |
5,62272 |
11,12052 |
16,28645 |
22,50796 |
32,85601 |
48,55655 |
0,605476 |
3,371733 |
5,630373 |
11,30793 |
16,34194 |
22,73278 |
33,02183 |
49,54909 |
0,639184 |
3,438724 |
5,762234 |
11,52746 |
16,40683 |
23,14258 |
34,27199 |
49,64424 |
0,854681 |
3,602674 |
5,811486 |
11,58419 |
16,50555 |
23,2592 |
34,52052 |
49,7456 |
1,020237 |
3,61974 |
6,296024 |
11,66821 |
16,5796 |
24,20852 |
35,1996 |
51,098 |
1,177068 |
3,692804 |
6,344386 |
12,30486 |
16,93705 |
24,4861 |
35,48702 |
51,20589 |
1,223554 |
4,151479 |
6,443517 |
12,49038 |
16,97295 |
24,59421 |
37,15268 |
51,9352 |
1,255325 |
4,182866 |
6,540712 |
12,49521 |
17,2014 |
24,68934 |
37,85985 |
52,09097 |
1,299097 |
4,265789 |
6,686824 |
12,62534 |
17,21295 |
25,62396 |
38,54238 |
52,58058 |
1,52751 |
4,318781 |
6,801897 |
12,84666 |
17,28755 |
25,7212 |
38,82115 |
56,19347 |
1,597142 |
4,345691 |
6,882046 |
13,11312 |
17,52626 |
26,19574 |
39,0315 |
58,71362 |
1,682755 |
4,425641 |
7,391897 |
13,6472 |
17,65311 |
27,89954 |
40,72482 |
60,42854 |
1,684109 |
4,475275 |
7,672711 |
13,65675 |
17,70112 |
27,90419 |
41,21346 |
60,88787 |
1,801568 |
4,484623 |
7,824522 |
13,90672 |
17,74461 |
28,25385 |
41,36804 |
66,37363 |
1,970825 |
4,48754 |
8,056998 |
14,01337 |
18,19061 |
28,44036 |
41,53015 |
70,97554 |
2,071079 |
4,673842 |
8,151114 |
14,47793 |
18,39304 |
28,60173 |
41,55355 |
80,41526 |
2,145264 |
4,97731 |
8,310483 |
14,67827 |
18,79117 |
28,6337 |
41,84902 |
84,48219 |
2,214835 |
5,028546 |
8,420673 |
14,86774 |
18,86041 |
28,91695 |
42,14743 |
86,72663 |
2,369263 |
5,040909 |
8,438498 |
15,24359 |
19,07743 |
29,35477 |
43,02966 |
87,05201 |
2,611256 |
5,20208 |
8,642584 |
15,31521 |
19,24333 |
29,4673 |
43,48756 |
87,17797 |
2,749327 |
5,290067 |
8,875284 |
15,40522 |
19,85814 |
30,45428 |
43,51863 |
116,6476 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.