Рефераты. Моделирование ЭВМ p> Для получения ПСЧ будем пользоваться программой gener.

Работая в диалоговом режиме с ПВМ мы определяем структуру генератора, т. е. некоторую исходную информацию: разрядность регистра сдвига ГПСЧ, вид ОС, количество и номера подключенных в цепь ОС разрядов регистра, количество генерируемых чисел и др.

Полученные числа записываются в файл и анализируются (строится гистограмма) с помощью программы analize.

Для генерации чисел мы выбрали 3 различные структуры ГПСЧ:

1) Файл vihod1.dat

Разрядность: 50

Обратная связь: 30

Количество чисел: 1000

Разрядность числа: 25

Число сдвигов: 2

2) Файл vihod2.dat

Разрядность: 50

Обратная связь: 30

Количество чисел: 1000

Разрядность числа: 25

Число сдвигов: 3

3) Файл vihod3.dat

Разрядность: 70

Обратная связь: 35

Количество чисел: 1000

Разрядность числа: 25

Число сдвигов: 6

Проверим качество чисел в файлах программой analize.

Построим гистограммы:

vihod1.dat

vihod2.dat

vihod3.dat

Проверка соответствия чисел в последовательностях требуемому распределению дает следующие результаты: теоретические и статистические данные во всех 3-х файлах по критериям Колмогорова и Х2 не согласуются.

Определение числовых характеристик

|№ |Характеристика |vihod1.dat |vihod2.dat |vihod3.dat |
| 1|наименьшее значение | 0.02 | 0.005 | 0.00059 |
| 2|наибольшее значение | 0.96 | 0.996 | 0.999 |
| 3|Мат. ожидание | 0.39 | 0.51 | 0.49 |
| 4|Дисперсия | 0.078 | 0.086 | 0.085 |
| 5|Среднеквадратич.отклон. | 0.279 | 0.294 | 0.292 |
| 6|Эксцесс | -1.92 | -1.024 | -1.12 |

Определение характеристик корреляции

?(?) ?(?)

1 1

0 ? 0

?

5

5

vihod1.dat vihod2.dat

?(?)

1

0 ?

5

vihod3.dat

Вывод:

1) С увеличением числа сдвигов характеристики чисел улучшаются.

2) Из приведенных 3-ех файлов самые качественные числа находятся в файле vihod3.dat , т. к. числа в последовательности достаточно независимы. Но в то же время нет согласованности по обеим критериям.

3.4.1.2. Программный способ

При программном способе псевдослучайные числа нам необходимо сформировать методом умножения.

Суть метода: выбирается два n - разрядных числа X1 и X2. X1> 0 |
| |? > 0 | |
|Числовые | m | 1/? |
|m характеристики |? |1/? |
|D | | |
|Алгоритм получения | ______ | 1 |
|случайной величины |xi=?-2 ln z1 cos2? z2 |xi=- ---- ln zi |
| |xi+1=?-2 ln z1 cos2? |? |
| |z2 | |
| |( m=0; D=1 ) | |
|Область значений | | |
|случайной величины | | |

Исследование последовательности нормально распределенных ПСЧ.

(Программа в приложении № 3)

Определение числовых характеристик

| | |Теоретическое|Статистическое |
|№ |Характеристика | | |
| | |значение |значение |
| 1|Мин.знач.совокупности | 11 | 12.31 |
| 2|Макс.знач.совокуп-ти | 24 | 25.23 |
| 3|Мат. ожидание | 16 | 16.02 |
| 4|Дисперсия | 2 | 2.07 |
| 5|Сред.квадр.отклонение | 1 | 1.439 |
| 6|Коэфф.ассиметрии | 0 | 0.35 |
| 7|Эксцесс | 0 | 2.716 |

Аппроксимация стат. распределения теоретической функцией.

Проверка соответствия чисел последовательности требуемому распределению дает следующие результаты:

Критерий Хи-Квадрат:

Х2=0.0000813

С доверительной вероятностью 0.999 можно утверждать о согласованности теоретических и статистических данных.

Критерий Колмогорова:

Максимальная разность max| F(x)-F*(x) | = 0.0823

С доверительной вероятностью 0.999 можно утверждать о согласованности теоретических и статистических данных.

Определение характеристик корреляции

?(?)

1

0 ?

5

Рис. 4. График изменения коэффициента корреляции.


Вывод:

