Тестирование GPSS/W
 
Общим правилом работы с новым программным обеспечением математического характера является его тестирование на задачах с известным решением (предпочтительно аналитическим). Для системы массового обслуживания M/M/1 теоретическая средняя длина очереди Среднее время ожидания w в соответствии с формулой Литтла (закон сохранения стационарной очереди) должно быть равно   и в данном случае( =1) численно совпадать со средней длиной очереди. Теоретическая вероятность незанятости системы равна 1- =0.1. Следовательно, в среднем десятая часть заявок должна получать обслуживание без ожидания. Сопоставим с этими ожиданиями результаты моделирования - табл. 1.

Таблица 1

Показатель

Теория

Число испытаний

50 000

200 000

500 000

Коэффициент загрузки
Среднее время обслуживания
Число входов
Из них с нулевым ожиданием
Средняя длина очереди
Среднее время ожидания

0.900
0.900
-
-
8.100
8.100

0.896
0.899
49843
5340
5.132
5.148

0.897
0.902
199042
21001
5.757
5.785

0.899
0.901
499032
50691
6.690
6.703

 

В составлении приведенной программы было трудно ошибиться (к тому же, она отличается от обсуждаемой у Т. Шрайбера [9], с. 57 и далее, только типом исходных распределений). Формула Литтла и доля заявок, принимаемых к обслуживанию без ожидания, подтверждаются с достаточно высокой точностью. Это дает основания доверять интерпретатору GPSS/W. Показатели, определяемые только средними значениями моделируемых первичных величин (среднее время облуживания и коэффициент загрузки), также вполне приемлемы.

Время ожидания зависит уже от двух моментов распределения времени обслуживания:

Результаты, связанные с ожиданием, оставляют желать лучшего. Причина может быть только одна: недостаточно качественный генератор псевдослучайных чисел. Увеличение числа проведенных испытаний в общем приближает результаты к ожидаемым, но даже при 500 тыс. испытаний погрешность составляет около 17 %. Судя по динамике версий, GPSS/W проходит процесс интенсивной отладки. Можно надеяться, что встроенные в систему датчики равномерно распределенных чисел будут совершенствованы. В этом направлении можно приложить и собственные усилия.

В дополнение к приведенным результатам отметим, что для системы M/M/1 распределение времени пребывания заявки в системе также подчинено показательному закону со средним 1/(1/0.9-1/1)=9. При ограничителе таймера 200 000 была заказана гистограмма распределения времени пребывания; получены среднее значение 9.264 и среднеквадратическое отклонение 9.147. Требуемое для показательного распределения их равенство приближенно выполняется, однако погрешность самих значений составляет около 2 %.

Выше были приведены контрольные результаты для системы M/M/1. Сопоставим с этими ожиданиями результаты моделирования при различных способах задания показательных распределений (встроенная Exponential, табличная ДФР и теоретически точное обращение -ln(1-U) ) и числе испытаний - табл. 2. Результаты, связанные с ожиданием, оставляют желать лучшего даже в случае с теоретически точным переходом от равномерного к экспоненциальному распределению. Причина та же: недостаточно качественный генератор равномерных псевдослучайных чисел. Эти ошибки усугубляются погрешностями перехода к показательному распределению в Exponential и отчасти нейтрализуются (случайный эффект) при использовании табличного преобразования. Увеличение числа проведенных испытаний в общем приближает результаты к ожидаемым.

Обсудим, наконец, временные показатели сравниваемых версий ДСЧ. Для достижения отметки таймера 500000 при табличной реализации логарифма и при работе с Exponential потребовалось практически одинаковое время - около 135 с (процессор Pentium 1/166). По-видимому, Exponential реализована таблично. При точном обращении показательного распределения было затрачено 187 с.

Таблица 2. Влияние способов генерации показательно распределенных чисел

Показатель

 Exponential

Табличная ДФР

-ln(1-U)

  50 000 500 000 50 000 500 000 50 000 500 000
Коэффициент загрузки
Среднее время обслуживания
Число входов
Из них с нулевым ожиданием
Средняя длина очереди
Среднее время ожидания

0.896
0.899
49843
5340
5.132
5.148

0.899
0.901
499032
50691
6.690
6.703
0.900
0.899
50048
5022
7.770
7.763
0.900
0.901
499390
49823
7.911
7.920
0.909
0.903
50320
4764
7.163
7.118
0.902
0.896
503176
50498
6.831
6.788

Прогон аналогичной программы на Фортране 77 при тех же исходных данных дал среднюю длину очереди 8.683. Это заметно ближе к теоретической оценке, чем лучший из приведенных в таблице результатов. Прогон занял всего 6.26 с. Столь большая разница является естественной платой за универсальность интерпретатора GPSS. Окупается ли она удобством программирования - зависит от опыта и квалификации пользователя, его желания и возможностей освоить GPSS, наличных вычислительных мощностей, сложности моделей и частоты потребностей в моделировании.

Перед моделированием реальной ситуации желательно убедиться, что выбранная процедура действительно воспроизводит случайную величину с требуемым распределением. Гистограмма распределения, порожденная функцией Exponential и построенная по 200 тыс. транзактов, оказалась близкой к ожидаемой. Среднее значение вместо заказанной единицы составило 1.005, а среднеквадратическое отклонение - 1.006.

 
назад

вперед