От системной динамики и традиционного ИМ –
к практическим агентным моделям:
причины, технология, инструменты
Андрей Борщёв
ООО «Экс Джей Текнолоджис» XJ Technologies www.xjtek.com
и Санкт-Петербургский Государственный Политехнический Университет
Офис 101, дом 21 Политехническая улица, Санкт-Петербург 194021 Россия
Тел: +7 812 2471674 Факс: +7 812 2471639
[email protected] Аннотация Рассматривайте эту статью как практическое руководство для аналитиков-“симуляционистов”, которые хотели бы добавить к своему инструментарию агентное моделирование, ныне вполне для этого созревшее.
Предполагается, что читатель имеет базовые знания в системной динамике или дискретно-событийном имитационном моделировании. Мы рассмотрим моделирование в приложении к системам, содержащим большие количества активных объектов (людей, животных, машин, предприятий или даже проектов, активов, товаров, и т.п.), которые объединяет наличие элементов индивидуального поведения, от сложных (цели, стратегии) до самых простых (временные ограничения, события, взаимодействия). Мы сравним, как три основные подхода, сложившиеся в современном имитационном моделировании – системная динамика, дискретнособытийное моделирование и агентное моделирование – предлагают анализировать такие системы. Мы покажем, как построить агентную модель по существующей системно-динамической или дискретно-событийной, и продемонстрируем, как просто она может быть расширена для учёта более сложных поведений, зависимостей и взаимодействий, чтобы предоставить вам более глубокую и точную информацию о моделируемой системе. На протяжении всей статьи используются классические примеры; все модели сформулированы на графическом языке пакета AnyLogicTM. Мы рассматриваем агентное моделирование ни в коем случае не как замену традиционным подходам, а как весьма полезное дополнение к системной динамике и дискретно-событийному моделированию; мы также предлагаем несколько комбинированных модельных архитектур.
Ключевые слова: имитационное моделирование, агентное моделирование, системная динамика, дискретно-событийное моделирование, AnyLogic 1. Имитационное моделирование: уровни абстракции, основные подходы Чтобы убедиться, что мы одинаково понимаем используемую базовую терминологию, пожалуйста, посмотрите на Рис 1. Моделирование – один их способов решения проблем, возникающих в реальном мире. Моделирование применяется в случае, если эксперименты с реальными объектами/системами или их прототипирование невозможно или слишком дорого. Моделирование позволяет нам оптимизировать систему до её реализации. Моделирование включает в себя отображение проблемы из реального мира в мир моделей (процесс абстракции), анализ и оптимизацию модели, нахождение решения, и отображение решения обратно в реальный мир. Мы различаем аналитическое и имитационное моделирование. В аналитической модели выход функционально зависит от входа (набора параметров), и в этом смысле она – статическая; такую модель можно реализовать в виде электронных таблиц. Это требует от аналитика владение всего лишь общепринятыми программными средствами, например, Excel. Однако, к сожалению, аналитические решения не всегда существуют, а существующие не всегда просто найти. И тогда аналитики применяют имитационное моделирование (ИМ, английский термин – simulation modeling), которое мы по контрасту можем назвать динамическим. Имитационную модель можно рассматривать как множество правил (дифференциальных уравнений, карт состояний, автоматов, сетей и т.п.), кторые определяют в какое состояние система перейдёт в будущем из заданного текущего состояния. Имитация здесь – это процесс “выполнения” модели, проводящий её через (дискретные или непрерывные) изменения состояния во времени. В общем случае, для сложных проблем, где время и динамика важны, имитационное моделирование представляет собой более мощное средство анализа.
Аналитика Оптимизированная модель Модель Y = f(X) Имитация время Мир моделей Реальный мир ?
Эксперименты Проблема Решение Рис 1: Аналитическое (статическое) и имитационное (динамическое) моделирование Уровни абстракции в имитационном моделировании На Рис 2 показан примерный (безусловно, неполный) круг практических задач, к которым эффективно применяется имитационное моделирование. Задачи эти расположены на шкале уровня абстракции, который используется в соответствующих моделях.
На самом детальном уровне мы имеем так называемое “физическое” моделирование, где рассматриваются конкретные материальные объекты с их точными размерами, расстояниями, скоростями, ускорениями и временами. Таким образом, внизу нашей шкалы расположены модели систем управления, мехатронных систем, уличное и пешеходное движение, моделируемое на микро-уровне и т.д. Модели производств с конвейерами, станциями, операторами расположены выше, поскольку обычно здесь мы можем себе позволить абстрагироваться от точных физических траекторий и времён и использовать их усреднённые или стохастические значения. То же относится к моделям складской логистики с автопогрузчиками, паллетами, стеллажами и т.п.
Высокий уровень Агрегаты, глобальные причинные зависимости, динамика обратных связей, … абстракции [меньше деталей Рынок и конкуренция Динамика населения макро уровень Экосистемы стратегический Динамика персонала Экономика уровень] здравоохранения Управление проектами Средний уровень абстракции детальность [больше деталей микро уровень оперативный Отдельные объекты, точные размеры, расстояния, скорости, времена, … Рис 2: Приложения имитационного моделирования на шкале уровня абстракции Модели бизнес-процессов и систем обслуживания оперируют обычно лишь с временами и расписаниями, хотя физическое перемещение иногда и принимается в расчёт. Например, в здравоохранении при моделировании обычного отделения больницы в основном важны количество и график работы персонала, оборудование и, естественно, поток пациентов и логика работы с ними, в то время как для отделения скорой помощи может быть учтена конфигурация здания, длины коридоров и т.д.
При моделировании транспортных и компьютерных сетей важны расписания, задержки, мощности и ёмкости, времена погрузки/разгрузки/обработки. Макроуровень транспортно-пешеходно-сетевого моделирования абстрагируется от индивидуальных машин, людей и пакетов данных и рассматривает только их количества. Цепочки поставок моделируются на самых разных уровнях абстракции, так что их можно было бы расположить в любом месте шкалы от среднего до высокого уровня.
К задачам в верхней части шкалы традиционно применяют понятия влияний, обратных связей, тенденций и т.п. Вместо индивидуальных объектов, таких как клиенты, сотрудники, машины, животные, транзакции, товары, рассматривают их агрегаты, количества. Динамика систем на этом уровне описывается утверждениями типа “увеличение количества рабочих мест вызовет увеличение иммиграционного притока”.
Высокий уровень Агрегаты, глобальные причинные зависимости, динамика обратных связей, … [меньше деталей макро уровень Низкий уровень [больше деталей Отдельные объекты, точные размеры, расстояния, скорости, времена, … Рис 3: Подходы в имитационном моделировании на шкале уровня абстракции Основные подходы в имитационном моделировании На Рис 3 показаны основные подходы в имитационном моделировании: системная динамика (СД), дискретнособытийное моделирование (ДС), под которым мы понимаем любое развитие идей GPSS, агентное моделирование (АМ). СД и ДС – традиционные устоявшиеся подходы, АМ – относительно новый. Область моделирования динамических систем, являясь инженерной дисциплиной, останется в стороне от нашего рассмотрения.
Математически, СД и динамические системы оперируют в основном с непрерывными во времени процессами, тогда как ДС и АМ – в основном с дискретными.
Динамические системы, естественно, находятся внизу шкалы. СД, заменяя индивидуальные объекты их агрегатами, наоборот, предполагает наивысший уровень абстракции. ДС-моделирование работает в низком и среднем диапазоне. Что же касается АМ, то оно может применяться практически на любом уровне и в любых масштабах. Агенты могут представлять пешеходов, автомобили или роботов в физическом пространстве, клиента или продавца на среднем уровне, или же конкурирующие компании на высоком.
СД, ДС и динамические системы исторически преподаются совершенно разным категориям студентов: менеджмент, инженеры по организации производства (industrial engineers) и инженеры-разработчики систем управления. В результате возникли три отдельных сообщества (три “мира”), которые практически никак не общаются друг с другом. АМ же до недавнего времени было академической игрушкой. Однако, растущий спрос на глобальную оптимизацию со стороны бизнеса заставил ведущих аналитиков обратить внимание именно на АМ и его объединение с традиционными походами с целью получения более полной картины взаимодействия сложных процессов различной природы. Отсюда спрос на программные платформы, позволяющие интегрировать различные подходы.
Adopters СД Накопители, потоки и их причинные зависимости. / Total Population Структура как взаимодействие обратных связей Рис 4: Классическая модель системной динамики: Bass Diffusion в VensimTM Системная динамика Этот подход был разработан и предложен Джеем Форрестером в конце 1950х как “исследование информационных обратных связей в промышленной деятельности с целью показать как организационная структура, усиления (в политиках) и задержки (в принятии решений и действиях) взаимодействуют, влияя на успешность предприятия” [Forrester 1958 и 1961].
Приложения СД включают также социальные, урбанистические, экологические системы. Процессы, происходящие в реальном мире, в СД представляются в терминах накопителей, stocks, (например, материальных объектов, знаний, людей, денег), потоков между этими накопителями, flows, и информации, которая определяет величину этих потоков. СД абстрагируется от отдельных объектов и событий и предполагает “агрегатный” взгляд на процессы, концентрируясь на политиках, этими процессами управляющих. Моделируя в стиле СД, вы представляете структуру и поведение системы как множество взаимодействующих положительных и отрицательных обратных связей и задержек, как показано на Рис 4.
Модель Bass Diffusion В этой классической модели распространения нового продукта, или инновации, взятой из учебника (Рис 4, [Sterman, 2000]) потенциальные клиенты (Potential Adopters) становятся клиентами (Adopters) со скоростью диффузии, распространения (Adoption Rate), которая зависит от рекламы и “устной рекламы”, т.е. общения клиентов с не-клиентами. Влияние рекламы моделируется следущим образом: некий постоянный процент потенциальных клиентов (Advertising Effectiveness = 0.011 в этой статье) всё время становятся клиентами. Их доля в Adoption Rate равна, соответственно, Potential Adopters * Advertising Effectiveness. Что касается устной рекламы, мы делаем предположение, что в нашей группе людей все контактируют со всеми. Количество контактов человека в единицу времени обозначим как Contact Rate (100). В случае, если клиент общался с потенциальным клиентом, последний становится клиентом с вероятностью Adoption Fraction (0.015). Таким образом, в единицу времени все клиенты обратят Adopters * Contact Rate * Adoption Fraction * [Potential Adopters / (Potential Adopters + Adopters)] потенциальных клиентов в клиентов. Выражение в квадратных скобках – вероятность того, что тот, с кем был контакт у клиента, ещё не клиент.
Математически, системно-динамическая модель – это система дифференциальных уравнений. Для нас важно отметить следующие моменты СД: а) поскольку модель оперирует только количествами, агрегатами, объекты, находящиеся в одном накопителе, неразличимы, лишены индивидуальности, и б) аналитику предлагается рассуждать в терминах глобальных структурных зависимостей и, соответственно, ему необходимы соответствующие данные. Подход СД поддерживается 3- инструментами весьма похожими друг на друга.