Полученная последовательность ПСЧ, имеющая нормальный закон распределения, удовлетворяет предъявленным требованиям по качеству и может быть использована в задачах моделирования, т. к.
- числовые характеристики имеют незначительное отклонение от теоретических значений,
- по критериям согласия получены удовлетворительные значения доверительных вероятностей,
- числа последовательности достаточно независимы, о чем свидетельствует график (Рис. 4.)

Последовательности ПСЧ для 2-го и 3-го пользователей генерируются аналогично, с той лишь разницей, что мат. ожидание у них 17 и 18 соответственно.

Исследование последовательности экспоненциально распределенных ПСЧ


(Программа в приложении № 3)

Определение числовых характеристик

| | |Теоретическое|Статистическое|
|№ |Характеристика | | |
| | |значение |значение |
| 1|Мин.знач.совокупности | 0.5 | 0.8 |
| 2|Макс.знач.совокуп-ти | 3.5 | 2.358 |
| 3|Мат. ожидание | 0.8 | 1.06 |
| 4|Дисперсия | 0.08 | 0.066 |
| 5|Сред.квадр.отклонение | 0.5 | 0.2575 |
| 6|Коэфф.ассиметрии | 0 | 1.682 |
| 7|Эксцесс | 0 | 1.097 |

Аппроксимация стат. распределения теоретической функцией

Проверка соответствия чисел последовательности требуемому закону распределения дает следующие результаты:

Критерий Хи-Квадрат:

Значение Х2=2310

С доверительной вероятностью 0.999 можно утверждать о согласованности теоретических и статистических данных.

Критерий Колмогорова:

Максимальная разность max| F(x)-F*(x) | = 0.023

С доверительной вероятностью 0.91 можно утверждать о согласованности теоретических и статистических данных.

Определение характеристик корреляции

?(?)

1

0 ?

5

Рис. 5. График изменения коэффициента корреляции.

Вывод:

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

3.5. Описание моделирующей программы для стохастической модели

Преобразуем ранее созданную детерминированную модель вычислительной системы в стохастическую модель. Для этого потребуются следующие изменения детерминированной программы:
- вставим программный генератор РРПСЧ - встроенную функцию random( ) возвращающую РРПСЧ в интервале (0,1) - для определения времени между приходами пользователей.
- файл norm-1.dat , имеющий нормальный закон распределения с m=16 , D=2 для определения времени подготовки задания на 1-ой сетевой машине.
- файл norm-2.dat , имеющий нормальный закон распределения с m=17 , D=2 для определения времени подготовки задания на 2-ой сетевой машине.
- файл norm-3.dat , имеющий нормальный закон распределения с m=18 , D=2 для определения времени подготовки задания на 3-ей сетевой машине.
- файл expon.dat , имеющий экспоненциальный закон распределения с m=0.8 для определения времени выполнения задания на ЭВМ.
- уберем функции ввода с клавиатуры которые использовались для ввода параметров системы.

Стохастическая моделирующая программа приведена в Приложении № 4.

4. Получение и интерпретация результатов моделирования

Значения выходных характеристик, полученные при прогонках модели с различными случайными воздействиями.


| № |% выполненных заданий,|
|прогона|поступ. от 2-го |
| |пользователя |
| 1 | 9 % |
| 2 | 9 % |
| 3 | 9 % |
| 4 | 9 % |
| 5 | 9 % |
| 6 | 9 % |
| 7 | 9 % |
| 8 | 9 % |
| 9 | 9 % |
| 10 | 9 % |
|сред.зн| 9 % |
|. | |

Вывод:

Усредненные значения выходной характеристики подтверждают данные детерминированной модели т.к. с введением вероятности прихода второго пользователя равной 0.1 в детерминированную модель теоретическое значение процента выполненных заданий поступивших от второго пользователя становится равным 10 % .

Литература


1. Разработка САПР. № 9

В.М. Черненький. Имитационное моделирование.

2. Лекции по курсу “Моделирование”.

3. Б. Страуструп. Язык программирования С++.

4. Шрайбер Г.Д. Моделирование на GPSS.

5. Е.И. Козелл. от Си к С++.

Приложение № 1

// ЗАДАНИЕ 15. Детерминированная модель системы.
#include
#include

const emb=1; //единица машинного времени

