КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ СЛОЖНЫХ СИСТЕМ Курс лекций Составитель: Киселева М.В. каф. Автоматизированных систем управления 2008 Лекция 17. Имитационное моделирование систем в среде AnyLogic Дополнительные математические и программные возможности Стохастическое моделирование Средства для проведения экспериментов Компьютерное моделирование сложных систем АСУ, 2008 3 Дополнительные математические и программные возможности Непрерывное моделирование Функции, реализуемые в AnyLogic Специальные библиотеки Поддержка совместной разработки моделей Интеграция с базами данных Компьютерное моделирование сложных систем АСУ, 2008 4 Непрерывное моделирование AnyLogic изначально спроектирован и разработан для моделирования всех трех типов процессов: дискретных, непрерывных и гибридных. AnyLogic поддерживает нескольких типов уравнений: дифференциальные: d(x)/dt = f(x,y,t) алгебраические: g(x,y,t) = 0, find(x) формулы: z = h(x,v,t) Компьютерное моделирование сложных систем АСУ, 2008 5 Непрерывное моделирование В исполнительную систему AnyLogic встроен Решатель уравнений, позволяющий решать уравнения различными численными методами: Эйлера, Рунге-Кутта, Радау5, Пауэлла, Ньютона, методы для решения жестких систем и т.д. Компьютерное моделирование сложных систем АСУ, 2008 6 Функции, реализуемые в AnyLogic Встроенные математические функции Алгоритмические функции позволяют использовать Java для задания сложных алгоритмов (if-then-else, loops, DB access, etc). Табличные функции предоставляют простой способ использования табличных данных в модели. AnyLogic поддерживает полиномиальную аппроксимацию и три типа интерполяции: ступенчатую, линейную и сплайн. Компьютерное моделирование сложных систем АСУ, 2008 7 Специальные библиотеки Библиотеки – это множество классов активных объектов, анимаций, классов сообщений и Java модулей, разработанных для упрощения создания моделей в какойнибудь конкретной области. Библиотеки обеспечивают простоту повторного использования объектов в разных моделях. Существует возможность создания собственных библиотек. Компьютерное моделирование сложных систем АСУ, 2008 8 AnyLogic включает библиотеки: Enterprise library, Material flow library, Dynamic Systems library, Business Graphics Library, Agent Based Library, Pedestrian Library. Компьютерное моделирование сложных систем АСУ, 2008 9 Библиотека Enterprise Library Компьютерное моделирование сложных систем АСУ, 2008 10 Поддержка совместной разработки моделей AnyLogic позволяет сохранить модель в текстовом формате XML, что дает возможность использовать программное обеспечение для управления версиями, например, Microsoft SourceSafe, CVS, Rational ClearCase и т.д. Компьютерное моделирование сложных систем АСУ, 2008 11 Интеграция с базами данных Возможна интеграция модели с базой данных, вследствие чего модель получит возможность доступа к базе данных, и можно будет, например, инициализировать и соединять активные объекты, основываясь на информации, хранящейся в базе данных. Интеграция с базой данных может потребоваться, если: параметры активных объектов хранятся в базе данных; в модель требуется внести слишком много данных; база данных разделяется между моделью и другими приложениями. Компьютерное моделирование сложных систем АСУ, 2008 12 Интеграция с базами данных 1 способ. Для интеграции используется связывание с файлом базы данных MS Access или с таблицей MS Excel. 2 способ. Связывание его с источником данных ODBC. Драйверы ODBC позволяют делать модель независимой от типа и местоположения базы данных Компьютерное моделирование сложных систем АСУ, 2008 13 Стохастическое моделирование в среде AnyLogic AnyLogic поддерживает как стохастические так и детерминированные модели. Существуют различные способы описания стохастического поведения (использование различных законов распределений, статистика и т.п.). AnyLogic поддерживает Stat::Fit, специализированное ПО для обработки статистики, которое позволяет подбирать распределения по имеющейся выборке. Компьютерное моделирование сложных систем АСУ, 2008 14 Средства для разработки стохастических моделей В AnyLogic включено 37 генераторов случайных величин с наиболее часто встречающимися вероятностными распределениями: равномерным, экспоненциальным, Бернулли, биномиальным и т.п. Все их можно найти в руководстве пользователя AnyLogic. Компьютерное моделирование сложных систем АСУ, 2008 15 Классы вероятностных распределений Все классы вероятностных распределений унаследованы от класса Distr. Они называются DistrExponential, DistrChi, DistrNormal и т.д. Класс Distr имеет только один абстрактный метод get(), возвращающий случайное значение, сгенерированное по этому закону распределения. Компьютерное моделирование сложных систем АСУ, 2008 16 Классы вероятностных распределений Пользователь может определить свое вероятностное распределение, для чего нужно создать свой класс распределения и унаследовать его от базового класса Distr. Методы классов распределений подробно описаны в Справочнике классов AnyLogic. Вызвать метод очень просто, например, exponential(0.6) uniform(-1,1) который вернет соответствующее случайное значение. Компьютерное моделирование сложных систем АСУ, 2008 17 Моделирование случайных величин AnyLogic включает средства, позволяющие выполнять анализ случайных величин и визуализировать их распределения. Анализ СВ здесь легко выполняется, если СВ представлена набором данных. Компьютерное моделирование сложных систем АСУ, 2008 18 Моделирование случайных величин Для наборов данных автоматически подсчитывается их стандартные характеристики: количество реализаций, среднее, минимальное максимальное значения, дисперсия, СКО, доверительный интервал для среднего значения. 19 Моделирование случайных величин AnyLogic содержит также средствадля быстрого построения гистограмм СВ. Библиотека графики для бизнеса (Business Graphics Library) содержит классы Histogram Simple и Histogram Smart для построения гистограмм. Компьютерное моделирование сложных систем АСУ, 2008 20 Для построения гистограммы распределения СВ нужно выполнить следующее. 1. Ввести в модель новую анимацию 2. В поле анимации ввести прямоугольник, который по умолчанию получит имя rectangle. Гистограмма будет отображаться в пределах этого прямоугольника. 3. В поле редактора модели ввести методом drag-and-drop один экземпляр класса Histogram Simple. 4. В окне его свойств можно установить имя и другие параметры. Компьютерное моделирование сложных систем АСУ, 2008 21 Поддержка экспериментов в AnyLogic AnyLogic поддерживает следующие типы экспериментов: простой эксперимент, эксперимент для варьирования параметров, оптимизационный эксперимент, нестандартный эксперимент. Компьютерное моделирование сложных систем АСУ, 2008 22 Компьютерное моделирование сложных систем АСУ, 2008 23 Простой эксперимент Задачи вида «что – если» (так называемая прямая задача ИМ) в AnyLogic решаются с помощью простого эксперимента. Простой эксперимент (с именем Simulation) создается автоматически при создании проекта. Он позволяет визуализировать модель с помощью анимации, графиков (диаграмм) и т.п. Компьютерное моделирование сложных систем АСУ, 2008 24 Для построения, например, графика зависимости переменных от времени, нужно: в поле анимации построить прямоугольник, в переделах которого будет размещаться график, после чего в любое место поля редактора перенести экземпляр объекта ChartTime из Business Graphics Library, затем в окне свойств данного объекта следует настроить параметры (цвет и толщину линий, имена отображаемых переменных, названия переменных, которые будут отображаться, цвет текста и т.п. ) Компьютерное моделирование сложных систем АСУ, 2008 25 Простой эксперимент Простой эксперимент используется в большинстве случаев при разработке и анализе моделей, созданных в AnyLogic. В частности, он поддерживает средства для отладки модели. Можно организовать несколько простых экспериментов с различными значениями исходных факторов и, сделав один из этих экспериментов текущим, запустить модель на выполнение. Компьютерное моделирование сложных систем АСУ, 2008 26 Эксперимент для варьирования параметров Анализ чувствительности модели – процедура оценки влияния исходных гипотез и значений ключевых факторов на выходные показатели модели. Обычно эксперимент с варьированием параметров и анализом реакции модели помогает оценить, насколько чувствительным является выдаваемый моделью прогноз к изменению гипотез, лежащих в основе модели. Компьютерное моделирование сложных систем АСУ, 2008 27 Эксперимент для варьирования параметров В AnyLogic доступен механизм автоматического запуска модели заданное количество раз с варьированием значений выбранных параметров – это эксперимент для варьирования параметров. При запуске данного эксперимента пользователь может изучить и сравнить поведение модели при разных значениях параметров с помощью графиков. Компьютерное моделирование сложных систем АСУ, 2008 28 Эксперимент для варьирования параметров Чтобы запустить такой эксперимент, нужно выполнить следующее: Создать эксперимент для варьирования параметров (кнопка на панели инструментов или команда Новый эксперимент в контекстном меню элемента Эксперименты) и сделать его текущим. Сконфигурировать эксперимент, выбрав параметры модели, которые вы хотите варьировать, и, задав значения, которые эти параметры должны будут принять за определенное вами количество прогонов модели (в окне свойств данного эксперимента вкладка Общие – перебор значений одного параметра, на вкладке Дополнительные – условие остановки эксперимента по времени). Запустить модель. 29 Эксперимент для варьирования параметров В этом эксперименте также можно организовать фиксированное число прогонов модели, в каждом из которых значения параметров будут определяться выражениями, заданным пользователем. Предопределенное имя index в этих выражениях можно использовать в качестве номера прогона. 30 Эксперимент для варьирования параметров На вкладке Код окна свойств проекта (это окно открывается при выделении имени проекта) в соответствующих полях можно включить код на языке Java, который будет выполняться перед каждым прогоном модели и после каждого такого прогона. Этот вид эксперимента не поддерживает визуализацию работы модели с помощью анимации. 31 Оптимизационный эксперимент Используется для решения задач количественного анализа (расчет показателей эффективности системы). Поиск тех значений факторов, которые определяют наиболее предпочтительный вариант решения, называется обратной задачей ИМ. Компьютерное моделирование сложных систем АСУ, 2008 32 Оптимизационный эксперимент Для решения обратной задачи многократно решается прямая задача. В случае, когда число возможных вариантов решения невелико, решение обратной задачи сводится к простому перебору всех возможных решений. Сравнивая их между собой, можно найти оптимальное решение. Компьютерное моделирование сложных систем АСУ, 2008 33 Оптимизационный эксперимент Если перебрать все варианты решений невозможно, используются методы направленного перебора с применением эвристик. При этом оптимальное или близкое к оптимальному решение находится после многократного выполнения последовательных шагов (решений прямой задачи и нахождения для каждого набора входных параметров модели вектора результирующих показателей). Правильно подобранная эвристика приближает эксперимент к оптимальному решению на каждом шаге. Компьютерное моделирование сложных систем АСУ, 2008 34 Имитационная модель при решении обратной задачи Начальные значения входных факторов Имитационн ая модель Регистрация значений выходных показателей и выбор очередного приближения Компьютерное моделирование сложных систем АСУ, 2008 Условие прекращения эксперимента выполнено 35 Оптимизационный эксперимент В качестве блока регистрации значений выходных показателей и выбора очередного приближения при оптимизации в AnyLogic используется оптимизатор OptQuest Оптимизатор OptQuest разработан недавно на основе метаэвристик рассеянного поиска (scatter search) и поиска «табу» (tabu search). Этот оптимизатор является лучшим из предлагаемых сегодня на рынке профессиональных пакетов оптимизации. Компьютерное моделирование сложных систем АСУ, 2008 36 Чтобы настроить оптимизацию в AnyLogic необходимо выполнить следующее: Создать в разработанной модели оптимизационный эксперимент. Задать оптимизационные параметры и области их изменения. Задать условие остановки модели после каждого прогона. Это может быть либо остановка по времени выполнения прогона, либо остановка по условиям, накладываемым на переменные модели. Задать целевую функцию, т.е. исследуемую реакцию системы. Задать ограничения, которые в конце каждого прогона определяют, допустимо ли значение вектора исходных входных факторов. Ограничения можно не задавать (т.е. это опционально). Задать условия прекращения эксперимента. 37 Нестандартный эксперимент Если пользователю не подходит ни один из стандартных экспериментов, он может создать свой собственный эксперимент, используя Java. При описании эксперимента можно вызывать любые другие эксперименты. Компьютерное моделирование сложных систем АСУ, 2008 38 Нестандартный эксперимент Пример кода: parameter1 = 5; Engine.execute(); if (result < 10 ) optimization1.execute(); FileStream f = new FileStream( "results.txt"); f.println( "best found objective is " + optimization1.getBest() ); Компьютерное моделирование сложных систем АСУ, 2008 39 Список литературы 1. AnyLogic User’s Manual. XJ Technologies (http://www.xjtek.com). 2. AnyLogic Tutorial. XJ Technologies (http://www.xjtek.com). 3. Карпов Ю.Г. Имитационное моделирование систем. Введение в моделирование с AnyLogic 5 / Ю.Г. Карпов. СПб.: БХВ Петербург, 2006. 400 с. 4. AnyLogic. Среда разработки моделей. (http://www.xjtek.ru). 5. AnyLogic. Обзор технических возможностей. (http://www.xjtek.ru). 6. Многоподходное имитационное моделирование в AnyLogic. (http://www.xjtek.ru). 7. Бенькович Е.С., Колесов Ю.Б., Сениченков Ю.Б. Практическое моделирование динамических систем – 40 СПб.: БХВ-Петербург, 2002. – 464 с. Компьютерное моделирование сложных систем АСУ, 2008 41