Скачиваний:
8
Добавлен:
28.03.2019
Размер:
1.08 Mб
Скачать

 

ЭВМ1 =

1, если ЭВМ2 занята)*/

sm2,

/*состояние ЭВМ2*/

kr1,

/*количество заявок, выполненных на ЭВМ1*/

kr2,

/*количество заявок, выполненных на ЭВМ2*/

kot,

/*количество отказов в обслуживании пользователей*/

t,

/*текущее

время работы системы*/

tektm1,

/*текущее

время обработки задания на ЭВМ1*/

tektm2,

/*текущее

время обработки задания на ЭВМ2*/

tektps;

/*текущее

время между поступлениями заявок*/

float

 

 

proz ;

/*процент

заявок, выполненных на ЭВМ1*/

main()

 

 

{

 

 

/*установка начальных условий*/

ns=1;

sm1=0;

sm2=0;

kr1=0;

kr2=0;

kot=0;

tektm1=0;

tektm2=0;

tektps=0;

/*ввод параметров системы*/ clrscr();

printf("введите исходные данные(в ед. модельного времени):\n\r"); printf("время между приходом пользователей=>");

scanf("%f",&tps);

printf("\n\r время обработки задания на ЭВМ1=>"); scanf("%f",&tm1);

printf("\n\r время обработки задания на ЭВМ2=>"); scanf("%f",&tm2);

for (t=0; t<=480; t++) /*условие продолжения работы системы*/ { /*изменение текущего времени между заявками*/

if (++tektps>=tps) /*поступила очередная заявка*/

{

ns=1;

tektps=0;

}

if (sm1) /*ЭВМ1 обрабатывает заявку*/ /*изменение текущего времени работы ЭВМ1*/

if (++tektm1>tm1) /*заявка выполнена*/

{

sm1=0; /*освобождаем ЭВМ1*/ tektm1=0;

kr1++;

}

if (sm2) /*ЭВМ2 обрабатывает заявку*/ /*изменение текущего времени работы ЭВМ2*/

if (++tektm2>tm2) /*заявка выполнена*/

{

sm2=0; /*освобождаем ЭВМ2*/ tektm2=0;

kr2++;

}

 

 

if (ns)

/*на входе имеется заявка*/

{

 

 

if (!sm1)

 

{

/*ЭВМ1 свободна*/

 

sm1=1;

/*занимаем ЭВМ1*/

 

tektm1++;

}

 

 

else

/*ЭВМ1 занята*/

if (!sm2)

 

 

{

/*ЭВМ2 свободна*/

 

sm2=1; /*занимаем ЭВМ2*/

 

tektm2++;

 

}

 

 

else

kot++; /*обе машины заняты*/

9

/*отказ в обслуживании*/

ns=0;

}

}/*переход к следующему моменту модельного времени*/

/*система отработала заданное время*/ proz=kr1*100/(kr1+kr2+kot);

/*вывод результатов на экран*/

printf("\n\n\r за 8 часов работы системы на ЭВМ1 выполнено %f",proz, "%% поступивших заявок");

printf("\n\r на ЭВМ2 выполнено %f",(float)kr2*100/(kr1+kr2+kot),

"%% поступивших заявок");

printf("\n\r отказано в обслуживании %f",(float)kot*100/(kr1+kr2+kot), "%% \n\r");

puts("\n\n\rнажмите на <ВВОД>"); getch();

}

Протокол работы программы

Введите исходные данные (в единицах модельного времени): - время между приходом пользователей => 3

- время обработки задания на ЭВМ1

=> 6

- время обработки задания на ЭВМ2

=> 7

За 8 часов работы системы

 

-на ЭВМ1 выполнено 49.6 % поступивших заявок

-на ЭВМ2 выполнено 25.2 % поступивших заявок

-отказано в обслуживании 25.2 %

Нажмите на <ВВОД>

Вывод

Результаты работы моделирующей программы совпадают с рассчитанными теоретически, следовательно, программа написана и работает правильно.

Варьируя параметрами системы, можно сделать вывод о том, что минимальное время простоя оборудования (в частности, ЭВМ2) будет обеспечено, например, при уменьшении времени работы ЭВМ2. при этом не будет отказов в обслуживании.

Порядок выполнения работы

1.Изучить теоретический материал по данной теме.

2.Построить Q-схему.

