Имитационное моделирование.

 

Имитационная модель – это возможно более подробная математическая модель, отражающая структуру и поведение исследуемой или проектируемой системы, её «виртуальный двойник», «аватар». Исследование системы посредством её компьютерной модели называется имитационным моделированием (ИМ) или компьютерным экспериментом. Единичный эксперимент (один «прогон» модели) называется реализацией.

Современная имитационная модель должна предоставлять такие возможности, как:

а) генерация сценариев, наборов исходных данных, правка их в «ручном» и автоматическом режиме;

б) генерация случайных воздействий на систему и случайных изменений её параметров;

в) оптимизация структуры и параметров системы; при необходимости – поиск оптимальных управлений ею;

г) визуализация и анимация результатов компьютерного эксперимента.

 

Современные парадигмы имитационного моделирования.

 

Можно выделить пять основных подходов к построению имитационной модели сложной системы. Эти подходы (концепции) совместно с используемым в них математическим аппаратом называется парадигмами ИМ.

1. Динамические системы.

2. Системная динамика.

3. Системы с дискретными событиями (системы массового обслуживания)

4. Мультиагентные системы.

5. Системы, моделирующие поведение «субъектов с рефлексией».

Гибридные имитационные модели сложных систем используют несколько парадигм.

Разработка имитационной модели «с нуля» – очень трудоемкий процесс. Но существует достаточно универсальные программные средства, поддерживающие ту или иную парадигму, например Simulink (динамические системы) GPSS (дискретно-событийные модели) Stella, Vensim, iThink, Powersim – системная динамика. Из программных средств нового поколения следует выделить российскую среду AnyLogic. В отличие от предыдущих она поддерживает четыре первые парадигмы из указанных выше и (что особенно важно) в ней могут создаваться гибридные имитационные модели.

Разработка программных сред для пятой парадигмы (имитационное моделирование процессов принятия решений, анализ конфликтов и т.п.) – актуальная задача.

 

Компьютерный эксперимент

 

Имитационные модели не поддаются аналитическим методам исследования. Исследование сложной системы (существующей или проектируемой) осуществляется путем организации, планирования и проведения компьютерных экспериментов на имитационной модели этой системы.

Понятие «компьютерный эксперимент» сейчас шире, чем «вычислительный эксперимент», поскольку современные программные среды для имитационного моделирования предоставляют широкие возможности не только для расчетов, но и для символьной математики, а также для визуализации и анимации результатов.

Компьютерный эксперимент находится между натурным экспериментом, физическим моделированием, аналитическим исследованием и умозрительным (вербальным) экспериментом. Он имеет ряд преимуществ перед этими подходами к исследованию систем. И эти преимущества усиливаются по мере развития компьютерной техники и программных средств.

Натурный эксперимент очень дорог или экономически неэффективен, или попросту невозможен – например, для еще не существующей системы.

Физическое моделирование (использование уменьшенных моделей) дает ответы на частные, но не системные вопросы. Например, с его помощью определяется значение параметров системы.

Аналитическое исследование («в формулах») можно провести только для простых моделей. Оно очень важно для первичного понимания системы, но не дает возможности анализировать детально её поведение. А такой анализ может выявить и качественно новые эффекты.

Умозрительный эксперимент работает на основе знаний предметной области, здравого смысла и общих, качественных, интуитивных предположений о поведении системы. Но сложные системы обладают антиинтуитивным поведением, и очевидное на первый взгляд решение оказывается для них неверным [Форрестер]. Это наиболее доступный и часто применяемый вид эксперимента. Но применяя его не следует забывать о двух афоризмах: «любая сложная проблема имеет простое, понятное всем неправильное решение» и «хотели как лучше а вышло как всегда». А почему так получилось? Да потому, что плохо решили (или вообще не решали) экспертную задачу.

 

Виды компьютерных экспериментов

 

Во-первых, различают детерминированный и стохастический эксперимент.

Детерминированный эксперимент («what if», «что если») должен отвечать на вопросы:

«Как работает система при заданных значениях параметров?»

«К каким последствиям могут привести изменения структуры системы и значений её параметров?»

«Что произойдет, если принять некие решения или реализовать некое управление?»

