Создадим отсеивающий эксперимент, в ходе которого оценим влияние на критерий эффективности модели следующих факторов:
- время опроса (фактор А);
- время передачи одного пакета по каналу связи (фактор В);
-интервал времени между возникновениями запросов на рабочих станциях (фактор С);
- время доступа к глобальной сети (фактор D).
Для изменения значений этих факторов воспользуемся операторами EQU, которые определены в начале программы.
Для создания отсеивающего эксперимента выберем команду в меню Edit/Insert Experiment/Screening... и заполним поля диалогового окна (рис. 9.9).
Назначение элементов диалогового окна:
Experiment Name (название эксперимента). В данном случае «ScreenNetwork».
'Run Procedure' Name (название процедуры прогона). В данном случае «Do TheRun».
Factors (факторы), которых должно быть не более шести. В соответствующие поля необходимо ввести имена факторов, заданных в модели оператором EQU, и два значения уровней факторов (Value 1 и Value 2).
Fraction (доля) определяет, какая часть от полного факторного эксперимента будет выполнена, т.е. план 2 k-p. В этом случае прогоны зыполняются для каждого варианта значений уровней факторов, заданных в полях Value 1 и Value 2.
|
|
Result, Expression (выражение для выходной переменной, для которой проводится эксперимент). В это поле могут быть введены названия переменных пользователя, СЧА или выражения.
Generate Run Procedure, Load Fll with CONDUCT command (флажки «Генерация процедуры прогона» и «Загрузка команды CONDUCT в клавишу F11») необходимо установить для автоматизации и упрощения запуска эксперимента.
Alias Groups (группы смешивания). Эта кнопка открывает диалоговое окно Defining Relation (определение отношений, рис. 9.10).
Рис. 9.9
Рис. 9.10
Часто время одного прогона модели настолько велико, что делать все 2 k экспериментов с g повторениями не представляется возможным (особенно, когда факторов 4...6, a g= 100 или больше). В таком случае генератор отсеивающего эксперимента позволяет задать меньшее количество экспериментов (Fraction), т.е. 2 k-p. Этого можно добиться, благодаря смешиванию некоторых эффектов (Alias Groups). Следует, однако, учитывать, что при этом будет получена только часть информации. Кроме того, при превышении определенного предела числа прогонов уже нельзя будет определить эффекты отдельных факторов. В таких случаях можно сделать предположение о влиянии определенного фактора по значению эффекта, полученного для групп, в которые он входит и для которых это значение удалось рассчитать даже при меньшем количестве прогонов. Однако следует учитывать, что влияние факторов из одной группы может быть взаимно противоположными. Может создаться впечатление, что эти факторы этой группы не оказывают на модель существенного влияния, в то время как в действительности каждый в отдельности оказывает такое влияние. Рекомендуется так группировать факторы, чтобы в каждой группе оказывался только один существенный фактор.
|
|
В приведенном примере в качестве критерия эффективности выбрано среднее время (в мс) обработки запроса от момента появления его на рабочей станции до момента окончания приема результатов запроса на этой станции. Для получения этого времени используется регистратор очереди network. В качестве критерия выбран СЧА qt$network - среднее время нахождения транзактов в системе, которое будет стремиться к истинному среднему только тогда, когда система будет работать в стационарном режиме. Если же запросы будут поступать с частотой, превышающей частоту их обработки, то длина очереди на обработку будет стремиться к бесконечности.
После заполнения диалога в модель будут вставлены такие процедуры:
ScreenNetwork - собственно отсеивающий эксперимент;
ScreenNetwork GetResult - процедура выполнения прогонов, служит для фиксации результатов каждого прогона и перехода к следующему прогону;
DoTheRun - процедура прогона, которая служит для установки i начальных значений генераторов случайных чисел и запуска каждого нового прогона.
Генератор отсеивающего эксперимента GPSS World до версии 4.3.5 не всегда прописывает название процедуры DoTheRun на языке PLUS. Необходимо проверить добавляемый код и в случае, если эта процедура оказалась без названия, ввести его вручную.
Отсеивающий эксперимент в GPSS World предполагает, что модель работает в стационарном режиме и оценки выходной величины или критерия эффективности получаются по одному достаточно длинному прогону, поэтому в процедуре для отсеивающего эксперимента нет повторений для каждой комбинации уровней факторов.
Итак, для того, чтобы результаты эксперимента были достоверными, необходимо экспериментировать с моделью, которая находится в стационарном режиме. Поэтому сначала необходимо исследовать модель на стационарность. Для этого воспользуемся графиком изменения величины qt$network - среднего времени обработки запроса (рис. 9.11) в модельном времени (выполнив пункт меню Window/Simulation Window/Plot Window...).
Рис. 9.11
Из графика видно, что время переходного процесса равно примерно 20 мин (1200000 мс) и оказалось, как минимум, в 72 раза меньше времени одного прогона системы. Окончательную длительность прогона для стационарного процесса надо определять в зависимости от требуемой точности получения оценок для выходной переменной. Это можно сделать для эргодических или регенерирующих процессов, как описано в параграф 9.4.
Для того, чтобы статистические данные, собираемые во время переходного процесса, не давали смещения для выходной переменной, их необходимо удалять с помощью оператора RESET. Автоматически сгенерированный отсеивающий эксперимент в конце процедуры DoTheRun предполагает, что переходный период в модели закончится после прохождения 100 транзактов (Get past the Startup Period).
/* SET UP YOUR OWN RUN CONDITIONS. */
DoCommand("START 100,NP"); /* Get past the Startup Period. */
DoCommand("RESET"); /* Begin the Measurement Period. */
DoCommand("START 1000,NP"); /* Run the Simulation. */
После этого выполняется оператор RESET и начинается период измерений (Begin the Measurement Period). Полный прогон модели (Run the Simulation) заканчивается после прохождения через нее 1000 транзактов.
В данном примере моделирование заканчивается через 24 часа (86400000 мс). Учитывая то, что один прогон модели занимает значительное время и для 4-х факторов на двух уровнях надо выполнить для полного факторного эксперимента 24 прогонов, то сократим длительность прогона до 10 длительностей переходного периода. Для этого установим таймер в модели на 1200000 мс.
|
|