3.Определить внешние воздействия параметров, характеристики модельного времени.

4.Теоретически оценить результаты ИМ.

10

5.Создать и отладить ИМ.

6.Сравнить полученные результаты функционирования модели с теоретическими.

7.Определить оптимальную структуру вычислительной системы.

8.Оформить и защитить отчет по лабораторной работе.

Лабораторная работа № 2

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

последовательностей на основе регистра сдвига, моделирование генератора

псевдослучайных чисел на основе регистра сдвига

Цель работы: изучение основных способов формирования последовательностей равномерно распределенных чисел; создание файла чисел, формируемых моделью генератора псевдослучайных чисел регистровой структуры.

При реализации статистического моделирования на ЭВМ наиболее часто используются последовательности равномерно распределенных чисел. Они представляют собой некоторое количество чисел, имитирующих выборку равномерно распределенных чисел с заданными параметрами (например, А и В – нижняя и верхняя границы интервала равномерной функции распределения на рис. 4).

При заданных значениях А и В математическое ожидание М и дисперсия D

определяются следующим образом:

М = (А+В) / 2; D = (В-А)2 / 12.

Рис. 4. График функции плотности равномерного закона распределения

11

Широкое распространение находят как случайные числа, так и псевдослучайные. В

качестве источника случайности используются физические шумы в электронных и полупроводниковых приборах, явления распада радиоактивных элементов и т.д. Числа,

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

Если получена последовательность y1,y2,…,yn, равномерно распределенных в интервале

(C, D), то для перехода к последовательностям x1,x2,…,xn из интервала (А, В) применяется следующая формула:

x

 

B A

y

AD BC

, i 1,n

 

 

i

 

D C

i

D C

 

 

 

 

 

При C=0 и D=1 получаем: xi=(В - А)*yi + А.

При С=0 и D=М, где М – целое число, получаем

x

 

B A

y

A

 

i

 

M

i

 

 

 

 

 

На практике используются три основных способа генерирования случайных чисел:

табличный (файловый), программный и аппаратный (физический).

Табличный способ Если сформированные каким-либо способом случайные и псевдослучайные числа

оформить в виде таблицы (массива) и записать их во внешнюю (магнитные диски или ленты)

или оперативную память, то такой способ называют табличным. При реализации этого способа приходится сталкиваться лишь с программными трудностями, связанными с организацией последовательного ввода в ОЗУ больших массивов информации.

Достоинства метода:

-имеется возможность воспроизведения последовательностей;

-требуется лишь однократная проверка чисел.

Недостатки метода:

-запас чисел ограничен;

-тратится много времени на обращение к внешней памяти;

-характеристики случайных воздействий трудно изменить в ходе моделирования.

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

12

Программный способ основан на формировании чисел с помощью специальных алгоритмов, на основе которых создаются процедуры, генерирующие псевдослучайные числа. Псевдослучайными они названы потому, что алгоритмы их формирования являются детерминированными. Зная начальное число, с помощью некоторого рекуррентного выражения однозначно определяются последующие числа. Однако полученные числа удовлетворяют определенным критериям случайности. Подробнее программный способ рассмотрен в лабораторной работе № 3.

Аппаратный способ

При аппаратном способе случайные или псевдослучайные числа вырабатываются специальной электронной приставкой-генератором, который является внешним устройством ЭВМ либо входит в состав процессора. При этом системное обеспечение ЭВМ должно содержать средства доступа к такому устройству.

При каждом обращении такое устройство генерирует в память вычислительной машины случайные либо псевдослучайные числа. Числа от устройства можно получать либо по одному, либо массивами. Признак псевдослучайности, количество чисел задаются пользователем при обращении к процедуре обеспечения доступа к устройству.

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

13

 

 

 

X1

 

 

 

X2

 

 

Xm-1

 

 

 

 

 

 

 

 

 

Xm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R1

 

 

 

 

R2

 

 

..

 

 

Rm-1

 

 

 

Rm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

α1

 

α2

 

αm-1

αm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КС1

 

 

 

КС2

 

..

 

 

КСm-1

 

 

 

КСm

 

α0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5. Структурная схема ГПСЧ регистровой структуры

ГПСЧ состоит из m-разрядного регистра сдвига R1,R2,…, Rm и набора комбинационных схем КС1,КС2 ,…,КСm в цепи обратной связи. Двоичные псевдослучайные символы x1, x2,…, xm