main()
{ int tp=100; //интервал между приходами пользователей int tgz1=160; //время подготовки задания 1-ым пользователем int tgz2=170; //время подготовки задания 2-ым пользователем int tgz3=180; //время подготовки задания 3-им пользователем int tm=8; //время выполнения задания на ЭВМ int k=500; //количество промоделированных на ЭВМ заданий int t=0; //время

char nz=0; //наличие заявки на входе системы char cikl=0; //цикл прихода заявок char pz1=0; //подготовка задания на сетевой машине 1 char pz2=0; //подготовка задания на сетевой машине 1 char pz3=0; //подготовка задания на сетевой машине 1 char znw=0; //наличие заявки на выполнение задания char wz=0; //выполнение задания на ЭВМ char ocher[50]; //очередь char n=0; //индекс свободного элемента в очереди int w2=0; //количество вып. заданий от 2-го пользователя

int ztgz1,ztgz2,ztgz3,ztm,zk; //перем.для запоминания параметров системы

printf("Введите интервал между приходами пользователей "); scanf("%d",&tp); printf("Введите время подготовки задания 1-ым пользователем "); scanf("%d",&tgz1); ztgz1=tgz1; printf("Введите время подготовки задания 2-ым пользователем "); scanf("%d",&tgz2); ztgz2=tgz2; printf("Введите время подготовки задания 3-ым пользователем "); scanf("%d",&tgz3); ztgz3=tgz3; printf("Введите время выполнения задания на ЭВМ "); scanf("%d",&tm); ztm=tm; printf("Введите количество промоделированных на ЭВМ заданий "); scanf("%d",&k); zk=k;

//----------- моделирующий цикл ----------------------------------- while (k!=0)
{ t=t+emb;
//появление пользователя if (t%tp==0) switch (cikl)

{ case 0: nz=1; cikl=1; break; case 1: nz=2; cikl=2; break; case 2: nz=3; cikl=3; break; case 3: nz=1; cikl=0;

}

//начало подготовки задания switch (nz)

{ case 1: pz1=1; nz=0; break; case 2: pz2=1; nz=0; break; case 3: pz3=1; nz=0;

}

Приложение № 1 (продолжение)

//подготовка задания if (pz1==1) if (tgz1==0) {pz1=0; znw=1; tgz1=ztgz1;} else tgz1=tgz1-emb; if (pz2==1) if (tgz2==0) {pz2=0; znw=2; tgz2=ztgz2;} else tgz2=tgz2-emb; if (pz3==1) if (tgz3==0) {pz3=0; znw=3; tgz3=ztgz3;} else tgz3=tgz3-emb;

// запрос на выполнение if (n!=0 && wz==0) { wz=ocher[n-1]; n--; } //если очередь не пуста а
ЭВМ свобода

// то выпол. заявку из очереди if (znw!=0) //если имеется заявка на выполнение if (wz==0) { wz=znw; znw=0; } //если ЭВМ не занята else //если ЭВМ занята, то ставим заявку в очередь

{ if (n>=50) { printf("nПереполнение очереди!n"); return 0; } else { ocher[n]=znw; znw=0; n++; }

}
//выполнение задания на ЭВМ switch (wz)

{ case 1: if (tm==0) {wz=0; k--; tm=ztm; } else tm=tm-emb; break; case 2: if (tm==0) {wz=0; k--; w2++; tm=ztm; } else tm=tm-emb; break; case 3: if (tm==0) {wz=0; k--; tm=ztm; } else tm=tm-emb;

}
} printf("nПроцент вып. заданий, поступ. от 2-го польз.=%d%",100*w2/zk);
}

Приложение № 2


//Генерирование равномерно распределенных случайных величин

#include

long x=7533; //псевдослучайное число

long Rnd(long x) // процедура формирования очередного псевдослучайного числа
{ int l=5169; long k=65536; return (l*x)%k;
}

void main()
{ FILE *fout; //выходной файл случайных величин int i; //параметр цикла

fout=fopen("vi_gpsc1.dat","w"); for(i=1; i=50) { printf("nПереполнение очереди!n"); return 0; } else { ocher[n]=znw; znw=0; n++; }

}
//выполнение задания на ЭВМ switch (wz)

{ case 1: if (tm==0) {wz=0; k--; tm=expon(); } else tm=tm-emb; break; case 2: if (tm==0) {wz=0; k--; w2++; tm=expon(); } else tm=tm- emb; break; case 3: if (tm==0) {wz=0; k--; tm=expon(); } else tm=tm-emb;

}
} printf("nПроцент вып. заданий, поступ. от 2-го польз.=%d%",100*w2/500); fclose(ravn); fclose(norm1); fclose(norm2); fclose(norm3); fclose(exp);
}



Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.