Мультиагентное моделирование
Мультиагентное моделирование – это сравнительно новый метод имитационного моделирования. В то время как дискретно-событийное моделирование и системная динамика имеют более чем шестидесятилетнюю историю, агентно-ориентированные модели начали разрабатываться лишь немногим более 20 лет назад (рисунок 1).
Рисунок 1 – Виды имитационного моделирования
Одним из преимуществ мультиагентного моделирования является возможность разработки моделей без необходимости детально разбираться в управляющих процессах моделируемой системы. Вместо этого возможно имитировать процессы системы на основани индивидуальной логики и поведения её элементов.
В рамках мультиагентного моделирования рассматривается поведение отдельных элементов внутри системы – агентов, их взаимодействие друг с другом и с окружающей средой. Совокупность агентов образует мультиагентную систему (МАС), поведение которой не регулируется централизованным алгоритмом, а возникает в результате локальных взаимодействий между агентами. У каждого агента есть набор моделей поведения, определяющих его реакцию на сообщения от других агентов или изменения внешних условий (Рисунок 2).
Рисунок 2 – Структура агента
MAC представляет собой вычислительную программу, состоящую из автономных блоков, каждый из которых способен выполнять гибкие, автономные и социально организованные действия, направленные на достижение поставленных целей. Применение мультиагентного подхода наиболее целесообразно при решении задач, характеризующихся большим количеством сущностей с различными, зачастую противоположными целями. В таких случаях МАС демонстрируют преимущества распределённого и конкурентного механизма поиска решений, в том числе благодаря реализации сложных протоколов взаимодействия между агентами.
В отличие от традиционных объектно-ориентированных систем, агентно-ориентированный подход предполагает передачу управления поведением программных компонентов самим этим компонентам. Это позволяет им реагировать на внешние воздействия и предотвращать прямое вмешательство в логику других компонентов. Такой подход позволяет создавать агентов с собственным потоком управления, что позволяет им работать параллельно в многопоточной среде. Мультиагентная парадигма определяет лишь фундаментальные принципы решения задачи, оставляя выбор конкретных типов агентов и протоколов для их взаимодействия на усмотрение разработчика.