Опубликован: 16.11.2010 | Уровень: специалист | Доступ: свободно
Лекция 8:

Организация компьютерных экспериментов

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Аннотация: Необходимым условием успешного моделирования является обеспечение адекватности модели, т. е. функционального или структурного тождества модели исследуемому процессу или объекту относительно цели исследования. Однако этого недостаточно. Для успешного исследования необходимо разработать план эксперимента с моделью, правильно обработать и интерпретировать результаты моделирования. Как можно проводить эксперимент? Изменять значения факторов, получать значения целевой функции (функции отклика), а потом обрабатывать или вручную или с использованием различных математических программ.

GPSS World имеет все необходимые средства, которые позволяют провести:

  • дисперсионный анализ (отсеивающий эксперимент);
  • регрессионный анализ (оптимизирующий эксперимент);
  • собственный эксперимент пользователя. Рассмотрение возможностей GPSS World по проведению компьютерных экспериментов начнем с дисперсионного анализа.

7.1. Дисперсионный анализ (отсеивающий эксперимент). Прямая задача

Сущность этого эксперимента состоит в проведении многофакторного дисперсионного анализа с целью выявления степени влияния различных факторов и их комбинаций (взаимодействий) на значение целевой функции (функции отклика, представленной в виде уравнения регрессии).

Пример 7.1. В условиях примера 6.1 (прямая задача) требуется исследовать зависимость вероятности обработки запросов от трех факторов, например, при следующих их минимальных и максимальных значениях (табл. 7.1):

Таблица 7.1.
Уровни факторов Факторы
T1_, с Koef Q_, оп/c
Нижний 60 0.5 300000
Верхний 180 1.5 700000

Для проведения дисперсионного анализа нужно воспользоваться созданным в п. 6.3.1 объектом "Модель". В программе модели удалите последние три строки:

START        1000,NP   ; Прогоны до установившегося режима
RESET                       ; Сброс накопленной статистики
START        9604       ; Количество прогонов модели

Откройте модель Прямая задача. Выберите Edit / Insert Experiment / Screening … ( Правка / Вставить эксперимент / Отсеивающий … ).

Откроется диалоговое окно Screening Experiment Generator ( Генератор отсеивающего эксперимента ) (рис. 7.1).

Диалоговое окно (незаполненное) Screening Experiment Generator (Генератор отсеивающего эксперимента)

Рис. 7.1. Диалоговое окно (незаполненное) Screening Experiment Generator (Генератор отсеивающего эксперимента)

Приступите к заполнению полей диалогового окна.

В поля Experiment Name ( Имя эксперимента ) и Run Procedure Name ( Имя процедуры запуска ) введите, например, Dis_Server и Dis_Server_Run соответственно (рис. 7.2).

Имена эксперименту и процедуре запуска эксперимента дает пользователь.

Диалоговое окно (заполненное) Screening Experiment Generator (Генератор отсеивающего эксперимента)

Рис. 7.2. Диалоговое окно (заполненное) Screening Experiment Generator (Генератор отсеивающего эксперимента)

Дальше расположена группа полей Factors ( Факторы ). В рассматриваемом примере определяется вероятность обработки запросов, поступающих на сервер. Факторы, влияние которых необходимо исследовать, были определены нами ранее (см. табл. 7.1).

В GPSS World максимальное количество факторов, влияние которых на функцию отклика можно исследовать посредством дисперсионного анализа, равно шести.

Для каждого фактора необходимо выбрать два уровня - нижний и верхний. Рекомендуется выбирать уровни, значительно отстоящие друг от друга. Это необходимо для получения также значительно отличающихся откликов.

Введите ранее выбранные факторы, начиная с фактора А. В поле Name ( User Variable ) ( Имя ( Переменная пользователя )) введите имя фактора, в поля Value1 и Value2 - его нижний и верхний уровни соответственно. После ввода всех факторов для дальнейшей работы будем иметь факторы А, В и С.

Ниже идет группа Fraction ( Часть полного эксперимента ). Эксперимент, проводимый в GPSS World, может быть полным факторным экспериментом (ПФЭ) или дробным факторным экспериментом (ДФЭ). Группа Fraction ( Часть дробного эксперимента ) позволяет это задавать, т. е. позволяет провести стратегическое планирование эксперимента, цель которого, как вам известно, является определение количества наблюдений и сочетаний уровней факторов в них для получения наиболее полной и достоверной информации о поведении системы.

Установке ПФЭ соответствует кнопка Full, для ДФЭ в 1/2 от ПФЭ - Half, в 1/4 - Quarter, в 1/8 - Eight, в 1/16 - Sixteen.

Установите пока Half ( 1/2 ). Справа под Run Count появится число 4, так как 22 =4. Это количество наблюдений, которое необходимо сделать. Количество прогонов в каждом наблюдении будет указано позже.

В поле Expression ( Выражение ) группы Result ( Результат ) введите выражение, по которому вычисляется вероятность обработки запросов: N$ObrZap/N$KolZap.

После группы Result ( Результат ) расположены два флажка, позволяющие выбирать опции.

