- •Система «Micro Saint» Содержание
- •Общие сведения об имитационном моделировании в задачах поиска управленческих решений
- •Введение в систему:
- •Этап проведения компьютерного эксперимента с моделью
- •Анализ результатов эксперимента
- •1. Основы процедурного языка
- •1.1. Основные операции языка
- •1.2. Операторы языка
- •1.3. Функции
- •1.4. Переменные
- •2. Законы распределения
1. Основы процедурного языка
1.1. Основные операции языка
Приоритет |
Знак операции |
Смысл операции |
0 |
! |
Операция логического отрицания "НЕ" |
1 |
* / % |
Умножение, деление, остаток от деления |
2 |
+ - |
Сложение, вычитание |
3 |
< > <= >= |
Операции отношения (меньше, больше и т.д.) |
4 |
= = <> |
Операции отношения (равно, не равно) |
5 |
& |
Логическое И |
6 |
| |
Логическое ИЛИ |
7 |
:= |
Присваивание |
Логические операторы сравнивают два числовых значения или логических аргументов. Результат равен 1, если сравнение является истинным, или 0, если сравнение ложно.
1.2. Операторы языка
Условный оператор - обеспечивает выполнение действий, необходимых при выполнении заданных словиях
If условие then оператор1 else оператор2;
If условие then оператор1, оператор2, оператор3 ....;.
Пример: if а + 3 = = 5 then b:= 1, c:= 1;
Цикл While условие then оператор1;
Операторы языка в блоке операторов разделяются между собой знаком «;».
Кроме того, в любое место описания может быть вставлен комментарий – произвольный текст, заключенный в фигурные скобки. Пример: {Это текст комментария}.
1.3. Функции
Функции языка разделяются на две категории: встроенные и определяемые пользователем.
Примерами встроенных функций являются halt() (функция, реализующая оператор остановки модели), poisson(Mean) (датчик случайных чисел) и т. п..
Датчики случайных чисел - реализуют механизмы имитации стохастических факторов. Значения таких факторов характеризуются распределениями вероятностей. Например, когда время между приходами автомобилей на заправочную станцию задается величиной 10±3 ед. времени, подразумевается, что такое время является случайным фактором, значения которого равномерно распределены в интервале [7, 13] единиц времени.
Равномерное распределение вероятностей (Rectangular Distribution, Uniform Distribution) продуцируется функцией random(), которая выдает действительные случайные числа в диапазоне 0,0 ÷ 1,0, и функцией randomInt(min, max), которая выдает целые случайные числа в диапазоне от min до max.
Экспоненциальное распределение (Exponential Distribution) связано с моделированием простейших потоков. В таких потоках время между событиями распределено по экспоненциальному закону. Это распределение характеризуется единственным параметром – средним значением. Вызов функции ехроn(Меаn) вернет в качестве результата значение случайного числа, выбранного из экспоненциального распределения со средним mean. Если в задаче задана интенсивность простейшего потока Int, то среднее время между событиями будет определяться как mean=l/Int. Поэтому для имитации задержек между появлениями событий следует воспользоваться вызовом функции expon(l/Int).
Распределение Пуассона (Poisson Distribution) тесно связано с экспоненциальным распределением: оно характеризует количество событий в простейшем потоке, наблюдаемое за определенный интервал времени. Если задать величину этого интервала (Т) и интенсивность потока (Int), то произведение Mean=(Int*T) будет определять среднее количество событий за интервал времени Т. Эта характеристика является единственным параметром функции poisson(Mean), которая используется как датчик пуассоновских случайных чисел. Использование функции poisson(Mean) возможно и для других задач, например для имитации количества записей в инвентаризационной ведомости, объемов производства деталей в течение рабочего дня и т. п. Функция poisson(Mean) всегда выдает случайные числа, которые являются положительными и целыми.