Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки? Спасибо! |
Организация компьютерных экспериментов
Для сохранения матрицы результатов при обнулении переменных перед очередным наблюдением используется команда 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. Для уменьшения потерь запросов нужно продолжить исследование каждого значимого фактора и в первую очередь факторов В и А, как наиболее существенных.