
- •Понятие системы. Эффективность систем
- •Параметры и характеристики систем
- •Модель. Классификация моделей
- •Методы моделирования
- •Метод статистических испытаний
- •Составляющие имитационной модели
- •События в имитационной модели
- •Основные характеристики простейшей смо
- •Компоненты дискретно-событийной имитационной модели и их организация
- •Определение событий и переменных в имитационной модели
- •Smpl: список событий
- •Smpl: список средств
- •Smpl: список очередей
- •Операции инициализации языка smpl
- •Операции над списком событий языка smpl
- •Операции над средствами языка smpl
- •Операции над очередями языка smpl
- •Моделирование простейшей смо на smpl
- •Генераторы случайныхчисел
- •Метод обратной функции и его использование для гененрирования непрерывных случайных величин
- •Метод обратной функции и его использование для гененрирования дискретных случайных величин
- •Выходные данные и стохастические процессы моделирования
- •Характеристики случайного процесса
- •Статистический анализ выходных данных автономной системы. Типы имитационного моделирования.
- •Переходное и установившееся поведение стохастического процесса
- •Оценка средних значений при переходном режиме моделирования
- •Получение заданной точности при переходном режиме моделирования
- •Проблема начального переходного процесса
- •Процедура Велча
- •Общие принципы построения факторных планов
- •Полный факторный эксперимент 2k, построение планов
- •Оценка главных эффектов и эффектов взаимодействия
- •Поверхности отклика и метамодели. Методы поиска оптимума
- •Имитационная модель системы управления запасами
- •Логика программы
- •Общие принципы оценки адекватности моделей
- •Особенности оценки адекватности им
- •Методы верификации моделирующих компьютерных программ
- •Этапы имитационного моделирования
-
Операции инициализации языка smpl
Функция _DEVICE создает заголовок устройства и включает его в список. Возвращает указатель на заголовок устройства, который используется в дальнейшем.
D := _DEVICE (DNAME);
DNAME: string[12];
D: P_DEVICE;
Функция _QUEUE
Создает заголовок очереди и возвращает указатель на заголовок.
Q := QUEUE(QNAME);
Q: P_QUEUE;
QNAME: string[12];
Операция _REINIT используется при завершении моделирования для освобождения динамической памяти.
-
Операции над списком событий языка smpl
Функция _SCHEDL – включает в список событий новый элемент, соответствующий планируемому событию.
_SCHEDL(AE,AT,AJ);
AE – номер или тип события;
AT – промежуток времени, через который должно произойти событие;
AJ – номер транзакта
Время свершения данного события определяется как сумма текущего времени моделирования и значения параметра AT.
_TIME + AT = T
Функция _CAUSE – монитор, удаляет событие из вершины списка.
Текущее время моделирования становится равным времени свершения данного события.
Обращение к функции: _CAUSE(AE,AJ);
Функция _CANCEL – отыскивает в списке ближайшее по времени событие с указанным номером-транзактом. Найденное событие удаляется из списка, а функция возвращает разность между текущим временем моделирования и временем, когда должно было произойти данное событие.
T := _CANCEL (AE,AJ)
-
Операции над средствами языка smpl
Функция _RESERVE
При обращении к ней указанное устройство резервируется за заданным транзактом.
_RESERVE(D,AJ);
D – указатель на заголовок устройства, возвращаемый функцией DEVICE.
AJ – номер заявки
B := _TIME – текущее время моделирования
J := номер транзакта AJ
Функция _RELEASE
Освободить указанное средство, занятое функцией _RESERVE.
Обращение _RELEASE(D);
Z := Z+1; - количество завершенных операций обслуживания
J := 0
SB := SB + _TIME-B;
Функция _STATUS
Возвращает 0, если устройство свободно, или номер транзакта, занимающего устройство.
-
Операции над очередями языка smpl
Операция _EnQUEUE
Помещает заявку в очередь, результатом является новый элемент, который включается в очередь в соответствии с указанным приоритетом.
_EnQUEUE(Q,AJ,AI,AS)
Q – заголовок очереди, возвращаемый функцией _QUEUE
AJ – номер транзакта;
AI – приоритет;
AS – стадия обработки транзакта
STQ := STQ + LEN (_TIME – TLAST); - средневзвешанная по времени длина очереди
LEN := LEN +1;
TLAST := _TIME;
Иногда может быть модифицировано поле MAX
Функция _HEAD
Удаляет транзакт из вершины очереди и возвращает номер этого транзакта.
J := _HEAD(Q,AS)
Q
AS
J
Модификация полей:
STQ := STQ + LEN(_TIME-TLAST);
SW := SW+(_TIME-T);
SW2:=SW2+(_TIME-T)2;
LIST := NEXT1;
TLAST := _TIME;
LEN := LEN -1;
COUNT := COUNT +1;
Функция _LENGTH
Возвращает текущее содержимое соответствующей очереди
L
L := _LENGTH(Q);
Q - заголовок очереди
Функция IRANDOM(M1,M2)
Разыгрывает случайное число, равномерно распределенное в диапазоне M1,M2.
N := IRANDOM(M1,M2);
Функция NEGEXP(M)
Разыгрывает случайную величину с экспоненциальным распределением
N := NEGEXP(M);
N : LONGINT; - возвращаемое число из распределения
M – среднее значение случайной величины