|
Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки? Спасибо! |
Организация компьютерных экспериментов
Для сохранения матрицы результатов при обнулении переменных перед очередным наблюдением используется команда CLEAR OFF. Для изменения начального числа генератора случайных чисел в каждом наблюдении процедуре передается номер запуска.
****************************************************
* Dis_Server *
* Факторный отсеивающий эксперимент *
****************************************************
Dis_Server_Results MATRIX ,2,2,2
INITIAL Dis_Server_Results,UNSPECIFIED
Dis_Server_NextRunNumber EQU 0
EXPERIMENT Dis_Server() BEGIN
/* Наблюдение 1 */
T1_ = 60;
Koef = 0.5;
Q_ = 300000;
IF (StringCompare(DataType(Dis_Server_Results[1,1,1]),
"UNSPECIFIED")'E'0)
THEN BEGIN
/* Установить начальное значение переменной количества наблюдений */
Dis_Server_NextRunNumber = 1;
/* Записать данные наблюдения и запустить процесс моделирования*/
Dis_Server_GetResult();
Dis_Server_Results[1,1,1] = N$ObrZap/N$KolZap;
END;
/* Наблюдение 2 */
T1_ = 60;
Koef = 0.5;
Q_ = 700000;
IF (StringCompare(DataType(Dis_Server_Results[1,1,2]),
"UNSPECIFIED")'E'0)
THEN BEGIN
/* Записать данные наблюдения и запустить процесс моделирования */
Dis_Server_GetResult();
Dis_Server_Results[1,1,2] = N$ObrZap/N$KolZap;
END;
/* Наблюдения 3 - 7 для краткости пропущены */
/* Наблюдение 8 */
T1_ = 180;
Koef = 1.5;
Q_ = 700000;
IF (StringCompare(DataType(Dis_Server_Results[2,2,2]),
"UNSPECIFIED")'E'0)
THEN BEGIN
/* Записать данные наблюдения и запустить процесс моделирования */
Dis_Server_GetResult();
Dis_Server_Results[2,2,2] = N$ObrZap/N$KolZap;
END;
/* Эффекты смешивания в дробном факторном эксперименте */
SE_Effects(Dis_Server_Results,"I");
END;
*******************************************************
* Процедура запуска наблюдения *
*******************************************************
PROCEDURE Dis_Server_GetResult() BEGIN
/* Выполнить указанное число прогонов и записать результаты. */
/* Факторы для этого наблюдения уже были определены. */
TEMPORARY CurrentYield,ShowString,CommandString;
/* Вызов процедуры запуска */
Dis_Server_Run(Dis_Server_NextRunNumber);
CurrentYield = N$ObrZap/N$KolZap;
ShowString = PolyCatenate("Run ",String(Dis_Server_NextRunNumber),
". ", "" );
ShowString = PolyCatenate(ShowString," Yield=",String(CurrentYield),
". ");
ShowString = PolyCatenate(ShowString," T1_=",String(T1_), ";" );
ShowString = PolyCatenate(ShowString," Koef=",String(Koef), ";" );
ShowString = PolyCatenate(ShowString," Q_=",String(Q_), ";" );
CommandString = PolyCatenate("SHOW """,ShowString,
"""", "" );
DoCommand(CommandString);
Dis_Server_NextRunNumber = Dis_Server_NextRunNumber + 1;
RETURN CurrentYield;
END;
*******************************************************
* Процедура запуска *
*******************************************************
PROCEDURE Dis_Server_Run(Run_Number) BEGIN
DoCommand("CLEAR OFF"); /* Использовать OFF для сохранения результата. */
/* Увеличьте число команд RMULT, если у вас большее число ГСЧ. */
/* Задать новые случайные числа всем потокам случайных чисел. */
TEMPORARY CommandString;
/* Вычислить, прежде чем перейти к DoCommand. */
CommandString = Catenate("RMULT ",Run_Number#111);
/* DoCommand контролирует строку в глобальном контексте. */
DoCommand(CommandString);
/* Установить собственные условия наблюдения. */
DoCommand("START 100,NP"); /* Пройти неустоявшийся режим. */
DoCommand("RESET"); /* Начать период измерений. */
DoCommand("START 9604,NP"); /* Провести моделирование. */
END;Проведем эксперимент. Для вызова эксперимента предназначена команда CONDUCT. Однако за функциональной клавишей [F11] была закреплена соответствующая команда CONDUCT ( Edit / Settings / Function Keys ( Правка / Настройки / Функциональные клавиши ).
Проведите трансляцию, т. е. создайте объект "Процесс моделирования", для чего нажмите [Ctrl]+[Alt]+[S] или выполните команду Command / Create Simulation ( Команда / Создать процесс моделирования ).
При отсутствии ошибок в сгенерированном эксперименте в окне Journal ( Журнал ) появится сообщение (рис. 7.7), свидетельствующее об отсутствии ошибок.
Теперь нажмите функциональную клавишу [F11]. Эксперимент начинает работать.
В ходе выполнения сгенерированного эксперимента автоматически создается отчет, который по готовности записывается в окно Journal ( Журнал ) объекта "Процесс моделирования". Фрагмент отчета для четырех наблюдений ( Run1 … Run4 ) показан на рис. 7.8. В отчете содержатся Yield - целевая функция и значения факторов, при которых получение значение целевой функции.
Так как эксперимент включает 8 наблюдений по 9604 прогонов в каждом из них, то будет выдано 8 отчетов (на рис. 7.8 в целях сокращения показаны только первые четыре отчета). Окончательные результаты моделирования после статистической обработки будут выведены в виде таблицы Anova (рис. 7.9).
В таблице каждый фактор и взаимодействие факторов представлены отдельной строкой. В каждой строке для всех эффектов указаны коэффициенты, с которыми они входят в целевую функцию (столбец Effect ), а для главных эффектов (А, В, С) - суммы квадратов отклонений, аналогичных величинам Q 1 (см. п. 5.7) - столбец Sum of Squares.
В столбце Degrees of Freedom приведены степени свободы соответствующих измерений.
В столбце F-for Only Main Effects - вычисленные значения F-статистик для главных эффектов, а в столбце Critical Value of F (p=0,05) - соответствующие критические значения F - распределения для уровня значимости 50%.
В строке Error показаны остаточная составляющая дисперсии (аналогичная Q 2 в п. 5.7) и соответствующая степень свободы.
В строке Total - общая сумма квадратов ошибок по всему эксперименту.
В строке Greand - среднее значение результата исследования (в примере - вероятности) по данным всего эксперимента.
Чем больше значение F-статистики ( F-for Only Main Effects ), тем сильнее эффект. Эффект, а, следовательно, и фактор, считается значимым, если превышает критическое значение ( Critical Value of F ( p=.05 )).
В данном примере факторы А, В и С являются значимыми, так как их F-статистики больше критического значения, равного 7.71.
Наибольший эффект на вероятность обработки запросов оказывают факторы В и А, так как они имеют самые большие и близкие статистики (356,055 и 355.658 соответственно). Обратите внимание, что эффекты факторов А и В противоположны.
Таким образом, по результатам моделирования можно сделать вывод, что при данном потоке и характеристике сервера вероятность обработки запросов в среднем составляет 0,481, т. е. вероятность потерь запросов составляет 0,519. Для уменьшения потерь запросов нужно продолжить исследование каждого значимого фактора и в первую очередь факторов В и А, как наиболее существенных.