При выборе опции Generate Run Procedure вместе с экспериментом создается стандартная процедура запуска, которую пользователь может корректировать согласно своим требованиям.

Выбор второй опции Load F11 with CONDUCT Command закрепляет команду CONDUCT за функциональной клавишей F11. Тогда после создания объекта "Процесс моделирования" для запуска эксперимента нужно только нажать функциональную клавишу F11. Выберите обе опции.

Перед созданием эксперимента необходимо изучить группы смешивания с целью осуществления стратегического планирования эксперимента. Для этого нужно нажать кнопку Alias Groups ( Группы смешивания ). Появится диалоговое окно Alias Groups ( Группы смешивания ) (рис. 7.3).

При изучении групп смешивания необходимо вначале найти отсутствующие факторы, а затем факторы, которые неразличимы, так как находятся в одной группе смешивания. Например, взаимодействие факторов А и В - АВ.

Из рис. 7.3 видно, что отсутствующих факторов нет. Факторы А, В и С находятся в различных группах смешивания по два фактора в каждом. Невозможно будет судить об эффектах, т. е. о влиянии на отклик взаимодействий двух факторов. В некоторых случаях этого будет достаточно.

Нажмите кнопку Cancel ( Отмена ).

диалоговое окно Alias Groups (Группы смешивания)

Рис. 7.3. диалоговое окно Alias Groups (Группы смешивания)

В диалоговом окне Screening Experiment Generator ( Генератор отсеивающего эксперимента ) в группе Fraction ( Часть дробного эксперимента ) установите Full ( ПФЭ ). Под Run Count появится число 8.

Обратите внимание, что кнопка Alias Groups ( Группы смешивания ) при установке полного факторного эксперимента Full ( ПФЭ ) не будет активной.

Теперь необходимо создать Plus - операторы и вставить их в нижнюю часть модели Прямая задача. Для этого нажмите кнопку Insert Experiment ( Вставить эксперимент ), расположенную в левой нижней части диалогового окна Screening Experiment Generator ( Генератор отсеивающего эксперимента ).

Так как была выбрана опция Generate Run Procedure, то создана стандартная процедура запуска. Появится ее диалоговое окно, дающее возможность пользователю изменить процедуру запуска согласно своим требованиям.

Введите через пробел после слова PROCEDURE указанное ранее имя процедуры Dis_Server_Run, оставив в скобках ( Run_Number ), без изменения (рис. 7.4).

Перейдите, пользуясь клавишами вверх-вниз, в конец процедуры запуска. Там в разделе Set up your own run conditions ( Задайте свои условия наблюдения ) имеются две команды START, между которыми находится команда RESET (рис. 7.5).

Поясним назначение этих команд.

Для получения достоверной статистики существуют три подхода (см. п. 4.9). В генераторе экспериментов использован третий подход.

Диалоговое окно стандартной процедуры запуска

Рис. 7.4. Диалоговое окно стандартной процедуры запуска
Условия стандартной процедуры запуска по умолчанию

Рис. 7.5. Условия стандартной процедуры запуска по умолчанию

Первой командой START

DoCommand("START 100,NP");         /*Get past the Startup Period. */

определяется количество прогонов в неустоявшемся режиме.

Подразумевается, что если моделирование выполняется долго, то система приходит в стационарное состояние. Сколько времени следует вести моделирование, чтобы достичь стационарного состояния? Часто ответ на этот вопрос можно получить из опыта экспериментирования с моделью. Команда RESET служит для этого. Она сбрасывает в ноль накопленную на неустоявшемся режиме статистику без удаления транзактов из процесса моделирования. Второй командой START

DoCommand("START 1000,NP");        /*Run the Simulation. */

определяется количество прогонов в наблюдении, т. е. количество прогонов, которое было определено ранее при тактическом планировании эксперимента: N=9604. Измените 1000 на 9604 (рис. 7.6).

Корректировка процедуры запуска возможна до и после того, как она будет добавлена к объекту "Модель". После корректировки нажмите Ok. Сгенерированный Plus - эксперимент представлен ниже. Изучите его. Это необходимо для создания собственных экспериментов.

Условия стандартной процедуры запуска после корректировки

Рис. 7.6. Условия стандартной процедуры запуска после корректировки

В начале автоматически сгенерированного эксперимента определяется и инициализируется в неопределенное состояние ( UNSPECIFIED ) матрица результатов. Далее имеются Plus - операторы, которые для каждого из наблюдений определяют сочетания уровней факторов. В рассматриваемом примере таких сочетаний восемь.

Plus - эксперимент содержит также вызов Plus - процедуры запуска. Процедура запуска осуществляет связь между генерируемым экспериментом и процессом моделирования. Она вызывается столько раз, сколько требуется сделать наблюдений. Так как процедура запуска вызывается Plus - экспериментом, ей разрешается вызывать библиотечную процедуру DoCommand и, следовательно, выполнять RMULT, CLEAR, RESET и многие другие команды GPSS. Поэтому все команды, необходимые для определения условий наблюдения, следует помещать в процедуру запуска.

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?