Document 4865318

advertisement
КОМПЬЮТЕРНОЕ
МОДЕЛИРОВАНИЕ
СЛОЖНЫХ СИСТЕМ
Курс лекций
Составитель: Киселева М.В.
каф. Автоматизированных систем
управления
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
Download