формируются на выходах R1,R2,…, Rm. Регистр сдвига кроме функции хранения предшествующих m символов последовательности x1, x2,…, xm выполняет также их сдвиг в последующем такте, при этом вход Ri формируется схемой КСi. На вход схемы КСi подаются сигнал с выхода Ri при αi=1 и сигнал с КСi+1(i 1,m 1), на вход КСm подаются сигнал с выхода

Rm при αm=1 и внешний сигнал α00=0 или 1). Если αi=0, то сигнал с выхода Ri не подается на вход схемы КСi.

Пусть КС представляют собой сумматоры по модулю 2, α0=0. Тогда состояние схемы

(рис. 5) в момент времени t+1 описывается следующей системой уравнений:

x1(t 1) 1x1(t) 2 x2 (t) ... m 1xm 1(t) m xm (t)x2 (t 1) x1(t)

x3 (t 1) x2 (t)

...

xm (t 1) xm 1(t)

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

14

X(t+1)=A X(t), где

x (t 1)

 

 

 

...

 

 

 

 

x (t)

1

 

 

 

 

m 1

 

 

1

 

 

 

 

 

 

1

2

 

 

m

 

 

 

x

 

(t 2)

 

 

 

 

 

x

 

(t)

2

 

1

 

0

... 0

 

0

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

.

 

 

X (t 1)

 

 

;

A 0

 

1 ... 0

 

0

 

;

X (t)

 

 

.

 

 

 

 

 

.

 

 

 

 

 

 

 

 

.............

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

0

 

0

0

1

0

 

 

 

 

x

 

 

(t 1)

 

 

 

x

 

 

(t)

m

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

Зная матрицу А и состояние выходов регистра R1,R2,…, Rm

в момент времени t (т.е.

вектор-столбец Х(t)), можно определить состояние регистра в (t+S)-й момент времени,

воспользовавшись преобразованием:

X(t+S)=ASX(t).

Последовательности на выходе ГПСЧ являются циклическими, т.е. через определенное количество тактов последовательность повторится. Очевидно, что максимальная длина последовательности равна 2n-1. Однако в зависимости от структуры обратной связи и от исходного состояния регистра сдвига она может быть иной (в частности, даже единичной).

Циклические свойства ГПСЧ определяются характеристическим многочленом матрицы

А:

(x) x

m

1x

m 1

2 x

m 2

... m ,

(1)

 

 

 

которым является определитель матрицы ||А+хЕ||, где Е – единичная матрица.

Периодические свойства последовательностей, генерируемых рассматриваемым ГПСЧ,

связаны с понятиями приводимости и примитивности многочлена вида (1). Если φ(х) степени m

не делится ни на какой другой многочлен от х меньшей степени, то такой многочлен называется неприводимым. Примитивность φ(х) означает, что он не является сомножителем многочлена xS+1 для любого S<(2m-1).

Доказано, что если φ(х) неприводим и примитивен, то генерируется последовательность,

имеющая максимальный период Т=2m-1. В других случаях Т<(2m-1).

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

Для формирования псевдослучайных чисел (ПСЧ) в диапазоне (0,1), представляющих собой правильную дробь, запятая фиксируется перед старшим разрядом числа, тогда с регистра снимается дробная часть двоичного числа.

15

Если съем информации производится в каждом такте, то числа будут коррелированны

(зависимы) между собой. Для уменьшения корреляции между числами съем очередного числа последовательности следует производить лишь через некоторое число тактов, но при этом значительно снижается быстродействие схемы.

Для получения в каждом такте очередного многоразрядного псевдослучайного числа,

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

S – разрядный сдвиг за один такт будет реализован, если в качестве матрицы функционирования схемы взять матрицу Аs (S>1) вместо матрицы А, соответствующей регистру с одноразрядным сдвигом.

Рассмотрим пример многоразрядного сдвига для пятиразрядного генератора (m=5).

В цепь обратной связи регистра включен сумматор по модулю 2. Матрица

функционирования имеет вид:

 

0 1 0

0 1

 

1 0

0

0

0

A

0 1 0

0 0

 

0 0 1 0 0

 

0 0 0 1 0

 

 

 

 

 

Схема данного ГПСЧ приведена на рис. 6.

