Инструменты дискретно-событийного моделирования
Существует достаточно много программных продуктов, поддерживающих ДС подход. Среди всех средств, предназначенных для имитационного моделирования, этот класс наиболее представительный. Например, в отчёте (3) приводятся характеристики 65 различных инструментов. Это объясняется большой популярностью дискретно-событийного моделирования в таких областях как системы массового обслуживания, бизнес-процессы, производство, логистика, транспорт и других. Часть программных продуктов являются достаточно универсальными (Arena, Extend, GPSS, Witness), другие заточены под более узкий класс задач и содержат абстрактные элементы, взятые из предметной области исследования (AutoMod – транспорт, логистика, производство; MedModel – моделирование и оптимизация систем в здравоохранении; Comnet – телекоммуникации).
Стандартными характеристиками большинства продуктов являются: возможность создания модели в графическом режиме (потоковые диаграммы рисуются, используются стандартные шаблоны для отдельных блоков, параметры элементов системы задаются через подменю); интерфейсы для соединения с базами данных, средства для обработки статистики на входе и выходе модели, для ее оптимизации, для создания анимации в ходе имитационных экспериментов.
Системная динамика
Высокому уровню абстракции в имитационном моделировании соответствует подход системной динамики (далее СД), предложенный в 50-х годах прошлого века американским ученым Джемом Форрестером. При данном подходе не рассматриваются индивидуальные объекты, а лишь их количества и агрегированные показатели. Системная динамика применяется тогда, когда нет необходимости или возможности исследовать влияние отдельных объектов, а достаточно изучить поведение системы на уровне агрегированных величин.
Форрестер предложил использовать для этого понятия «накопители» (stocks), и «потоки» между ними (flows) (4). Накопители могут относиться к различным материальным объектам, например, к людям в демографических моделях, товарам, деньгам при моделировании баланса на рынке, природным ресурсам в задачах экологии. На рис. 2.2 приведена системно-динамическая диаграмма из модели распространения продукта на рынке.
Рис. 2.2. Пример системно-динамической диаграммы «Проникновение продукта на рынке»
Инструменты системной динамики
В ней три объекта – накопителя: «потенциальные пользователи», люди, формирующие спрос и люди, являющиеся реальными пользователями. Такие факторы как реклама, частота контактов определяют потоки, в соответствие с которыми накопители «перетекают» друг в друга. С формальной точки зрения системно-динамическая модель представляет собой систему дифференциальных (в частном случае алгебраических) уравнений, определяющих потоки между накопителями. Отличительной чертой СД является неразличимость объектов, находящихся в одном накопителе. Их невозможно индивидуализировать, приписав различные свойства, логику поведения или процесс обработки. Все взаимосвязи задаются на уровне накопителей, то есть между агрегированными величинами.
Системно-динамические модели обычно применяются при стратегическом анализе и долгосрочном планировании. Интересные примеры их использования можно найти как в монографиях по системной динамике, например в (5) и (6), так и в многочисленных статьях по конкретным системно-динамическим моделям, созданным за более чем полвека развития данной парадигмы.
Число программных продуктов, предназначенных для использования системно-динамического подхода, относительно невелико по сравнению с ДС моделированием. Наиболее распространены инструменты Vensim компании High Performance Systems (www.hps nc.com), Powersim компании Powersim, SA (www.powersim.com), IThink компании Ventana Systems (www.vensim.com), а также Anylogic. Vensim является из них наиболее простым и недорогим, обладая при этом такими характеристиками, как поддержка графического создания потоковых диаграмм; встроенные логические операторы и генераторы случайных чисел; средства для связи с базами данных для генерации отчетов, анимации и анализа чувствительности.
Важной характеристикой инструментов Powersim и IThink являются встроенные алгоритмы частичной поддержки дискретного моделирования. Это позволяет создавать модели с разными уровнями абстракции для отдельных блоков. Более подробную информацию о характеристиках данных инструментов можно найти на сайтах компаний разработчиков и в руководстве по Powersim (7).
Агентное моделирование
Третьей парадигмой в имитационном моделировании является агентное моделирование (далее АМ). Агент представляет собой индивидуализированный активный объект, который может обозначать человека, транспортное устройство, компанию, населенный пункт. В зависимости от того, какой объект представляет собой агент, модель может соответствовать высокому уровню абстракции (агент – компания, страна), среднему (агент – транспортная единица), низкому (агент – отдельный человек) или сочетать несколько уровней. Таким образом, данная парадигма является наиболее универсальной.
Основным отличием агентного подхода от первых двух является построение модели по принципу снизу-вверх. Зависимости между агрегированными величинами не задаются исходя из знаний о реальном мире, а получаются в процессе моделирования индивидуального поведения десятков, сотен или тысяч агентов, их взаимодействия друг с другом и с объектами, моделирующими окружающую среду. Например, исследование рынка будет происходить не в понятиях совокупного спроса и предложений, а в модели будут заложены возможные реакции отдельного человека на изменение цены, его потребительские характеристики. У агентов появляется возможность «общаться» между собой, обмениваться информацией, предпочтениями, влияя, тем самым, на поведение друг друга. Модель может учитывать пространственные характеристики, взаиморасположение агентов по отношению друг к другу и объектам окружающей среды.
К преимуществам агентного подхода следует отнести: отсутствие предопределенности в поведении системы на глобальном уровне, что может привести к появлению новых гипотез о ее функционировании в ходе симуляции модели; реализм и гибкость в описании системы, возможность моделировать самые сложные нелинейные обратные связи, использовать любой необходимый уровень детализации и абстракции. В АМ отсутствуют ограничения на гетерогенность элементов модели; появляется возможность моделирования общения и обмена информацией.
К потенциальным барьерам для построения агентной модели следует отнести, во-первых, наличие адекватных данных. Как правило, собрать статистику по характеристикам индивидуальных объектов сложнее, чем по агрегированным показателям. Во-вторых, придется определить логику поведения отдельного агента в терминах, доступных для обработки компьютером. Если это сложный объект, например человек, то приходится моделировать такие иррациональные вещи, как психологию поведения, выбора, привычки. С последними результатами в этой области, используемыми в агентных моделях, можно ознакомиться в статье (8).
В процессе имитационных экспериментов могут возникнуть вычислительные сложности, поскольку агентные модели в среднем требуют больших аппаратных и программных мощностей для проведения симуляций, чем системная динамика или дискретно-событийное моделирование.
Инструменты агентного моделирования
Агентный подход возник в 90-х годах прошлого века изначально в университетской среде США. В связи с этим большинство инструментов предназначалось для академических и учебных целей, многие до сих пор не являются коммерческими продуктами в полной мере. Одной из наиболее популярных разработок такого типа является среда Swarm (www.swarm.org) – коллекция библиотек под язык C, созданная в институте Санта-Фе. Наиболее известными коммерческими инструментами являются среды Ascape, RePast, AnyLogic.
Последний из них является разработкой российской компании XJTeknologies (www.xjtek.ru). Его конкурентным преимуществом является поддержка всех трех парадигм имитационного моделирования и возможность использования их в рамках одной модели. Также AnyLogic отличает мощное производительное ядро, позволяющее симулировать поведение миллионов агентов; богатые возможности для анимации и графического описания модели; поддержка разнообразных типов экспериментов, включая анализ чувствительности, метод Монте-Карло, встроенный оптимизатор OptQuest; возможности интеграции с базами данных, ERP и CRM системами; набор библиотечных объектов из областей логистики, бизнес-процессов, пешеходной динамики.
Информацию по другим инструментам агентного моделирования можно найти на электронном ресурсе (9).
Применение агентного моделирования
Агентный подход является наиболее молодым и потому наименее знакомым российским специалистам. Рассмотрим примеры успешного применения агентного моделирования в маркетинге и бизнесе. К области анализа распространения какого-либо товара, услуг, мнений, рекламы, могут относиться задачи на основе концепций моделирования эпидемиологии. Простейший пример диаграммы, согласно которой моделируется распространение заболевания, изображен на рис.2.3.
Рис.2.3. Пример диаграммы состояний агента по модели «распространение гриппа»
Одному объекту при этом может соответствовать несколько диаграмм состояний или блок-схем. Из рисунка видно, что при агентном подходе предметом моделирования является поведение отдельного объекта, а глобальное состояние системы является следствием. В эпидемиологии агентный подход позволяет моделировать сложные социальные сети, в том числе с учетом пространственного фактора, контакты между людьми, разную восприимчивость людей и степень их иммунитета. Это позволяет добиваться хороших результатов при прогнозировании скорости и характера распространения заболевания (10).
Второй класс задач относится к моделированию рынков, потребительских или финансовых. Агентный подход позволяет сделать акцент на индивидуальные предпочтения, стереотипы поведения потребителей при выборе ими продуктов и услуг. Отдельно выделяют задачи моделирования инноваций в бизнесе, их первоначального распространения на рынке. В четвертую группу относят задачи, связанные с оптимизацией организационной структуры, бизнес-процессов и снижением операционных рисков. Примером задачи первого класса служит моделирование эвакуации при давках в местах массового скопления граждан. Поведение людей в таких ситуациях часто становится иррациональным и не поддается моделированию традиционными методами. Агентный подход зарекомендовал себя для отыскания оптимальных методов эвакуации и минимизации возможных рисков (12). Агентное моделирование часто применяется западными компаниями при проектировании парков развлечений, супермаркетов. В таких задачах оптимизируется геометрическое расположение элементов системы относительно друг друга (например, аттракционов и кафе, или касс и полок с продуктами). Целью может служить увеличение пропускной способности, сокращение времени стояния в очередях, оптимальное расположение рекламных материалов.
Наглядным примером является оптимизированная модель супермаркета Sainsbury’s в западном Лондоне, разработанная компанией SimStore в 1999 году (13). Собрав статистику о предпочтениях посетителей и характерных для них путях следования в магазине, разработчики использовали агентный подход в сочетании с генетическими алгоритмами для улучшения расположения элементов супермаркета. Отметим, что решать подобные задачи аналитическими или статистическими методами крайне затруднительно, и агентное моделирование является одним из немногих возможных средств поддержки принятия решений.
Агентный подход хорошо применим для моделирования функционирования бирж. Результаты торгов зависят от поведения множества независимых людей с различными целевыми функциями, и их поведение логично моделировать в рамках агентного подхода. Подтверждением этому служит, например, модель Bios Group фондовой биржи NASDAQ (14). Модель измерения и минимизации операционных рисков управления активами банка Societe Generale (15) служит примером применения АМ в финансовых институтах и банках.
Бизнес-проблематику, где успешно применяется агентный подход, можно разделить на 4 класса (11). К первому относятся задачи с различного рода потоками. Они могут состоять из людей (проблемы пропускной способности помещений, эвакуации), единиц транспорта (моделирование городского трафика, планировки аэропортов, вокзалов). Часто для этого применяется дискретно-событийный подход. Если же объекты моделирования слишком разнородны или необходимо учесть их пространственное взаиморасположение, то использование агентного подхода предпочтительнее.
Выводы
Современные инструменты имитационного моделирования позволяют эффективно применять его не только в научных изысканиях, но и в качестве средства для построения систем поддержки принятия решений в бизнесе. Для достижения практически значимых результатов необходимо знать об особенностях и ограничениях каждого из трех существующих подходов.
Выбор той или иной парадигмы должен обуславливаться не столько предметной областью моделирования, а необходимой степенью детализации системы и имеющимися в распоряжении данными. Выбор инструмента моделирования при этом не столь первостепенен. Большинство современных программных средств сделает процесс симуляции удовольствием для разработчика, предоставив широкие возможности для анимации и оптимизации моделируемых процессов.
2.2. Поведение сложных динамических систем
Сложные динамические системы, хотя и имеют такие же основные определения, как и системы вообще, однако, они рассматриваются в динамике. Их изменение происходит как во времени, так и по составу элементов. Новые свойства в них рождаются благодаря развитию или рождению новых связей. Они обладают разнообразием таких связей, которые становятся контурами обратной связи, регулируя поведение систем.
Дадим некоторые основные определения теории динамических систем.
Глоссарий
Архетипы – часто встречающиеся системные структуры, генерирующие определенные типы поведения.
Балансирующий цикл (контур, петля) обратной связи – стабилизирующий, стремящийся к определенной цели регулирующий цикл обратной связи, также известный под названиями «отрицательная обратная связь», «петля отрицательной обратной связи», поскольку противодействует любому изменению, которое пытаются вызвать в системе внешние силы.
Пример. Чем сильнее реклама, тем меньше доверия к ней.
Цикл выравнивает, стабилизирует, противостоит изменениям в системе. Балансирующий цикл появляется практически всегда, как противостоящий усиливающему циклу и способствует самосохранению системы. Одновременно балансирующий цикл мешает инновационному развитию.
Динамика – поведение системы или любого ее компонента во времени.
Динамическое равновесие – состояние системы, при котором значение запаса (его уровень или величина) постоянно, не изменяется во времени, несмотря на имеющиеся входные и выходные потоки. Такое состояние возможно только в том случае, если сумма всех входных потоков равна сумме всех выходных.
Запас – скопление определенного вещества или информации в системе по мере ее существования и функционирования. Запас изменяется в ходе функционирования системы. Его можно сравнивать по величине (больше\меньше). Существуют рациональные и иррациональные запасы. Рациональные могут быть измерены, для иррациональных единицы измерения отсутствуют. К примеру, это могут быть социальные системы, погода, настроение.
Запасы имеют свойства. В основном, они могут быть положительными. Положительные запасы имеют пределы роста, рис.2.4. К примеру, "раздача" бюджетного финансирования имеет пределы и провоцирует кризисы; расширение бизнеса может быть ограничено пределами территории.
Рис. 2.4. Пределы роста запаса
Запасы регулируются, меняя значение потоков. Запасы меняются медленнее потоков. Если потоки действуют дольше эталонного времени, то возникает инерция. Запасы позволяют потокам не зависеть друг от друга. Запасы являются буфером, смягчающим внешние воздействия. Пример: запас соли делается заранее для устранения проблем с гололедом.
Иерархия, иерархическая структура – внутренняя организация системы, позволяющая составить систему большего размера из меньших систем (подсистем).
Лимитирующий фактор – необходимый для системы входной поток, в определенный момент вызывающий ограничение ее деятельности. Самое сильное действие оказывает входной поток. Лимитирующий фактор может возникать на разных уровнях системы и ее подсистем. У роста всегда будут пределы, либо их установит система, чтобы избежать разгона, разноса и разрушения. Рождение лимитирующего фактора в системе связано с переходом по линии: "усиление" – "балансирование" – "доминирование".
Линейная зависимость – такая связь между двумя элементами системы, при которой результат всегда пропорционален причине. График линейной зависимости – прямая. Результаты могут суммироваться.