Чаще всего имитационное моделирование используется для того, чтобы оценить качество возможных решений по управлению сложной системой. Решением будем называть выбор одной альтернативы из некоторого множества рассматри-ваемьгх вариантов. Рациональным решением называется такое решение, которое максимизирует ожидаемую выгоду или полезность системы. Это решение всегда зыбирается в соответствии с некоторым критерием. Иными словами, если мы хотим количественно оценить возможные альтернативы выбора, кроме множеств х и y (см. рис. 9.2) следует ввести показатель эффективности. Обозначим w показатель эффективности системы, который может быть подсчитан по вектору у выходных значений, и пусть w есть множество всех возможных оценок качества решения. Функция Ф из множества y векторов результирующих показателей во множество w оценок качества модели:
.
дает оценку каждому возможному вектору результирующих показателем Оценка вектора исходов может быть выполнена в самой имитационной мо дели, поэтому можно считать, что имитационная модель в детерминирован-ном случае позволяет непосредственно вычислить значение показателя эф-фективности w прин w для каждого прогона модели (рис. 9.7).
В простейшем случае каждый вектор результирующих показателей может быть оценен единым критерием (например, величиной прибыли), позво-ляющим оценить достижение поставленной при моделировании цели. В том случае, когда множество и является множеством вещественных чисел, результаты имитационных экспериментов можно сравнивать. Например, пусти при Ф(у)>Ф(у') вектор результирующих показателей у предпочтительная вектора показателей у' (задача максимизации). Соответственно, альтернатива выбора х, которая приводит к вектору результирующих показателей, будет предпочтительнее альтернативы выбора х', которая приводит к век-дару результирующих показателей у'. При этом функция Ф называется функцией полезности или целевой функцией.
Назовем вектор х тех значений факторов, которые определяют наиболее предпочтительный вариант решения, хопт. Поиск вектора хоптпринад X называется обратной задачей имитационного моделирования. Обратные задачи моделиро-вания отвечают на вопрос:
"Какое решение из области допустимых решений обращает в максимум показа телъ эффективности системы?"
Для решения обратной задачи обычно многократно решается прямая задача В случае, когда число возможных вариантов решений прямой задачи неве-лико, решение обратной задачи сводится к простому перебору всех возмож ных решений прямой задачи. Сравнивая между собой все полученные ре-шения, можно найти одно или несколько наиболее предпочтительных решений (наборов исходных факторов х), для которых величина Ф(у) дос- тигает максимума.
Если перебрать все варианты для получения искомого оптимального реше ния в сложной системе невозможно, используются методы направленого перебора с применением эвристик. При этом оптимальное или близкое к оптимальному решение находится после многократного выполнения после довательных шагов. На каждом таком шаге решается прямая задача модели
рования, т. е. получение для каждого нового набора входных параметров модели вектора результирующих показателей. Правильно подобранная эвристика для выбора очередного варианта набора входных параметров приближает эксперимент к оптимальному решению на каждом шаге.
В качестве блока регистрации значений выходных показателей и выбора очередного приближения при оптимизации (рис. 9.8) пользователь AnyLogic может использовать любой внешний оптимизатор или же использовать оп-тимизатор OptQuest, встроенный в AnyLogic. Оптимизатор OptQuest разработан недавно на основе метаэвристик рассеянного поиска (scatter search) и поиска "табу" (tabu search) [GL97]. Этот оптимизатор является лучшим из предлагаемых сегодня на рынке профессиональных пакетов оптимизации для решения сложных проблем оптимизации.
OptQuest как раз и позволяет решить обратную задачу моделирования: он автоматически находит лучшие значения параметров имитационной модели, соответствующие максимуму или минимуму целевой функции как в условиях неопределенности, так и при наличии ограничений. Оптимизатор OptQuest запускается прямо из среды разработки модели. Мы рассмотрим использование этого оптимизатора на примере.