Автор: Пользователь скрыл имя, 26 Июля 2011 в 11:31, курсовая работа
Целью данного курсового проекта является построение имитационной модели вычислительной сети и определение её оптимальных критериев для минимизации убытков.
Введение 4
1 Описание моделируемой системы и задание на моделирование 6
2 Структурная схема модели системы 8
3 Результат работы модели 16
4 Эксперимент пользователя 17
5 Расчет статистических показателей 26
Заключение 30
Список использованной литературы 31
Приложение А 32
Приложение Б 38
end;
end;
Получим
" Optimum.Summ -181924. Capacity 5. k time 35."
Перепроверим значение с помощью эксперимента go(5,35):
"Summ -181924. Capacity 5. k time 35."
Следовательно
полученное значение верно для стандартной
ёмкости накопителя. Запустим ещё несколько
экспериментов с различными ёмкостями
для сравнения.
Таблица 2 – Результаты эксперимента go с заданными параметрами
Ёмкость накопителя | Время Tavr | Суммарные затраты |
5 | 34 | -186409 |
6 | 30 | -215189 |
7 | 28 | -235239 |
Отметим, что и при увеличении ёмкости накопителя или уменьшении времени обработки сумма затрат не становится меньше полученной в ходе оптимизационного эксперимента.
При Tavr=35 отсутствуют затраты на обработку сообщений в авральном режиме. Поскольку k=0, k*S2*X$AVRCOUNT=0. Например при k=1 в приведённом выше примере данное выражение=1*5*897=4485 единиц стоимости. Отсутствие затрат этого рода перевешивает убытки от потерянных сообщений.
Также равны нулю и затраты на увеличение ёмкости входных накопителей 10#X$ALLENTERS#(Ncapacity-5).
Фактически k=0 означает, что авральный режим не изменяет времени обработки сообщений, поэтому было бы целесообразно вообще убрать его – в этом случае затраты S4*X$AVRTIME*N также стали бы равны 0. Однако это не предусмотрено условием задачи, поэтому остановимся на полученных показателях ёмкости и времени обработки.
Отметим,
что в остальных вариантах
наблюдается аналогичная
5 Расчет статистических
показателей
В
результате выполнения 10 прогонов
были получены 10 матриц размерностью 1*20.
Замеры производились каждые 500 микросекунд.
Получили матрицу размерностью 1*20, которая
была получена путем усреднения 10 исходных
матриц.
Рисунок
8 – Динамика суммарных затрат
Чтобы
выровнять высокочастотные
Данный ряд необходимо сгладить с помощью процедуры Велча. Данная процедура была написана на языке Delphi:
procedure TForm1.velch(w: integer);
var m, S: integer;
sum: real;
begin
for m:=1 to 20-w do
begin
Sum:=0;
if m<=w then
begin
for S:=-(m-1) to (m-1) do
Sum:=Sum+Res1[m+s];
Res2[m]:=trunc(Sum/(2*m-1));
end
else
begin
for S:=-w to w do
Sum:=Sum+Res1[m+s];
Res2[m]:=trunc(Sum/(2*w+1));
end;
end;
end;
Где w - это окно; w является положительным целым числом из условия, w £ [m/4];
Res1[], Res2[] – массив исходных данных и результирующий массив соответственно. Для сравнения применим процедуру Велча для двух значений w.
Рисунок
9 – Результат сглаживания с помощью процедуры
Велча
Можно
предположить, что система выходит
на установившийся режим после 1500
микросекунд работы. Отбросим первые 3
значения и рассчитаем параметры данной
системы:
Рисунок
10 – Результат удаления начальных данных
Среднее значение находим по формуле средней арифметической:
и получаем, что средние суммарные затраты за 500 микросекунд равны 101535,9.
Необходимо рассчитать дисперсию:
Получаем, что дисперсия равна 210,638.
Для расчета
доверительного интервала воспользуемся
формулой:
где t – коэффициент распределения Стьюдента. В данном случае он равен 2,306.
В итоге получаем, что доверительный интервал:
Заключение
В ходе выполнения данной курсовой работы были выполнены все поставленные перед ней задачи.
Была создана имитационная модель работы системы обработки информации. В ходе проектирования модели была построена концептуальная модель, представленная в виде Q-схемы, а также математическая модель.
Над
полученной моделью был проведен
ряд экспериментов для
Таким образом, поставленная во введении цель достигнута
Список использованной
литературы
1.
Савина, О.А. Имитационное
2. Савина, О.А. методические указания к выполнению курсовых работ по дисциплине “Моделирование экономических процессов” [Текст]/О.А.Савина. – Орел: ОрелГТУ, 1999. – 59 с.
3.
Боев, В.Д. Моделирование систем.
Инструментальные средства
4.
Олькина, Е.В. Методические
5.
Моделирование в GPSSWorld [Электронный
ресурс]. – Режим доступа: http://www.intuit.ru/
Приложение А
(обязательное)
Листинг
программы (вариант 1)
Ncapacity EQU 5 ;ёмкость накопителя
Tavr EQU 34 ;время обработки в авральном режиме
SUMM VARIABLE -(10#X$ALLENTERS#(Ncapacity-5)
GENERATE 11,5 ;буферизация
QUEUE BUFF
SEIZE MULTICHANNEL
DEPART BUFF
ADVANCE 9,3
RELEASE MULTICHANNEL
SELECT MIN EVM,1,3,,Q ;выбор минимальной очереди
TEST L Q*EVM,Ncapacity,GOOUT ;сравнение с ёмкостью накопителя
SAVEVALUE ALLENTERS+,1 ;учёт всех обработанных сообщений
QUEUE P$EVM ;стандартная обработка
QUEUE MAINSTREAM
TEST L Q$MAINSTREAM,9,AVRALMODE ;сравнение содержимого очереди и 3N
SEIZE P$EVM
DEPART MAINSTREAM
DEPART P$EVM
ADVANCE 35 ;стандартная задержка
RELEASE P$EVM
TERMINATE 1
AVRALMODE SAVEVALUE AVRCOUNT+,1 ;обработка в авральном режиме
SEIZE P$EVM
DEPART MAINSTREAM
DEPART P$EVM
MARK AVRINT
ADVANCE Tavr ;уменьшенная задержка
RELEASE P$EVM
SAVEVALUE AVRTIME+,MP$AVRINT ;учёт времени работы в авральном режиме
TERMINATE 1
GOOUT SAVEVALUE LOOSE+,1 ;учёт потерянных сообщений
TERMINATE
START 1000
experiment go(Par1,Par2)
begin
temporary CurYield, ShowString, CommandString;
Ncapacity=Par1;
Tavr=Par2;
CurYield=GetResult();
ShowString= PolyCatenate("Summ ", String(CurYield), ". ");
ShowString=PolyCatenate(
ShowString=PolyCatenate(
DoCommand(PolyCatenate("SHOW
""",ShowString,"""",""));
END;
procedure GetResult()
begin
temporary Sum, CurYield,Ind_i;
Ind_i=1;
Sum=0;
while (Ind_i<4)do
begin
CurYield=DoTheRun(Ind_i);
Sum=Sum+ CurYield;
Ind_i=Ind_i+1;
end;
Return (Sum/(Ind_i-1));
end;
procedure DoTheRun(Run_Number)
begin
DoCommand("Clear off");
temporary CommandString;
CommandString=Catenate("RMULT ",Run_Number#3);
DoCommand(CommandString);
DoCommand("Start 1");
Return (-(10#X$ALLENTERS#(Ncapacity-
end;
experiment SeekOpt()
begin
temporary ShowString, CommandString;
temporary Prev1, Cur1, Flag1, Tprev;
Ncapacity=4;
Prev1=100000;
Flag1=1;
while (Flag1 'NE' 0) do
begin
Ncapacity=Ncapacity+1;
Tavr=36;
while (Tavr 'GE' 2) do
begin
Tprev=Tavr;
Tavr=Tavr-1;
Cur1=GetResult();
if(Cur1<Prev1) then
begin
if (Prev1<0) then
begin
ShowString=PolyCatenate(" Optimum.Summ ", String(Prev1),".");
ShowString=PolyCatenate(
ShowString=PolyCatenate(