Имитационное моделирование, как правило, используется в сугубо практических целях.
1. Формулировка основных вопросов о поведении системы и задание параметров, характеризующих состояние системы, т.е. определение вектора состояния.
2. Декомпозиция (разбиение) системы на более простые части - блоки. В один блок объединяются "родственные", т.е. преобразующиеся по близким правилам, компоненты вектора состояния и процессы, их преобразую щие.
3. Формулируются правила и "правдоподобные" гипотезы относительно поведения системы в целом и ее отдельных частей. В каждом блоке может использоваться свой математический аппарат (алгебраические дифференциальные уравнения, математическое и динамическое программирование и т.п.). Именно это, т.е. блочный способ (принцип), дает возможность установить необходимые пропорции между точностью описания каждого блока, обеспеченностью его информацией и необходимостью достижения цели моделирования.
4. Вводится так называемое системное время, которое моделирует ход времени в реальной системе.
5. Формализованным образом задаются необходимые феноменологические свойства систем в целом и отдельных ее частей. (Часто эти свойства не могут быть обоснованы на современном уровне знаний, а опираются на опыт - длительное наблюдение за поведением системы). Иногда одно такое свойство оказывается эквивалентным множеству сложных математических соотношений и с успехом их заменяет, что, конечно, требует глубокого знания системы.
6. Случайным параметрам, фигурирующим в модели, сопоставляются некоторые их реализации, сохраняющиеся в течение одного или нескольких тактов системного времени. Далее отыскиваются новые реализации.
Как правило, пятый и шестой этапы наиболее просто осуществимы на ЭВМ, поэтому имитационные модели обычно реализуются с использованием специализированных программ, описывающих функционирование отдельных блоков и правила взаимодействия между ними.
Использование реализаций случайных величин требует многократного повторения экспериментов с моделью с последующим статистическим анализом полученных результатов.
Под имитационным моделированием будем понимать пошаговое моделирование поведения объекта с помощью ЭВМ. Это означает, что фиксируются определенные моменты времени t1,t2,...,tn, и состояние модели определяется (вычисляется на ЭВМ) последовательно в каждом из этих моментов времени. Для реализации этого необходимо задать правило (алгоритм) перехода модели из одного состояния в следующее, т.е. преобразование:
, где Yi - состояние модели в i-й момент времени.Пусть, как обычно, состояние модели определяется вектором:
, т.е. m - числами, состояние среды вектором: , n - числами, а состояние управления вектором: , q - числами.Тогда имитационная модель определяется оператором F, с помощью которого можно определить состояние модели в последующий момент времени, т.е. определить вектор Yi+1, зная состояние модели в предыдущий момент времени Yi и значения Хi+1 и Ui+1, т.е.
.Таким образом, в имитационной модели состояние модели определяется рекуррентно на каждом шаге, исходя только из предыдущего шага. Этот алгоритм можно записать в виде рекуррентной формулы:
,где F - оператор имитаций изменения состояния модели. Он и определяет имитационную модель объекта.
Можно рассмотреть частный случай имитационной модели под воздействием окружающей среды в виде:
.Но имитационное моделирование (или модели) тем и хорошо, что позволяет учитывать неконтролируемые факторы Е объекта, т.е. его стохастичность, в этом случае модель можно представить рекуррентным соотношением вида:
, i = 1,...,N, (9.1)где необходимо знать, каким образом фактор Е влияет на состояние Y объекта, т.е. следует хорошо разобраться в объекте и указать точно, как входит неконтролируемый фактор Е в оператор объекта с тем, чтобы эти данные отразить в операторе F объекта. Для работы с такой моделью необходимо знать конкретные значения фактора E, который, как известно, ненаблюдаем. Возникает противоречие, которое решает так называемый метод Монте-Карло. Собственно, как правило, он и является основным методом имитации.
Для реализации метода Монте-Карло необходимо знать некоторые статистические свойства фактора Е (например, закон его распределения). Эти свойства, вообще говоря, могут зависеть от Y, X и U. Располагая этими сведениями, можно моделировать ненаблюдаемый фактор в виде случайных рядов:
, j = 1, 2, ..., N,где индекс внизу соответствует дискретному времени, а верхний ‑ номеру моделируемого ряда (всего моделируется N таких статистически эквивалентных рядов). Естественно, ни один из этих рядов не является точной реализацией действительности, но каждый имеет такие же статистические свойства, что и реальный. Именно поэтому ряды
позволяют исследовать статистические свойства модели (9.1).Так поведение модели " в среднем" описывается как:
, ,где Yij - j-я реализация поведения модели в i-ый момент времени:
i=1,2,....,N.Дисперсия выхода модели вычисляется по формуле:
Таким образом, метод Монте-Карло позволяет оценить статистические свойства поведения объекта путем вероятностного "разыгрывания" поведения модели, причем одна реализация поведения отличается от другой различными значениями ненаблюдаемого фактора Е.
В сущности методом Монте-Карло может быть решена любая вероятностная задача, но оправданным он становится только тогда, когда процедура розыгрыша проще, а не сложнее аналитического расчета.
В задачах исследования операций метод Монте-Карло применяется в трех основных ролях:
1. Моделирование сложных, комплексных объектов и операций, где присутствует много взаимодействующих случайных факторов.
2. Проверка применимости более простых аналитических методов и выяснений условий их применимости.
3. В целях выработки поправок к аналитическим формулам "типа эмпирических формул" в технике.
Таким образом, этот метод является своеобразным ОТК математических методов. При этом статистические модели не требуют серьезных допущений и упрощений. В такую модель вписывается все, что угодно - любые законы распределения, любая сложность системы, множественность ее состояний.
Главный же недостаток таких моделей - их громоздкость и трудоемкость. Огромное число реализаций, необходимое для нахождения искомых параметров с приемлемой точностью, требует большого расхода машинного времени. Кроме этого, результаты такого моделирования труднее осмыслить, чем расчеты аналитическими методами и, соответственно, труднее оптимизировать решение (в основном, наощупь). Наиболее целесообразным является сочетание аналитических и имитационных методов. Как правило, аналитическими методами рассчитываются отдельные элементы и блоки сложной системы, а затем, как из "кирпичиков", строится большая сложная имитационная модель.
Основным элементом, из совокупности которых складывается статистическая модель, является одна случайная реализация моделируемого явления.
Реализация - это как бы один экземпляр случайного явления со всеми присущими ему случайностями. Этим реализации отличаются одна от другой. Отдельная реализация разыгрывается с помощью специально разработанной процедуры (алгоритма), в которой основную роль играет "жребий" или, как говорят, "бросание жребия". Каждый раз, когда в ход явления вмешивается случай, его влияние учитывается не расчетом, а жребием.
Понятие "жребия". Пусть в ходе процесса наступил момент, когда его дальнейшее развитие (а значит и результат) зависит от того, произошло или нет какое-то событие А.
Тогда нужно "бросанием жребия" решить вопрос: произошло событие или нет? Как можно осуществить этот жребий? Необходимо привести в действие какой-либо механизм случайного выбора.
Если жребий бросается для того, чтобы узнать, произошло ли событие А, его нужно организовать так, чтобы условный результат розыгрыша имел ту же вероятность, что и событие А.
Кроме случайных событий на ход и исход операции могут влиять различные случайные величины.
С помощью жребия можно разыграть как значение любой случайной величины, так и совокупности значений нескольких величин.
Условимся называть "единичным жребием" любой опыт со случайным исходом, который отвечает на один из следующих вопросов:
1. Произошло или нет событие А?
2. Какое из событий А1, А2, ..., Аk произошло?
3. Какое значение приняла случайная величина Х?
4. Какую совокупность значений приняла система случайных величин Х1, Х2, ..., Хk?