Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ИМ экзамен.doc
Скачиваний:
107
Добавлен:
19.03.2016
Размер:
1.24 Mб
Скачать
  1. Моделирование простейшей смо на smpl

1. Определение основных событий

Событие

Тип события

Поступление требования в систему

1

Уход требования из системы по окончании обслуживания

2

Основная программа

uses SMPL;

Const evGen = 1 //приход клиентов и резервирование устройства

evRel = 2 // освобождение устройства

evEnd = 3 // окончание моделирования

Procedure Smpl_model;

Программа инициализации

_TIME := 0; // текущее время

transact := 1; //номер транзакта

// далее объявляются все устройства и очереди;

D := _DEVICE(‘master’);

Q := _QUEUE(‘nakopitel’);

//планируем начальное событие

_SCHEDL(evGen,IRANDOM(10,20),transact);

//планируем окончание моделирования

_SCHEDL(evEnd,480,200);

Управляющая секция

Управляющая секция (обычно задается циклом)

repeat

_CAUSE(EVENT,transact);

переменная EVENT должна быть определена в секции инициализации.

Рабочие секции

case EVENT of

until EVENT = evEnd;

evGen:

begin

//Секция первого события

if _STATUS(D)=0 then //если устройство свободно

begin

_RESERVE(D,transact); //занимаем его

_SCHEDL(evRel, IRANDOM(8,16),transact);

// и планируем его освобождение

end

else // иначе ставим транзакт в очередь

_EnQUEUE(Q,transact,0,1);

inc(transact);

_SCHEDL(evGen,IRANDOM(10,20),transact);

//планируем приход следующего клиента

end;

evRel: //Секция второго события

begin

_RELEASE(D); //освобождение устройства

if LENGTH(Q)>0 then //если очередь не пуста

begin // то снимаем транзакт с вершины очереди

transact := _HEAD(Q,AS);

_RESERVED(D,transact); //резервируем устройство

_SCHEDL(evRel,IRANDOM(8,16),transact);

//и планируем его освобождение

end;

Вывод результата моделирования

_MONITOR(F);

_REPORT(F);

Основная процедура

begin

assign(F,’file’);

rewrite(F);

Smpl_model; //обращение к процедуре

close(F);

end.

  1. Генераторы случайныхчисел

Возможно использование трех способов генерации случайных чисел:

- аппаратный (физический);

- табличный (файловый);

- алгоритмический (программный);

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

Один из вариантов реализации заключается в следующем.

Возьмем фиксированный промежуток времени Δt. Если в его течение уровень напряжения превысит пороговое значение четное число раз – записывается ноль, нечетное – единица.

Для получения m-разрядного случайного числа параллельно соединяют m – генераторов.

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

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

- не занимается место в памяти ЭВМ;

Недостатки:

- требуется периодическая проверка и настройка;

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

- требуется специальное устройство;

Табличный способ основан на использовании специальных таблиц, в которых размещены случайные числа, распределенные по какому-либо закону.

В компьютерных моделях такой способ применяется довольно редко.

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

- требуется однократная проверка;

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

Недостатки:

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

- занимает существенное место в памяти (при обращении к внешней памяти требуется время);

Алгоритмический способ основан на формировании случайных чисел в ЭВМ с помощью специальных алгоритмов и реализующих их программ.

С этой точки зрения под генератором случайных чисел (или генератором псевдослучайных чисел согласно заданному распределению вероятностей и обладающий свойством видимости случайности).

Достоинства:

- требуется однократная проверка;

- можно многократно воспроизводить последовательности чисел;

- занимает мало места в памяти;

- не используются внешние (аппаратные) устройства.

Недостатки:

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

- более высокие затраты машинного времени на расчет.

В качестве базового случайного процесса используется повторная выборка из генеральной совокупности значений, равномерно распределенных в интервале (0;1). Используются рекурентные формулы , где i-случайное число определяется начиная с первого случайного числа.

Чаще всего используются так называемые конгруэнтные методы (наиболее распространенный – мультипликативный).

В основе конгруэнтных процедур лежит понятие конгруэнтности.

Два целых числа a и b конгруэнтны (сравнимы) по модулю m, где m – целое число, тогда и только тогда, когда существует такое целое число k, что a-b = km, т.е. если разность a-b делится на m и если числа a и b дают одинаковые остатки от деления на абсолютную величину m.

Рекуррентное соотношение имеет вид:

Xi+1 = λX­i mod M,

где λ,X0 – целые положительные нечетные числа;

М – наиболее удобно выбирать так: M = pg;

где p – основание используемой системы счисления.

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

Пример:

Пусть необходимо получить случайное число , равномерно распределенное в интервале (0;1).

Пусть λ (ядро) = 5167;

X0 = 3729

M = 104 = 10000;

Тогда λXi = 19267743 и случ. число = 0,7743

на 2-м шаге Xi = 7743 , λXi = 40008081, случ. число = 0,8081

и т.д…

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