Осуществим в условиях данного примера двухразрядный сдвиг, т.е. S=2.

Найдем матрицу А2 и составим схему генератора:

 

 

0 1 0 0 1

0 1 0 0 1

1 0 0 1 0

 

 

1 0 0 0 0

1 0 0 0 0

0 1 0 0 1

A

2

A A 0 1 0 0 0

0 1 0 0 0

1 0 0 0 0

 

 

 

0 0 1 0 0

0 0 1 0 0

0 1 0 0 0

 

 

0 0 0 1 0

0 0 0 1 0

0 0 1 0 0

Матрица А определяет структуру генератора следующим образом.

Если в i-й строке матрицы стоит две или более единицы, то это означает, что вход i-го разряда регистра соединен с выходом сумматора по mod 2, причем на входы этого сумматора подаются сигналы с выходов разрядов регистра, номера которых равны номерам столбцов i-й строки,

содержащих единицы. Если в i-той строке стоит одна единица, то это означает, что вход i-того

16

разряда регистра соединен непосредственно с выходом k-того разряда, где k – номер столбца, в

котором стоит единица.

В рассматриваемом примере вид первой строки матрицы А говорит о том, что значение первого и четвертого разрядов регистра сдвига, просуммированное по mod 2, должно поступить в следующем такте на вход первого разряда; вид второй строки показывает, что значение второго и пятого разрядов, просуммированное по mod 2, должно подаваться на вход второго разряда, входы третьего, четвертого и пятого разрядов соединены с выходами первого, второго и третьего разрядов соответственно.

 

 

 

 

X1

 

X2

 

 

X3

 

 

X4

 

 

 

X5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D TT

 

D TT

 

 

D TT

 

 

D TT

 

 

D TT

 

 

ТИ

 

C

1

 

C 2

 

 

C 3

 

 

C 4

 

 

C

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

М2

Рис. 6. Схема пятиразрядного ГПСЧ с одноразрядным сдвигом за один такт

В итоге имеем схему 5-разрядного генератора с 2-разрядным сдвигом за один такт,

показанную на рис. 7.

В зависимости от среды использования ГПСЧ к нему предъявляются разные требования

(по независимости, случайности, равномерности, быстродействию и т.д.). В связи с этим требуется уметь строить и проверять различные схемы ГПСЧ. Поскольку проведение натурных опытов с разными схемами ГПСЧ трудоемко, целесообразно использовать программное средство, позволяющее строить и исследовать различные ГПСЧ на программных моделях. Для этих целей в лабораторной работе используется автоматизированная система подготовки и обработки статистической информации (АСПОСИ), которая представляет собой комплекс программных средств, позволяющих строить математические модели различных ГПСЧ и исследовать их характеристики.

Работая в диалоговом режиме с ПЭВМ, пользователь определяет структуру генератора,

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

17

разрядность и количество генерируемых чисел и др. Сгенерированные ПСЧ записываются в файл. Для запуска системы необходимо вызвать файл GENERATO.EXE.

 

 

X1

X2

X3

X4

X5

D TT

D TT

D TT

D TT

D TT

C

1

C 2

C 3

C 4

C

5

ТИ

 

 

 

 

 

 

 

 

 

 

 

М2

 

 

 

 

 

 

1

М2

2

Рис. 7. Схема пятиразрядного ГПСЧ с двухразрядным сдвигом за один такт

Для оценки качества сгенерированных чисел используется программный комплекс «Автоматизированная система исследования статистической информации» ANALYZE.EXE,

работающий в интерактивном режиме.

Порядок выполнения работы

1.Изучить теоретический материал по данной теме.

2.Решить практическую задачу: в соответствии с произвольно выбранным вектором α,

определяющим структуру ГПСЧ, построить схему конкретного генератора с одноразрядным сдвигом за один такт.

Задав произвольное количество сдвигов S>2, определить матрицу многоразрядного сдвига и построить схему соответствующего ГПСЧ с многоразрядным сдвигом за один такт.

3.Пользуясь диалоговой автоматизированной системой GENERATO.EXE, убедиться в правильности вычисления (п.2) матрицы многоразрядного сдвига.

4.Пользуясь системой GENERATO.EXE, создать файл равномерно распределенных ПСЧ. Зафиксировать введенные данные в отчете по лабораторной работе.

18