Стохастический эксперимент исследует влияние случайных изменений внешних и внутренних факторов на решение этих задач.

Во-вторых, по назначению различают три вида компьютерных экспериментов (и детерминированных и стохастических)

1. Простой эксперимент. Его цель – отладка модели, проверка её на замкнутость и адекватность, понимание функционирования системы. Он сводится к запуску модели и наблюдению за её поведением при заданных значениях исходных факторов.

Схема простого эксперимента:

 

 

 

или:

,

где: - входные факторы, - выходные значения.

 

2. Проверка (анализ) чувствительности модели. Её цель – оценка области применения модели и оценки влияния изменений факторов на поведение системы

 

 

3. Оптимизационный эксперимент. Его цель – нахождение оптимальных значений параметров системы (а также оптимизация её структуры и управлений)

 

Схема оптимизационного эксперимента

 

- целевая функция, в общем случае - векторная.

 

Существуют два основных подхода к оптимизации системы на основе использования её имитационной модели.

1. Результаты эксперимента («реализации») аппроксимируются некоторой функцией (например, часто используется аппроксимация многочленами: сплайн-аппроксимация), затем решается задача нелинейного математического программирования.

2. Используется встроенный в программное средство универсальный оптимизатор. Как правило, в нем применяется поисковые методы оптимизации: случайный поиск, генетические алгоритмы, «рассеянный поиск» и т.п. Например, такой оптимизатор OptQuest встроен в программное средство AnyLogic. А универсальный математический пакет Maple содержит оптимизатор GOT for Maple (global optimization tool for Maple).

 

 

Этапы разработки модели сложной системы

 

1. Анализ требований (и к проектируемой системе и к модели); уточнение объекта моделирования; оценка необходимых ресурсов.

2. Определение структуры модели (архитектуры).

3. Выбор методов моделирования для частных моделей и выбор программных средств (предварительный).

4. Планирование разработки и распределение работ.

5. Уточнение методов и программных средств, программирование и тестирование частных задач.

6. Синтез частных моделей (задач) и тестирование модели в целом.

7. Идентификация параметров модели.

8. Проверка чувствительности.

9.Оптимизация структуры, параметров и (если необходимо) управлений системы.

Модульний контроль: запитання та задачі Модуль 1. Основи системних наук

Основи теорії систем; структура системних наук

 

1 Иерархия систем в природе и технике

2 Структура системных наук

3 Провести сравнение системных наук с "частными"

4 Определения понятия «система»

5 Примеры систем и «несистем» (кластеров)

6 Классификация систем по происхождению

7 Дайте определение интегративного свойства (эмерджентности), системы, приведите примеры

8 Понятие «структура», связь его с понятиями «система» и «проблема»

9 Системный подход, его значение и ценность в науке и практике

10 Что изучает теория систем?

11 Что изучают системный анализ и прикладной системный анализ?

12 Что изучают системотехника и системный синтез?

13 Иерархия систем: надсистема, подсистема, элемент, связь

14 Понятия «сложная система» и «большая система»; провести сравнение

15 Понятия «элемент», «связь», различие между элементами и связями

16 Связи системных наук с философией и математикой; отличия от них

17 Два основных признака системы; дайте развернутое определение системы

18 Классы систем (по элементам, отношениям) и разделение наук

19 Структура и практическое значение системной науки

20 Краткая история системных наук

 

 

Системний підхід і системний аналіз; суміжні науки

 

1 Системный подход, его методологическое и практическое значение

2 Основные принципы системного подхода

3 Провести сравнение теории систем и системного анализа

4 Провести сравнение системного анализа и прикладного СА

5 Основные задачи системотехники и системного синтеза

6 Эргативные системы и системный синтез

7 Провести сравнение кибернетики и системной науки

8 Провести сравнение синергетики и системного анализа

9 Роль информатики, искусственного интеллекта в системном анализе

10 Исследование операций и его задачи

11 Связь между исследованием операций и системным анализом

12 Почему формулирование проблемы в системном анализе считают наиболее ответственным шагом для ее решения?

13 Каково практическое значение системного анализа в сфере информационных технологий?

14 Перечислите основные системные науки и их «окружение»; дайте

примеры связей между ними