Моделирование работы системы и определение ее оптимальной структуры
Определение закона и построение формальной схемы функционирования системы. Алгоритмизация модели и ее машинная реализация. Составление алгоритма моделирующей программы, ее верификация (тестирование). Получение и интерпретация результатов моделирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 30.05.2012 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Казанский государственный технический университет
им. А.Н. Туполева
Кафедра КС
Курсовой проект по дисциплине
"Моделирование"
Выполнила:
Оценка: __________________________
Подпись руководителя: _____________
Руководитель проекта:
Захаров В.М. а
Дата защиты: «____»_______________2009 г.
Казань, 2009
Оглавление
1. Концептуальная модель (задание на курсовую работу)
2. Формализация концептуальной модели
2.1 Построение формальной схемы функционирования системы
2.2 Определение параметров и переменных модели, единицы модельного времени
2.3 Определение закона функционирования системы
3. Алгоритмизация модели и ее машинная реализация
3.1 Выбор технических и программных средств моделирования
3.2 Составление алгоритма моделирующей программы
3.3 Описание моделирующей программы для детерминированного варианта модели
3.4 Верификация (тестирование) программы
3.5 Моделирование случайных воздействий
3.5.1 Моделирование случайных воздействий, имеющих равномерное распределение
3.5.1.1 Аппаратный способ
3.5.1.2 Программный способ
3.5.1.3 Выбор генератора равномерно распределенных ПСЧ
3.5.2 Моделирование случайных воздействий, имеющих неравномерное распределение
3.6 Описание моделирующей программы для стохастической модели
3.7 Описание моделирующей программы для стохастической модели на языке GPSS
4. Получение и интерпретация результатов моделирования
4.1 Планирование машинного эксперимента
4.2 Проведение прогонов модели
4.3 Анализ результатов моделирования
5. Заключение
Список литературы
1. Концептуальная модель (задание на курсовую работу)
программа моделирование алгоритм
Задание №121.
В систему через каждые 1.5 ± 0.5 мин. поочередно поступают задания 4-х типов, которые затем обрабатываются на ЭВМ. Время выполнения зависит от типа задания и распределено следующим образом: для задания 1 типа - по экспоненциальному закону с m = 0.7 мин; 2 типа - по нормальному закону с m = 3 мин., у = 1; 3 типа по Гамма закону с у = 1; 4 типа - по равномерному в интервале 2 - 6 мин. Если ЭВМ занята, задания поступают на накопители емкостью 1, причем для каждого задания в системе имеется свой накопитель.
Смоделировать 10 часов работы системы. Определить количество выполняемых запросов второго типа.
1. Варьируя параметрами системы, определить ее оптимальную структуру, обеспечивающую минимальное время простоя обслуживания.
2. Формализация концептуальной модели
2.1 Построение формальной схемы функционирования системы
Моделируемая система представляет собой систему массового обслуживания с непрерывно - стохастическим законом функционирования. Следовательно, в качестве аппарата формализации процессов функционирования рассматриваемой системы, будем использовать типовую Q - схему. Построим структурную схему системы, используя стандартные
обозначения элементов Q-схемы (рис.1).
Рис. 1
В данной схеме использованы обозначения: И - источник заявок, Н1 - накопитель для задания 1, Н2 - накопитель для задания 2, Н3 - накопитель для задания 3, Н4 - накопитель для задания 4, К - ЭВМ.
2.2 Определение параметров и переменных модели, единицы модельного времени
Определим множество внешних воздействий, внутренних параметров, характеристик, существенных для анализа функционирования системы:
tps - время между приходом заявок
tm1, tm2, tm3, tm4 - время обработки на ЭВМ
tektps - текущее время между приходом заявок
tektm1, tektm2, tektm3, tektm4 - текущее время обработки на ЭВМ
tv1, tv2, tv3, tv4 - текущее время обработки, нужно для накопителей
t_stop, t_stop_percent - время простоя (также и в процентах)
sm - активность ЭВМ
ts - тип заявки
kr1, kr2, kr3, kr4 - количество выполненных заявок
kn1, kn2, kn3, kn4 - заявок осталось на накопителе
ko1, ko2, ko3, ko4 - количество отказов
kt1, kt2, kt3, kt4 - общее количество
t - время работы системы
ns - наличие заявки на входе
n1, n2, n3, n4 - накопители
За единицу модельного времени (емв) примем 0.1 минуты.
2.3 Определение закона функционирования системы
С использованием временных диаграмм (в приложении 1) опишем работу системы следующим образом: через определенное время приходит задание и обрабатывается на ЭВМ в течение определенного времени в зависимости от типа. Если ЭВМ занята, заявка оседает на одноместном накопителе (для каждого типа задания свой). В случае, если накопитель занят, задание не выполняется - происходит отказ в обслуживании. На начальном этапе построения модели будем рассматривать детерминированный вариант модели. Для этого при создании детерминированной модели заданной вычислительной системы заменим стохастические потоки их математическими ожиданиями: время между приходом пользователей - 1.5 мин.; время обработки задания 1 - го типа - 0.7 мин.; время обработки задания 2 - го типа - 3 мин.; время обработки задания 3 - го типа - 2 мин.; время обработки задания 4 - го типа - 4 мин. С поступлением заявки в систему, она начинает обрабатываться, если свободна ЭВМ. Итак, после прихода первого задания, оно обрабатывается 0.7 мин. Второе задание обрабатывается в течение 3 мин. К приходу третьего задания ЭВМ занята, и задание отправляется на накопитель. К приходу 4-го задания ЭВМ освобождается, но на ней обрабатывается задание 3, а 4-е отправляется на свой накопитель. Несмотря на довольно плотный поток заданий, в работе ЭВМ наблюдаются простои, которые периодически повторяются. Из диаграммы видно, что, подав на вход системы 400 заявок, мы получим следующие результаты:
Время простоя канала в емв: 20.000000
В процентах: 0.003333
Выполнено заданий (по типам):
51
25
73
75
Осталось на накопителе:
1
1
1
0
Отказ в обслуживании:
48
74
26
25
3. Алгоритмизация модели и ее машинная реализация
3.1 Выбор технических и программных средств моделирования
В качестве технических и программных средств для выполнения курсовой работы по моделированию можно использовать ПВЭМ IBM РС, принтер, в качестве программных средств - пакет Turbo C и разработанные на кафедре ЭВМ КГТУ им. А.Н. Туполева автоматизированную информационную систему формирования последовательностей псевдослучайных чисел (ПСЧ) с равномерным распределением (GENER) и автоматизированную систему статистического анализа информации (STAN). Для статистического анализа и отображения результатов можно использовать также интегрированные пакеты MATHLAB, MATHCAD.
3.2 Составление алгоритма моделирующей программы
3.3 Описание моделирующей программы для детерминированного варианта модели
Представим листинг моделирующей программы:
#include <stdio.h>
#include <conio.h>
#define EMV_MAX 6000
float
tps, // время между приходом заявок
tm1, tm2, tm3, tm4, // время обработки на ЭВМ
tektps, // текущее время между приходом заявок
tektm1, tektm2, tektm3, tektm4, // текущее время обработки на ЭВМ
tv1, tv2, tv3, tv4, // время выполнения. нужно для накопителей
t_stop, t_stop_percent; // время простоя
int
sm, // ЭВМ
ts, // тип заявки
kr1, kr2, kr3, kr4, // количество выполненных заявок
kn1, kn2, kn3, kn4, // осталось на накопителе
ko1, ko2, ko3, ko4, // количество отказов
kt1, kt2, kt3, kt4, // общее количество
t; // время работы системы
bool
ns, // наличие заявки на входе
n1, n2, n3, n4; // накопители
int main()
{
// предустановки
ns = false;
ts = 0; // заявок еще нет, с приходом первой тип будет равен 1
sm = 0;
kr1 = 0; kr2 = 0; kr3 = 0; kr4 = 0;
kn1 = 0; kn2 = 0; kn3 = 0; kn4 = 0;
ko1 = 0; ko2 = 0; ko3 = 0; ko4 = 0;
kt1 = 0; kt2 = 0; kt3 = 0; kt4 = 0;
tektps = 0;
tektm1 = 0; tektm2 = 0; tektm3 = 0; tektm4 = 0;
tv1 = 0; tv2 = 0; tv3 = 0; tv4 = 0;
n1 = false; n2 = false; n3 = false; n4 = false; // пустые
printf("tps (default: 15) = "); scanf("%f", &tps); // 1.5
printf("tm1 (default: 7) = "); scanf("%f", &tm1); // 0.7
printf("tm2 (default: 30) = "); scanf("%f", &tm2); // 3
printf("tm3 (default: 20) = "); scanf("%f", &tm3); // 2
printf("tm4 (default: 40) = "); scanf("%f", &tm4); // 2 ~ 6. avg = 4
for (t = 0; t < EMV_MAX; t++)
{
if (++tektps >= tps) // поступила заявка
{
ns = true;
tektps = 0;
ts++;
if (ts == 5) ts = 1; // циклично
switch (ts)
{
case 1:
kt1++;
break;
case 2:
kt2++;
break;
case 3:
kt3++;
break;
case 4:
kt4++;
break;
}
}
if (sm == 1)
{
if (n1) tv1++; else tektm1++;
if (n1) if (tv1 >= tm1) //заявка выполнена
{
sm = 0;
tv1 = 0;
kr1++;
n1 = false;
}
else if (tektm1 >= tm1) //заявка выполнена
{
sm = 0;
tektm1 = 0;
kr1++;
}
}
else if (sm == 2)
{
if (n2) tv2++; else tektm2++;
if (n2) if (tv2 >= tm2) //заявка выполнена
{
sm = 0;
tv2 = 0;
kr2++;
n2 = false;
}
else if (tektm2 >= tm2) //заявка выполнена
{
sm = 0;
tektm2 = 0;
kr2++;
}
}
else if (sm == 3)
{
if (n3) tv3++; else tektm3++;
if (n3) if (tv3 >= tm3) //заявка выполнена
{
sm = 0;
tv3 = 0;
kr3++;
n3 = false;
}
else if (tektm3 >= tm3) //заявка выполнена
{
sm = 0;
tektm3 = 0;
kr3++;
}
}
else if (sm == 4)
{
if (n4) tv4++; else tektm4++;
if (n4) if (tv4 >= tm4) //заявка выполнена
{
sm = 0;
tv4 = 0;
kr4++;
n4 = false;
}
else if (tektm4 >= tm4) //заявка выполнена
{
sm = 0;
tektm4 = 0;
kr4++;
}
}
else if (sm == 0) // ЭВМ свободна
{
if (ns) // есть заявка на входе
{
if (!(n1 && n2 && n3 && n4)) // все накопители свободны
switch (ts) // тип заявки
{
case 1:
sm = 1; // занимаем ЭВМ
break;
case 2:
sm = 2; // занимаем ЭВМ
break;
case 3:
sm = 3; // занимаем ЭВМ
break;
case 4:
sm = 4; // занимаем ЭВМ
break;
default:
printf("--ERROR-- Unknown type");
return 1;
}
else goto m;
ns = false;
}
else // нет заявки на входе (выполняем с накопителя)
{
m:;
if (n1)
{
sm = 1;
tv1++;
}
else if (n2)
{
sm = 2;
tv2++;
}
else if (n3)
{
sm = 3;
tv3++;
}
else if (n4)
{
sm = 4;
tv4++;
}
else t_stop++; // если не занята ЭВМ и нечего выполнять с накопителя... т.е. тупо стоим на месте
}
}
if (((t == 0) || (t % (int)tps == 0)) && (sm != 0)) // по приходу следующего задания и если занята ЭВМ
{
switch (ts)
{
case 1:
if (!n1) n1 = true;
else ko1++;
break;
case 2:
if (!n2) n2 = true;
else ko2++;
break;
case 3:
if (!n3) n3 = true;
else ko3++;
break;
case 4:
if (!n4) n4 = true;
else ko4++;
break;
}
}
} // for
t_stop_percent = t_stop / EMV_MAX;
kn1 = n1 ? 1 : 0;
kn2 = n2 ? 1 : 0;
kn3 = n3 ? 1 : 0;
kn4 = n4 ? 1 : 0;
printf("Idle time %f, %f in percent\n", t_stop, t_stop_percent);
printf("Success: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", kr1, kr2, kr3, kr4);
printf("Accumulated: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", kn1, kn2, kn3, kn4);
printf("Denied: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", ko1, ko2, ko3, ko4);
printf("Total: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", kt1, kt2, kt3, kt4);
getch();
return 0;
}
3.4 Верификация (тестирование) программы
Протокол работы моделирующей программы
Результаты работы моделирующей программы совпадают с рассчитанными теоретически, следовательно, программа написана и работает правильно.
3.5 Моделирование случайных воздействий.
3.5.1 Моделирование случайных воздействий, имеющих равномерное распределение.
3.5.1.1 Аппаратный способ
Для формирования файлов ПСЧ воспользуемся автоматизированной системой GENERATO, разработанной на кафедре ЭВМ. Данная система моделирует работу генератора псевдослучайных чисел (ГПСЧ), построенного на основе регистра сдвига. Запустив файл с системой GENERATO, пользователь работает в диалоговом режиме с ПЭВМ: определяет структуру генератора: разрядность регистра сдвига, количество и номера подключенных в цепь обратной связи, разрядность и количество генерируемых чисел и др. Сформируем данным способом файл равномерно распределённых ПСЧ. Определим структуру ГПСЧ для создания файла ПСЧ.
Данные:
Число разрядов - 20;
Число подключений в обратную связь - 10;
Номера подключенных разрядов - 2, 3, 5, 7, 9, 11, 13, 15, 17, 18;
Количество генерируемых ПСЧ - 30000;
Разрядность ПСЧ - 30;
Число сдвигов - 15;
Исходное состояние ГПСЧ - 11100111001110011100.
С помощью одной из систем статистического анализа, например, STAN определим характеристики полученных файлов:
Тест на равномерность
Тест комбинаций:
На основании проведенного теста проверенную последовательность чисел можно считать равномерной с доверительной вероятностью
0.001
Тест пар:
Результаты проведенного теста показывают, что распределение 10 старших разрядов случайного числа можно считать равномерным с доверительной вероятностью (по разрядам):
Разряд : > 1 ***** дов. вер. = 0.700
Разряд : > 2 ***** дов. вер. = 0.800
Разряд : > 3 ***** дов. вер. = 0.950
Разряд : > 4 ***** дов. вер. = 0.950
Разряд : > 5 ***** дов. вер. = 0.950
Разряд : > 6 ***** дов. вер. = 0.700
Разряд : > 7 ***** дов. вер. = 0.800
Разряд : > 8 ***** дов. вер. = 0.900
Разряд : > 9 ***** дов. вер. = 0.990
Разряд : >10 ***** дов. вер. = 0.990
Тест многомерной равномерности:
На основании проведенного теста, можно считать проверяемую выборку чисел равномерной с доверительной вероятностью не более 0.800
Тест максимального из t:
Проверяемую выборку чисел можно считать равномерной с доверительной вероятностью не более 0.999
Тест на независимость
Тест корреляции:
На основании исследования корреляционной зависимости чисел проверяемой последовательности данную последовательность можно считать случайной с доверительной вероятностью 0.20
Тест на случайность
Тест монотонности:
На основании исследования монотонности чисел, проверяемую последовательность можно считать случайной с доверительной вероятностью по не убыванию 0.8
********** по не возрастанию 0.9
Тест серий:
На основании проведенного теста последовательность можно считать случайной с доверительной вероятностью 0.8
Тест на периодичность
Период не обнаружен.
Гистограмма распределения
Количественное расхождение равномерного статистического распределения от теоретического определим по критериям согласия Хи-квадрат и Колмогорова, пользуясь STAN.
3.5.1.2 Программный способ
Создадим процедуру для генерации последовательности псевдослучайных чисел.
Процедура для генерации времени прихода заявок:
#include <stdio.h>
float unirand(void);
static long dummy;
/* L'Ecuyer algorithm for uniform random generator with practically endless period. */
#define EPS 1.2e-7
#define RNMX (1.0-EPS)
#define NTAB 32
#define IM1 2147483563
#define IM2 2147483399
#define NWUP 8
#define AM (1./IM1)
#define IMM1 (IM1-1)
#define IA1 40014
#define IA2 40692
#define IQ1 53668
#define IQ2 52774
#define IR1 12211
#define IR2 3791
#define NDIV (1+IMM1/NTAB)
float unirand(void)
{
int j;
long k;
static long dummy2=123456789;
static long iy=0;
static long iv[NTAB];
float temp;
/* initialize the random sequence (first set of coefficients, the
routine close to that in the function above */
if (dummy<=0 || !iy)
{
/* avoid negative or zero seed */
if (dummy<0) dummy=-dummy;
else if (dummy==0) dummy=1;
dummy2=dummy;
/* after NWUP warmups, initialize shuffle table */
for (j=NTAB+NWUP-1;j>=0;j--)
{
k=dummy/IQ1;
if ((dummy=IA1*(dummy-k*IQ1)-IR1*k)<0) dummy+=IM1;
if (j<NTAB) iv[j]=dummy;
}
/* first specimen from the table */
iy=iv[0];
}
/* regular work: generate 2 sequences. */
k=dummy/IQ1;
if ((dummy=IA1*(dummy-k*IQ1)-IR1*k)<0) dummy+=IM1;
k=dummy2/IQ2;
if ((dummy2=IA2*(dummy2-k*IQ2)-IR2*k)<0) dummy2+=IM2;
/* shuffle output combining 2 sequences */
iy=iv[j=iy/NDIV]-dummy2;
iv[j]=dummy;
if (iy<1) iy+=IMM1;
/* return the result, as in the previous function */
if ((temp=AM*iy)>RNMX) return(RNMX);
else return(temp);
}
int main()
{
FILE *pResult = fopen("result.txt", "w");
for(int i = 0; i < 5000; i++) fprintf(pResult,"%f\n", unirand());
fclose(pResult);
return 0;
}
В процедуре используется т.н. «Алгоритм Л'Экюера». Считается одним из наиболее «чистых» генераторов. Впрочем, это нужно подтвердить анализом.
С помощью системы статистического анализа STAN определим характеристики полученного файла.
Числовые характеристики:
Тест на равномерность.
Тест комбинаций:
На основании проведенного теста проверенную последовательность чисел можно считать равномерной с доверительной вероятностью
0.001
Тест пар:
Результаты проведенного теста показывают, что распределение 10 старших разрядов случайного числа можно считать равномерным с доверительной вероятностью (по разрядам):
Разряд : > 1 ***** дов. вер. = 0.001
Разряд : > 2 ***** дов. вер. = 0.700
Разряд : > 3 ***** дов. вер. = 0.500
Разряд : > 4 ***** дов. вер. = 0.500
Разряд : > 5 ***** дов. вер. = 0.300
Разряд : > 6 ***** дов. вер. = 0.700
Разряд : > 7 ***** дов. вер. = 0.950
Разряд : > 8 ***** дов. вер. = 0.500
Разряд : > 9 ***** дов. вер. = 0.800
Разряд : >10 ***** дов. вер. = 0.700
Тест многомерной равномерности:
На основании проведенного теста, можно считать проверяемую выборку чисел равномерной с доверительной вероятностью не более 0.001
Тест максимального из t:
Проверяемую выборку чисел можно считать равномерной с доверительной вероятностью не более 0.001
Тест на независимость.
Тест корреляции:
На основании исследования корреляционной зависимости чисел проверяемой последовательности данную последовательность можно считать случайной с доверительной вероятностью 0.493
Тест на случайность.
Тест монотонности:
На основании исследования монотонности чисел, проверяемую последовательность можно считать случайной с доверительной вероятностью по не убыванию 0.2
************* по не возрастанию 0.2
Тест серий:
На основании проведенного теста последовательность можно считать случайной с доверительной вероятностью 0.8
Тест на периодичность.
Период не обнаружен
Гистограмма распределения и график автокорреляционной функции ()
3.5.1.. Выбор генератора равномерно распределенных ПСЧ.
В качестве генератора ПСЧ для дальнейшего использования в качестве источника равномерно распределенных случайных чисел возьмем генератор, полученный программным способом.
3.5.2 Моделирование случайных воздействий, имеющих неравномерное распределение.
В данной системе согласно заданию требуется сформировать стохастические потоки чисел, распределенные по экспоненциальному, нормальному и Гамма закону. Сформируем файлы с соответствующими законами, по следующим алгоритмам:
a) алгоритм для экспоненциального закона распределения (для m = 0.7):
,
где - равномерно распределенное число из интервала (0, 1);
- очередное число последовательности;
Листинг программы по вышеуказанному алгоритму:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
FILE *f;
float xi=0, z=0,
m=0.7;
float l;
int k=0;
l=1/m;
f=fopen ("exponent.dat", "w");
for (k=1; k<=5000; k++)
{
z=(float)rand()/32765;
xi=-(1/l)*log(z);
fprintf (f, "%f\n", xi);
}
fclose(f);
getch();
}
б) алгоритм для нормального закона распределения (для m = 3, у = 1):
,
где - очередное число последовательности;
Листинг программы по вышеуказанному алгоритму:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<stdlib.h>
void main(void)
{
int j;
float x1,x2, z1,z2,a1,a2;
FILE *f=fopen("norm_zak.dat","w");
for(j=0;j<2500;j++)
{
z1=(float)rand()/RAND_MAX;
z2=(float)rand()/RAND_MAX;
x1=sqrt(-2*log(z1))*cos(2*3.14*z2);
x2=sqrt(-2*log(z1))*sin(2*3.14*z2);
a1=sqrt(1)*x1+3;
a2=sqrt(1)*x2+3;
fprintf(f,"%f\n",a1);
fprintf(f,"%f\n",a2);
}
fclose(f);
}
в) алгоритм для Гамма закона распределения (для m = 2, у = 1)
где xi - очередное число последовательности.
Листинг программы по вышеуказанному алгоритму:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
FILE *f=fopen("gam.txt","w");
double x, alfa=1, beta=2, s = 0;
for (int n=0;n<=5000; n++)
{
for (int i=0;i<=alfa;i++) s+=log((double)rand()/RAND_MAX);
x=beta*s;
s=0;
fprintf(f,"%f\n",x);
}
fclose(f);
return 0;
}
3.5.2.1 Оценка качества чисел, имеющих экспоненциальный закон распределения
В таблице 1 определены числовые характеристики данных ПСЧ.
Плотность распределения для экспоненциального закона распределения имеет вид:
Область значений случайной величины: .
Параметры закона: ,, .
Таблица 1
№ П/П |
Характеристика |
Теорет. значение |
Статистич. Значение |
|
1 |
Наименьшее значение среди Совокупности |
0 |
4.3е-05 |
|
2 |
Набольшее значение среди Совокупности |
6 |
5.82242 |
|
3 |
Математическое ожидание |
0.7 |
0.693583 |
|
4 |
Дисперсия |
0.5 |
0.492673 |
|
5 |
Среднеквадратичное отклонение |
0.7 |
0.701906 |
|
6 |
Коэффициент ассиметрии |
2 |
1.99274 |
|
7 |
Эксцесс |
-2.4 |
-2.38656 |
С помощью системы статистического анализа STAN дадим анализ последовательности случайных чисел, полученной программным путем по алгоритму из п. 3.5.2.
Тест на равномерность
Тест комбинаций:
На основании проведенного теста проверенную последовательность чисел можно считать равномерной с доверительной вероятностью
0.001
Тест пар:
Результаты проведенного теста показывают, что распределение 10 старших разрядов случайного числа можно считать равномерным с доверительной вероятностью (по разрядам):
Разряд : > 1 ***** дов. вер. = 0.001
Разряд : > 2 ***** дов. вер. = 0.001
Разряд : > 3 ***** дов. вер. = 0.001
Разряд : > 4 ***** дов. вер. = 0.001
Разряд : > 5 ***** дов. вер. = 0.001
Разряд : > 6 ***** дов. вер. = 0.001
Разряд : > 7 ***** дов. вер. = 0.100
Разряд : > 8 ***** дов. вер. = 0.700
Разряд : > 9 ***** дов. вер. = 0.100
Разряд : >10 ***** дов. вер. = 0.500
Тест многомерной равномерности :
На основании проведенного теста, можно считать проверяемую выборку чисел равномерной с доверительной вероятностью не более 0.001
Тест максимального из t:
Проверяемую выборку чисел можно считать равномерной с доверительной вероятностью не более 0.001
Тест на независимость
Тест корреляции:
На основании исследования корреляционной зависимости чисел проверяемой последовательности данную последовательность можно считать случайной с доверительной вероятностью 0.12
Тест на случайность
Тест монотонности:
На основании исследования монотонности чисел, проверяемую последовательность можно считать случайной с доверительной вероятностью по не убыванию 0.05
******************** по не возрастанию 0.001
Тест серий:
На основании проведенного теста последовательность можно считать случайной с доверительной вероятностью 0.999
Тест на периодичность
Период не обнаружен.
График автокорелляционной функции
Гистограмма распределения
Полученная нами последовательность ПСЧ, имеющая экспоненциальный закон распределения, удовлетворяет предъявленным требованиям по качеству и может быть использована в стохастической моделирующей программе.
3.5.2.2 Обработка файла чисел, имеющих нормальный закон распределения.
В таблице 2 определены числовые характеристики данных ПСЧ.
Плотность распределения для нормального закона распределения имеет вид:
Область значений случайной величины: . Параметры закона n = 1, 2, 3, …; m=n; D=2*n.
Таблица 2
№ п/п |
Характеристика |
Теорет. значение |
Статистич. значение |
|
1 |
Наименьшее значение среди совокупности |
1 |
0.946141 |
|
2 |
Наибольшее значение среди совокупности |
11 |
10.9494 |
|
3 |
Математическое ожидание |
6 |
5.99285 |
|
4 |
Дисперсия |
2 |
1.98058 |
|
5 |
Среднеквадратичное отклонение |
1.4 |
1.40733 |
|
6 |
Коэффициент ассиметрии |
0 |
-0.0056892 |
|
7 |
Эксцесс |
1.5 |
1.48564 |
С помощью системы статистического анализа STAN дадим анализ последовательности случайных чисел, полученной программным путем по алгоритму из п. 3.5.2.
Тест на равномерность.
Тест комбинаций:
На основании проведенного теста проверенную последовательность чисел можно считать равномерной с доверительной вероятностью
0.001
Тест пар:
Результаты проведенного теста показывают, что распределение 10 старших разрядов случайного числа можно считать равномерным с доверительной вероятностью (по разрядам):
Разряд : > 1 ***** дов. вер. = 0.001
Разряд : > 2 ***** дов. вер. = 0.001
Разряд : > 3 ***** дов. вер. = 0.001
Разряд : > 4 ***** дов. вер. = 0.001
Разряд : > 5 ***** дов. вер. = 0.800
Разряд : > 6 ***** дов. вер. = 0.050
Разряд : > 7 ***** дов. вер. = 0.500
Разряд : > 8 ***** дов. вер. = 0.900
Разряд : > 9 ***** дов. вер. = 0.100
Разряд : >10 ***** дов. вер. = 0.100
Тест многомерной равномерности:
На основании проведенного теста, можно считать проверяемую выборку чисел равномерной с доверительной вероятностью не более 0.001
Тест максимального из t:
Проверяемую выборку чисел можно считать равномерной с доверительной вероятностью не более 0.001
Тест на независимость.
Тест корреляции:
На основании исследования корреляционной зависимости чисел проверяемой последовательности данную последовательность можно считать случайной с доверительной вероятностью 0.5
Тест на случайность.
Тест монотонности:
На основании исследования монотонности чисел, проверяемую последовательность можно считать случайной с доверительной вероятностью по неубыванию 0.001
********* по невозрастанию 0.5
Тест серий:
На основании проведенного теста последовательность можно считать случайной с доверительной вероятностью 0.999
Тест на периодичность.
Период не обнаружен
Гистограмма распределения и график автокорреляционной функции ()
Полученная нами последовательность ПСЧ, имеющая нормальный закон распределения, удовлетворяет предъявленным требованиям по качеству и может быть использована в стохастической моделирующей программе.
3.5.2.3.Обработка файла чисел, имеющих Гамма закон распределения.
В таблице 3 определены числовые характеристики данных ПСЧ.
Плотность распределения для Гамма закона распределения имеет вид:
Область значений случайной величины: . Параметры закона m=б-в; D=б-в2.
Таблица 3
№ п/п |
Характеристика |
Теорет. значение |
Статистич. значение |
|
1 |
Наименьшее значение среди совокупности |
0.25 |
0.279737 |
|
2 |
Наибольшее значение среди совокупности |
9 |
8.23906 |
|
3 |
Математическое ожидание |
2.5 |
2.47889 |
|
4 |
Дисперсия |
1.3 |
1.22612 |
|
5 |
Среднеквадратичное отклонение |
1.1 |
1.1073 |
|
6 |
Коэффициент ассиметрии |
1 |
0.920093 |
|
7 |
Эксцесс |
-1 |
-0.710593 |
С помощью системы статистического анализа STAN дадим анализ последовательности случайных чисел, полученной программным путем по алгоритму из п. 3.5.2.
Тест на равномерность.
Тест комбинаций:
На основании проведенного теста проверенную последовательность чисел можно считать равномерной с доверительной вероятностью
0.001
Тест пар:
Результаты проведенного теста показывают, что распределение 10 старших разрядов случайного числа можно считать равномерным с доверительной вероятностью (по разрядам):
Разряд : > 1 ***** дов. вер. = 0.001
Разряд : > 2 ***** дов. вер. = 0.001
Разряд : > 3 ***** дов. вер. = 0.001
Разряд : > 4 ***** дов. вер. = 0.001
Разряд : > 5 ***** дов. вер. = 0.800
Разряд : > 6 ***** дов. вер. = 0.050
Разряд : > 7 ***** дов. вер. = 0.500
Разряд : > 8 ***** дов. вер. = 0.900
Разряд : > 9 ***** дов. вер. = 0.100
Разряд : >10 ***** дов. вер. = 0.100
Тест многомерной равномерности:
На основании проведенного теста, можно считать проверяемую выборку чисел равномерной с доверительной вероятностью не более 0.001
Тест максимального из t:
Проверяемую выборку чисел можно считать равномерной с доверительной вероятностью не более 0.001
Тест на независимость.
Тест корреляции:
На основании исследования корреляционной зависимости чисел проверяемой последовательности данную последовательность можно считать случайной с доверительной вероятностью 0.5
Тест на случайность.
Тест монотонности:
На основании исследования монотонности чисел, проверяемую последовательность можно считать случайной с доверительной вероятностью по неубыванию 0.001
********* по невозрастанию 0.5
Тест серий:
На основании проведенного теста последовательность можно считать случайной с доверительной вероятностью 0.999
Тест на периодичность.
Период не обнаружен
Гистограмма распределения и график автокорреляционной функции ()
Полученная нами последовательность ПСЧ, имеющая Гамма закон распределения, удовлетворяет предъявленным требованиям по качеству и может быть использована в стохастической моделирующей программе.
3.6 Описание моделирующей программы для стохастической модели
В моделирующую программу с вероятностным законом функционирования внесем в первую некоторые изменения: детерминированные параметры заменим стохастическими потоками чисел, формирующимися по указанным в задании законам. Листинг моделирующей программы со стохастическими потоками чисел представлен ниже.
#include <stdio.h>
#include <stdlib.h> // for atof
#include <conio.h> // for getch
#define EMV_MAX 6000
float
tps, // время между приходом заявок
tm1, tm2, tm3, tm4, // время обработки на ЭВМ
tektps, // текущее время между приходом заявок
tektm1, tektm2, tektm3, tektm4, // текущее время обработки на ЭВМ
tv1, tv2, tv3, tv4, // время выполнения. нужно для накопителей
t_stop, t_stop_percent; // время простоя
int
sm, // ЭВМ
ts, // тип заявки
kr1, kr2, kr3, kr4, // количество выполненных заявок
kn1, kn2, kn3, kn4, // осталось на накопителе
ko1, ko2, ko3, ko4, // количество отказов
kt1, kt2, kt3, kt4, // общее количество
t; // время работы системы
bool
ns, // наличие заявки на входе
n1, n2, n3, n4; // накопители
FILE
*f0 = fopen("ra0.txt", "r"),
*f1 = fopen("exp.txt", "r"),
*f2 = fopen("nor.txt", "r"),
*f3 = fopen("gam.txt", "r"),
*f4 = fopen("rav.txt", "r");
float stohread(FILE *stream);
int main()
{
// предустановки
ns = false;
ts = 0; // заявок еще нет, с приходом первой тип будет равен 1
sm = 0;
kr1 = 0; kr2 = 0; kr3 = 0; kr4 = 0;
kn1 = 0; kn2 = 0; kn3 = 0; kn4 = 0;
ko1 = 0; ko2 = 0; ko3 = 0; ko4 = 0;
kt1 = 0; kt2 = 0; kt3 = 0; kt4 = 0;
tektps = 0;
tektm1 = 0; tektm2 = 0; tektm3 = 0; tektm4 = 0;
tv1 = 0; tv2 = 0; tv3 = 0; tv4 = 0;
fseek(f0, SEEK_SET, 0);
fseek(f1, SEEK_SET, 0);
fseek(f2, SEEK_SET, 0);
fseek(f3, SEEK_SET, 0);
fseek(f4, SEEK_SET, 0);
n1 = false; n2 = false; n3 = false; n4 = false; // пустые
tps = 10 * stohread(f0);
tm1 = 10 * stohread(f1);
tm2 = 10 * stohread(f2);
tm3 = 10 * stohread(f3);
tm4 = 10 * stohread(f4);
for (t = 0; t < EMV_MAX; t++)
{
if (++tektps >= tps) // поступила заявка
{
ns = true;
tektps = 0;
ts++;
if (ts == 5) ts = 1; // циклично
switch (ts)
{
case 1:
kt1++;
break;
case 2:
kt2++;
break;
case 3:
kt3++;
break;
case 4:
kt4++;
break;
}
tps = 10 * stohread(f0);
}
if (sm == 1)
{
if (n1) tv1++; else tektm1++;
if (n1) if (tv1 >= tm1) //заявка выполнена
{
sm = 0;
tv1 = 0;
kr1++;
n1 = false;
tm1 = 10 * stohread(f1);
}
else if (tektm1 >= tm1) //заявка выполнена
{
sm = 0;
tektm1 = 0;
kr1++;
tm1 = 10 * stohread(f1);
}
}
else if (sm == 2)
{
if (n2) tv2++; else tektm2++;
if (n2) if (tv2 >= tm2) //заявка выполнена
{
sm = 0;
tv2 = 0;
kr2++;
n2 = false;
tm2 = 10 * stohread(f2);
}
else if (tektm2 >= tm2) //заявка выполнена
{
sm = 0;
tektm2 = 0;
kr2++;
tm2 = 10 * stohread(f2);
}
}
else if (sm == 3)
{
if (n3) tv3++; else tektm3++;
if (n3) if (tv3 >= tm3) //заявка выполнена
{
sm = 0;
tv3 = 0;
kr3++;
n3 = false;
tm3 = 10 * stohread(f3);
}
else if (tektm3 >= tm3) //заявка выполнена
{
sm = 0;
tektm3 = 0;
kr3++;
tm3 = 10 * stohread(f3);
}
}
else if (sm == 4)
{
if (n4) tv4++; else tektm4++;
if (n4) if (tv4 >= tm4) //заявка выполнена
{
sm = 0;
tv4 = 0;
kr4++;
n4 = false;
tm4 = 10 * stohread(f4);
}
else if (tektm4 >= tm4) //заявка выполнена
{
sm = 0;
tektm4 = 0;
kr4++;
tm4 = 10 * stohread(f4);
}
}
else if (sm == 0) // ЭВМ свободна
{
if (ns) // есть заявка на входе
{
if (!(n1 && n2 && n3 && n4)) // все накопители свободны
switch (ts) // тип заявки
{
case 1:
sm = 1; // занимаем ЭВМ
break;
case 2:
sm = 2; // занимаем ЭВМ
break;
case 3:
sm = 3; // занимаем ЭВМ
break;
case 4:
sm = 4; // занимаем ЭВМ
break;
default:
printf("--ERROR-- Unknown type");
return 1;
}
else goto m;
ns = false;
}
else // нет заявки на входе (выполняем с накопителя)
{
m:;
if (n1)
{
sm = 1;
tv1++;
}
else if (n2)
{
sm = 2;
tv2++;
}
else if (n3)
{
sm = 3;
tv3++;
}
else if (n4)
{
sm = 4;
tv4++;
}
else t_stop++; // если не занята ЭВМ и нечего выполнять с накопителя... т.е. тупо стоим на месте
}
}
if (((t == 0) || (t % (int)tps == 0)) && (sm != 0)) // по приходу следующего задания и если занята ЭВМ
{
switch (ts)
{
case 1:
if (!n1) n1 = true;
else ko1++;
break;
case 2:
if (!n2) n2 = true;
else ko2++;
break;
case 3:
if (!n3) n3 = true;
else ko3++;
break;
case 4:
if (!n4) n4 = true;
else ko4++;
break;
}
}
} // for
fclose(f0);
fclose(f1);
fclose(f2);
fclose(f3);
fclose(f4);
t_stop_percent = t_stop / EMV_MAX;
kn1 = n1 ? 1 : 0;
kn2 = n2 ? 1 : 0;
kn3 = n3 ? 1 : 0;
kn4 = n4 ? 1 : 0;
printf("Idle time %f, %f in percent\n", t_stop, t_stop_percent);
printf("Success: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", kr1, kr2, kr3, kr4);
printf("Accumulated: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", kn1, kn2, kn3, kn4);
printf("Denied: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", ko1, ko2, ko3, ko4);
printf("Total: 1 = %d\n 2 = %d\n 3 = %d\n 4 = %d\n", kt1, kt2, kt3, kt4);
getch();
return 0;
}
float stohread(FILE *stream)
{
char buf[8];
fread(&buf, sizeof(buf)+1, 1, stream);
return atof(buf);
}
3.7 Описание моделирующей программы для стохастической модели на языке GPSS
Применение универсальных языков программировании при реализации имитационных моделей позволяет исследователю достигнуть гибкости при разработке, отладке и испытании модели. Однако языки моделирования, ориентированные на определенную предметную область, являются языками более высокого уровня, поэтому дают возможность с меньшими затратами создавать программы моделей для исследования сложных систем. GPSS как раз является таким «специализированным» языком.
Листинг моделирующей представлен ниже.
XPDIS FUNCTION RN1,C24
0.0,0.0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52
.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9/.99,4.6/.995,5.3
.998,6.2/.999,7.0/.9997,8.0
NORM FUNCTION RN1,C25
0.0,5.0/.00003,4/.00135,3/.00621,2.5/.02275,2
.06681,1.5/.11507,1.2/.15866,1/.21186,.8/.27425,.6
.34458,.4/.42074,.2/.5,0/.57926,2/.65542,.4
.72575,.6/.78814,.8/.84134,1/.88493,1.2/.93319,1.5
.97725,2/.99379,2.5/.99865,3/.99997,4/1.0,5.0
GAMM FUNCTION RN1,C14
0,0/.1,.5/.15,.754/.2,1/.3,1.16/.4,1.2/.5,1.5
.6,1.64/.65,1.697/.8,1.74/.9,1.88/.92,1.860/.96,1.87/1,2
INITIAL X$TASKNO,0
GENERATE 1.5,0.5
SAVEVALUE TASKNO+,1
TEST G X$TASKNO,4,NEXT
SAVEVALUE TASKNO,1
NEXT TEST L X$TASKNO,4,TYPE4
TEST L X$TASKNO,3,TYPE3
TEST L X$TASKNO,2,TYPE2
TYPE1 TEST L Q$OCHERED_1,1,UDAL
QUEUE OCHERED_1
SEIZE EVM
DEPART OCHERED_1
ADVANCE 0.7,FN$XPDIS
RELEASE EVM
TRANSFER ,OUT
TYPE2 TEST L Q$OCHERED_2,1,UDAL
QUEUE OCHERED_2
SEIZE EVM
DEPART OCHERED_2
ADVANCE 1.4,FN$NORM
RELEASE EVM
TRANSFER ,OUT
TYPE3 TEST L Q$OCHERED_3,1,UDAL
QUEUE OCHERED_3
SEIZE EVM
DEPART OCHERED_3
ADVANCE FN$GAMM
RELEASE EVM
TRANSFER ,OUT
TYPE4 TEST L Q$OCHERED_4,1,UDAL
QUEUE OCHERED_4
SEIZE EVM
DEPART OCHERED_4
ADVANCE 2,.1
RELEASE EVM
TRANSFER ,OUT
UDAL SAVEVALUE UDALEN+,1
OUT TERMINATE
GENERATE 600
TERMINATE 1
Результат работы программы представлен ниже:
GPSS World Simulation Report - mod.2.1
Saturday, December 13, 2008 12:43:10
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 600.000 39 1 0
NAME VALUE
EVM 10014.000
GAMM 10004.000
NEXT 5.000
NORM 10002.000
OCHERED_1 10012.000
OCHERED_2 10016.000
OCHERED_3 10017.000
OCHERED_4 10018.000
OUT 37.000
TASKNO 10006.000
TYPE1 8.000
TYPE2 15.000
TYPE3 22.000
TYPE4 29.000
UDAL 36.000
UDALEN 10019.000
XPDIS 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 397 0 0
2 SAVEVALUE 397 0 0
3 TEST 397 0 0
4 SAVEVALUE 99 0 0
NEXT 5 TEST 397 0 0
6 TEST 298 0 0
7 TEST 199 0 0
TYPE1 8 TEST 100 0 0
9 QUEUE 99 0 0
10 SEIZE 99 0 0
11 DEPART 99 0 0
12 ADVANCE 99 0 0
13 RELEASE 99 0 0
14 TRANSFER 99 0 0
TYPE2 15 TEST 99 0 0
16 QUEUE 99 0 0
17 SEIZE 99 0 0
18 DEPART 99 0 0
19 ADVANCE 99 0 0
20 RELEASE 99 0 0
21 TRANSFER 99 0 0
TYPE3 22 TEST 99 0 0
23 QUEUE 99 0 0
24 SEIZE 99 0 0
25 DEPART 99 0 0
26 ADVANCE 99 0 0
27 RELEASE 99 0 0
28 TRANSFER 99 0 0
TYPE4 29 TEST 99 0 0
30 QUEUE 99 0 0
31 SEIZE 99 0 0
32 DEPART 99 0 0
33 ADVANCE 99 0 0
34 RELEASE 99 0 0
35 TRANSFER 99 0 0
UDAL 36 SAVEVALUE 1 0 0
OUT 37 TERMINATE 397 0 0
38 GENERATE 1 0 0
39 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
EVM 396 0.873 1.323 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCHERED_1 1 0 99 1 0.262 1.588 1.604 0
OCHERED_2 1 0 99 40 0.172 1.045 1.753 0
OCHERED_3 1 0 99 43 0.179 1.087 1.921 0
OCHERED_4 1 0 99 39 0.178 1.079 1.780 0
SAVEVALUE RETRY VALUE
TASKNO 0 1.000
UDALEN 0 1.000
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
399 0 600.393 399 0 1
400 0 1200.000 400 0 38
4. Получение и интерпретация результатов моделирования
4.1 Планирование машинного эксперимента
Условимся считать некоторую систему оптимальной, если она в процессе работы удовлетворяет следующим условиям:
- имеет минимальное время простоя оборудования;
- не имеет очередей заявок;
- имеет минимальное количество отказов.
Для сокращения времени простоя оборудования следует увеличить интенсивность поступления заявок в систему. Для уменьшения количества отказов системы, а также заявок в буфере требуется обеспечить ЭВМ минимальным временем обработки задания.
4.2 Проведение прогонов модели
Результаты прогонов модели представлены в таблице 3 и 4.
Таблица 3
Номер выборки |
Время обработки |
Время прихода |
||||
задание 1 |
задание 2 |
задание 3 |
задание 4 |
|||
1 |
4.678524 |
7.387744 |
1.892066 |
3.141524 |
1.285381 |
|
2 |
0.401406 |
6.955822 |
3.219881 |
3.013433 |
1.253358 |
|
3 |
1.150443 |
5.462924 |
4.171411 |
2.373874 |
1.093469 |
|
4 |
0.148594 |
5.470033 |
1.967823 |
4.433988 |
1.608497 |
|
5 |
0.375289 |
3.339091 |
1.777384 |
5.613681 |
1.903420 |
|
6 |
0.513964 |
6.069276 |
0.673940 |
2.783493 |
1.195873 |
|
7 |
0.734293 |
5.660982 |
1.491491 |
3.851814 |
1.462954 |
|
8 |
0.076900 |
6.604973 |
1.330611 |
5.756085 |
1.939021 |
|
9 |
0.136495 |
7.498394 |
2.669363 |
2.508863 |
1.127216 |
|
10 |
0.204553 |
6.825736 |
3.693561 |
3.663724 |
1.415931 |
|
11 |
1.223655 |
8.064825 |
1.841064 |
4.134956 |
1.533739 |
|
12 |
0.106437 |
4.105510 |
1.311796 |
2.429784 |
1.107446 |
|
13 |
0.239249 |
5.412096 |
2.709816 |
3.598684 |
1.399671 |
|
14 |
0.466506 |
5.744754 |
2.297948 |
4.601484 |
1.650371 |
|
15 |
0.833521 |
7.515088 |
3.359421 |
2.108287 |
1.027072 |
|
16 |
2.940513 |
5.465818 |
3.891443 |
2.307899 |
1.076975 |
|
17 |
1.674734 |
6.709087 |
1.889563 |
2.275944 |
1.068986 |
|
18 |
0.706552 |
5.622661 |
3.049714 |
5.407783 |
1.851946 |
|
19 |
1.340638 |
5.979235 |
2.147555 |
4.549383 |
1.637346 |
|
20 |
1.257465 |
5.614409 |
1.944097 |
4.292387 |
1.573097 |
|
21 |
0.008079 |
3.629474 |
2.094030 |
5.609113 |
1.902278 |
|
22 |
0.565689 |
6.884732 |
3.009214 |
5.550705 |
1.887676 |
|
23 |
1.489553 |
7.624091 |
2.239272 |
3.488707 |
1.372177 |
Таблица 4
Номер выборки |
Время обработки |
||||
задание 1 |
задание 2 |
задание 3 |
задание 4 |
||
1 |
51 |
25 |
73 |
75 |
|
2 |
50 |
24 |
72 |
75 |
|
3 |
52 |
25 |
74 |
75 |
|
4 |
50 |
26 |
72 |
75 |
|
5 |
51 |
25 |
74 |
75 |
|
6 |
52 |
24 |
74 |
75 |
|
7 |
50 |
25 |
72 |
75 |
|
8 |
51 |
25 |
73 |
75 |
|
9 |
50 |
26 |
74 |
75 |
|
10 |
51 |
25 |
73 |
75 |
|
11 |
52 |
24 |
72 |
75 |
|
12 |
50 |
25 |
73 |
75 |
|
13 |
51 |
26 |
72 |
75 |
|
14 |
51 |
25 |
74 |
75 |
|
15 |
52 |
24 |
74 |
75 |
|
16 |
51 |
26 |
74 |
75 |
|
17 |
50 |
25 |
72 |
75 |
|
18 |
51 |
25 |
74 |
75 |
|
19 |
52 |
24 |
74 |
75 |
|
20 |
51 |
26 |
74 |
75 |
|
21 |
50 |
25 |
74 |
75 |
|
22 |
51 |
24 |
73 |
75 |
|
23 |
52 |
25 |
73 |
75 |
|
среднее |
51 |
25 |
74 |
75 |
4.3 Анализ результатов моделирования
Значения выходных характеристик, полученные при прогонах модели с различными случайными воздействиями, будут отличны друг от друга. Усредненное по многим прогонам модели значение выходной характеристики незначительно отличается от соответствующей детерминированной величины, что подтверждает правильность работы модели.
Из результатов в п.4.2. видно, что в системе некоторое количество заданий не обрабатываются (уходят в отказ). Следует увеличить время прихода заданий до 20 минут.
Результат приведен на рисунке ниже:
5. Заключение
Как видно из результатов, после оптимизации работы программы, количество отказов снизилось до нуля. Однако, увеличился на несколько тысячных процент простоя канала ко времени работы. В целом процент простоя составляет не более 0,005% к суммарному времени. Оптимизацию можно счесть удачной.
Список литературы
Советов Б. Я., Яковлев С. Я. Моделирование систем: Курсовое проектирование: Учеб. Пособие для вузов по спец. АСУ.-М: Высш. шк., 1988.-135 с.
Глова В. И., Захаров В. М., Маврина Л. Н. Моделирование: Учебное пособие к курсовому проектированию: Казан. Гос. Техн. Университет; Казань, 1997.-42с.
Живетина Т. М., Маврина Л. Н., Песошин В. А. Моделирование вычислительных систем: Лабораторный практикум. - Казань: Изд. КГТУ, 1995.-70 с.
Размещено на Allbest.ru
Подобные документы
Построение концептуальной модели системы и ее формализация. Алгоритмизация модели системы и ее машинная реализация. Построение логической схемы модели. Проверка достоверности модели системы. Получение и интерпретация результатов моделирования системы.
курсовая работа [67,9 K], добавлен 07.12.2009Постановка задачи для машинного моделирования, определение параметров и переменных. Алгоритмизация модели и её машинная реализация. Реализация алгоритма моделирования на общесистемном языке программирования. Описание диалога с пользователем, интерфейс.
курсовая работа [703,1 K], добавлен 14.01.2013Методы материального моделирования в среде GPSS. Построение и разработка концептуальной модели. Алгоритмизация модели и ее машинная реализация. Экспериментальное моделирование на ЭВМ. Определение максимальной длины очереди готовых к обработке пакетов.
курсовая работа [189,0 K], добавлен 14.09.2011Формальная схема и закон функционирования моделируемой вычислительной системы для обработки программ. Составление алгоритма моделирующей программы на языке GPSS и листинга программы для стохастической модели. Верификация программы и анализ результатов.
курсовая работа [347,3 K], добавлен 21.01.2013Построение концептуальной модели и её формализация. Алгоритмизация модели и её компьютерная реализация. Типы моделирующих алгоритмов. Интерпретация результатов моделирования. Структурная схема погрузки готовой продукции. Основные параметры системы.
контрольная работа [816,2 K], добавлен 30.06.2014Построение модели вычислительного центра: постановка задачи, выбор метода моделирования и составление моделирующей программы на языке GPSS. Исследование трехфазной одноканальной системы и определение значений параметров и размеров буферных устройств.
курсовая работа [276,8 K], добавлен 25.06.2011Система массового обслуживания модели функционирования мастерской. Структурная и Q-схемы, построение временной диаграммы, варианты по оптимизации модели. Составление программы на языке имитационного моделирования GPSS и разбор результатов моделирования.
курсовая работа [74,2 K], добавлен 23.06.2011Процесс моделирования работы САПР: описание моделирующей системы, разработка структурной схемы и Q-схемы, построение временной диаграммы, построение укрупненного моделирующего алгоритма. Описание математической модели, машинной программы решения задачи.
курсовая работа [291,6 K], добавлен 03.07.2011Расчет тепловой схемы с применением методов математического моделирования. Разработка алгоритма реализации модели. Составление программы для ПЭВМ, ее отладка и тестирование. Проведение численного исследования и параметрическая оптимизация системы.
курсовая работа [2,8 M], добавлен 01.03.2013Моделирование работы вычислительной системы из двух процессоров и общей оперативной памяти. Структурная схема модели системы. Укрупненная схема моделирующего алгоритма. Результаты моделирования и их анализ. Машинная программа объекта исследования.
курсовая работа [1,0 M], добавлен 21.06.2011