Одним из самых распространённых способов исследования динамических и сложным образом организованных систем является имитационное моделирование. Данная форма моделирования берёт своё начало ещё в ранних 60‑х, и к настоящему моменту она становится всё более актуальной и востребованной. Однако, подобно другим формам, имитационное моделирование имеет ряд трудностей, которые являются следствием попытки представить процессы и явления в реальном мире. В целом, наблюдается тенденция к повышению точности и адекватности создаваемых моделей. Ответом на это требование служит возникновение агентного имитационного моделирования. Тем не менее, этот подход по своей природе содержит много вопросов и проблем, и поэтому требует особого внимания при исследовании.
Нашей задачей служит построение системы имитационного моделирования на базе агентного подхода. Предполагается, что модель, создаваемая пользователем, будет инвариантна относительно предметной области. Для этого пользователю предстоит каким-либо образом задать агентов, определить их свойства, структуру, поведение и семантику, объединить этих агентов, например, в сеть, определить топологию данной сети, наложить на неё условия моделирования и поместить эту «заготовку» в определённую среду моделирования.
При этом исследователю должны быть даны несколько способов представления агентов. Представление может быть определено внутренним состоянием агента, наличием дополнительных данных (например, собираемой статистикой), поведением, механизмом принятия решений, присутствием интеллектуальных средств, механизмов адаптации, средств обучения и пополнения знаний в ходе вывода и т.д.
Для исследования агентного подхода потребуется:
Напомним, что имитационное моделирование использует и другие подходы (объектные, процессные, дискретно-событийные и т.д.), которые также нужно учитывать. Более того, для некоторых задач имитационное моделирование неэффективно (вместо него используют, например, математическое моделирование). Некоторые задачи, в свою очередь, потребуют комбинированных методов и т.д. Значит, также предстоит выявить особенности и ограничения агентного подхода. Для ответа на все эти перечисленные вопросы обратимся к существующим задачам и способам их решения.
Вопросы построения агентной системы моделирования
Система моделирования на базе агентного подхода поможет исследователю в изучении сложных, трудноформализуемых, самоорганизующихся процессов и явлений во многих прикладных областях. Однако разработка такой системы весьма не тривиальна, ведь полноценный агент полностью автономен и независим: он совершает целенаправленные действия, вступает в контакт с другими агентами, умеет принимать решения, перемещаться и приспосабливаться к среде и т.п.
Какие задачи могут возникнуть при построении подобной системы? Перечислим основные из них:
Данный список, очевидно, не является полным. Агентное моделирование будет развиваться вместе с развитием других направлений математики и информатики: будут появляться новые численные и статистические методы, новые направления в развитии искусственного интеллекта, новые алгоритмы адаптации, новые способы представления нечётких знаний, новые способы параллельных и распределённых вычислений.
С другой стороны, реализация полного перечня даже этих требований может оказаться весьма трудозатратной. Необходима возможность наращивания возможностей системы. В связи с этим можно прийти к выводу, что ставится задача создания не просто агентной системы, а полноценной платформы, обладающей гибкой, расширяемой и масштабируемой архитектурой для добавления и интеграции новых компонентов.
Возможные подходы к разрешению вопросов, связанных
с созданием системы агентного моделирования
Ниже представлена краткая характеристика возможных решений, методов и технологий для реализации системы агентного моделирования. Рассмотрим, какие подходы уже используются, а какие вопросы остаются нерешёнными.
Обзор методов, применимых при создании системы
Нейросетевые технологии. Нейронные сети уже давно используются в моделировании - на их основе базируются множество систем (одна из систем представлена в [2]). В этом подходе явно прослеживается проблема адаптации - для ИНС требуется достаточно большая (и желательно репрезентативная) выборка для обучения и тестирования. В ходе имитационного прогона агент может получить новые данные и на этапе выполнения переобучать сеть.
Методы оптимизации. Некоторые авторы [3, 5] предлагают на базе математической модели построить различные функции (функционалы) и найти условный экстремум. Если мы имеем дело со сложной многокритериальной экстремальной задачей, то стоит задуматься о привлечении методов эвристического поиска (например, на базе генетических алгоритмов). В этом случае также возникает задача адаптации - подбор параметров и анализ пространства решений для ускорения поиска.
МАС. Теорию мультиагентных систем стоит изучить более детально, т.к. она оперирует общими с агентным моделированием понятиями. Стоит обратить внимание на различные способы представления и коммуникации агентов (в т.ч. Blackboard-архитектуры). Подробнее о МАС см. в [5].
Методы теории игр и исследования операций. В качестве механизмов принятия решений можно применять подходы, основанные на матричных играх, теории полезности и сетевого планирования. Во многих работах [1, 3, 4] упоминаются подобные методы. Если задача (подзадача) формулируется чётко, то они, безусловно, будут иметь преимущество перед эвристиками. В одной работе предлагалось сначала математическими методами найти точное решение, а затем его уточнить с помощью МАС.
Нечёткая логика. Несколько авторов [5, 6] предложили идеи использования нечёткой логики. Поскольку агент должен уметь принимать решения недетерминированного характера в условиях неопределённости, многозначности, неполноты и немонотонности, то он должен, во-первых, обладать памятью для хранения фактов, а во-вторых, уметь строить рассуждения на их основе. Поскольку факты как по своей природе, так и в силу коммуникации с другими агентами могут быть разнородны и противоречивы, то требуется реализовать вывод в нечёткой логике.
Вывод на базе знаний. Агент может иметь встроенные СБЗ, в т.ч. экспертные системы. Например, один из авторов [7] предложил использовать продукционную базу знаний с метаправилами до 3‑го уровня включительно. Раз агент в течение продолжительного времени сосуществует с другими агентами в определённой среде, то он может накапливать новые факты. А это вновь потребует реализации некоторых механизмов адаптации - сбора статистики, добавления в ходе прогона новых правил, изменения правил с помощью метаправил, разрешения противоречий в базе знаний и т.д.
Методы децентрализованного принятия решений. Данный аспект прослеживается практически во всех существующих работах (например, в [2, 5]), и этого следовало ожидать: агентный подход объясняет процессы в системе через независимое децентрализованное поведение агентов. Более того, принятие решений может быть распределено внутри агента. В этом случае агент действует на базе нескольких источников принятия решений. Тут вновь возникает задача адаптации - если один источник часто даёт неправильные решения, то агент должен полагаться на другие источники.
Boids-моделирование. Хорошо подходит не только для организации поведения животных, но и для более сложных структурных самоорганизующихся систем, например социальных групп. Существуют различные схемы реализации - алгоритмы муравьиных колоний, птичьих стай, сахарных плантаций и т.д.
Теория графов. Очень много работ [1, 2, 5, 7] опираются на графовое представление модели. Теория графов достаточно хорошо изучена, имеет методы решения многих графовых и комбинаторных задач, как точные, так и эвристические. Поэтому следует учесть опыт исследователей и попробовать применить данную теорию.
ГИС. Если рассматривать общую теорию ГИС (без привязки конкретно к картографии), то предлагаемые методы анализа и обработки географически распределённых объектов вполне можно применить к среде, в которой существуют агенты.
Методы теории вероятностей и математической статистики. Несколько авторов [2, 4, 5] предложили этот подход, однако они утверждают, что его следует использовать с осторожностью. Дело в том, что агентное моделирование представляет взгляд на систему «снизу‑вверх», в то время как теория вероятностей больше подходит для типа «сверху‑вниз», когда известны глобальные законы распределения, статистические оценки, априорные/апостериорные вероятности тех или иных процессов и т.д. Однако статистика располагает некоторыми полезными приёмами: анализ выборки, построение статистических гипотез, выявление корреляции между факторами, доверительное оценивание, регрессионный анализ и т.д.
Онтологический подход. Агент должен получать, хранить и обрабатывать информацию о текущем состоянии предметной области. Представление агента об окружающем мире, о других агентах и о себе самом может быть специфицировано в форме онтологии. Если агенты будут оперировать одними и теми же понятиями, то это поможет при решении многих проблем - от методов коммуникации между агентами до способов адаптации к новым условиям. Использование онтологий осложняется тем, что разрабатываемая система моделирования инвариантна относительно предметной области. Поэтому онтология (по крайней мере, предметного уровня) будет изменяться.
Комбинирование различных форм моделирования. Некоторые авторы [2, 5, 6] предлагают применение синергетической интеграции различных методов, приёмов, алгоритмов и технологий для получения более правдоподобного результата в моделировании сложных экономических процессов. Разумеется, агентное моделирование должно идти по пути интеграции, т.к. каждая методика обладает своими преимуществами и недостатками. Тут вновь возникает достаточно нетривиальная задача адаптации. Например, агент может с помощью логического вывода или вывода на семсетях принимать одни решения, но затем, приспособившись к среде и пообщавшись с другими агентами, изменить ход вывода и принять другие решения.
Анализ перечисленных методов
Итак, на примере предложенных методов мы убедились, насколько нетривиальна задача агентного моделирования. Нет чётко определённого подхода ни в способах проектирования, ни в выборе методов и алгоритмов, ни в способах представления агента, ни в выборе математической модели, ни в применении средств искусственного интеллекта.
По словам авторов, хорошо себя зарекомендовали теория графов, методы оптимизации и нейронные сети. Однако тот же нейросетевой подход является далеко не единственным и исчерпывающим. Мы рассмотрели несколько задач (в основном, экономического характера), где ИНС давала хорошие результаты. Поскольку в системе моделирования требуется решение более широкого класса задач (помимо классификации/кластеризации), то нельзя ограничиваться лишь одним подходом. Аналогично и математическое моделирование - его, безусловно, следует применять, но не в тех случаях, когда задача требует эвристических решений (например, для моделирования поведения человека или социальной группы).
Большинство работ пропагандируют интегрирование различных форм решений проблем агентного моделирования. Действительно, агентный подход явно подразумевает, что моделирование процессов системы суммируется из составных её элементов. Это порождает массу подзадач, для большинства из которых уже существуют решения. Казалось бы, осталось лишь объединить эти решения в одну общую архитектуру. Однако вопрос, каким образом это следует делать, до сих пор остаётся открытым. Более того, решения также могут отличаться:
Таблица 1. Степень применимости существующих решений к задаче
агентного моделирования
Имеются решения, в той или иной мере допустимые для агентного моделирования |
Имеются решения, но их использование и сопровождение может представить затруднения |
Решения, возможно, и существуют, но они могут быть неадекватны, неполны, неэффективны, либо работать лишь в частных случаях |
Методы решения экстремальных задач |
Среда моделирования |
Способ задания агента |
Механизм продвижения времени |
Способ взаимодействия с окружающей средой |
Способ задания поведения агента |
Условия моделирования |
Способ взаимодействия агентов |
Способ изменения поведения агента |
Механизмы сбора статистики |
Механизм принятия решений |
Механизм вывода в условиях неопределённости |
Методы отладки моделирования |
Способ задания модели (язык) |
Механизм пополнения знаний |
|
Методы распараллеливания имитационного процесса |
Использование метазнаний |
|
|
Средства адаптации |
|
|
Определение общей архитектуры приложения |
Из таблица 1 видно, что хорошо проработаны лишь те проблемы, которые характерны для имитационного моделирования вообще: продвижение времени, сбор статистики, отладка. Общие вопросы определения модели, методов коммуникации, механизма принятия решений и т.п. занимают промежуточное положение - имеются готовые решения, однако они не всегда применимы, и при разработке архитектуры системы могут возникнуть трудности. Вопросы адекватного представления поведения агента, методов адаптации, вывода в условиях неопределённости и т.д. можно считать открытыми.
Эти вопросы актуальны в связи с тем, что агенты предпринимают попытку моделировать сложные естественные процессы, возникающие в реальном мире. Целью любого моделирования является абстрагирование от незначимых факторов, поэтому также возникает вопрос, от чего абстрагируется агентное моделирование?
Попытка учесть всё и всюду вряд ли увенчается успехом, поскольку задача выбора инструментальных средств для построения системы агентного моделирования также является сложной и трудно формализуемой. Поэтому остаётся так много открытых вопросов, поэтому ведутся столь обширные исследования в данной области и поэтому создание идеальной системы моделирования, учитывающей все значимые факторы для любой заданной проблемной области, в настоящее время представляется невозможным.
Способ построения системы моделирования удовлетворяющей требованиям открытых систем
Рассмотрим один из возможных подходов к проектированию системы агентного моделирования с учётом стандартов и технологий открытых систем [8].
Начнём с того, что для реализации агентных систем рекомендуется объектно-ориентированный подход. Фактически от обычных объектов агентов отличает их автономность, независимость и целеполагание. Раз агент - это объект, наделённый набором специфичных характеристик, то ООП будет идеальным инструментом к проектированию.
Известно, что основные свойства открытых систем хорошо поддерживаются ООП: объектное представление удобно для восприятия модели человеком, инкапсуляция обеспечивает мобильность и переносимость архитектуры, наследование и абстракция способствуют расширяемости и масштабируемости, а динамическое связывание и полиморфизм - интероперабельности.
Требования к системе агентного моделирования
Перечислим основные требования к системе с точки зрения стандартов и технологий открытых систем:
Структура системы моделирования
Рассмотрим обобщённую схему системы моделирования (рис. 1).
Система управления
Ход имитационного процесса контролирует «Система управления». Она должна состоять из нескольких уровней, различающихся по степени абстрактности в управлении данными и процедурами (рис. 2):
Подобная 6-уровневая архитектура отделяет интерфейсы от реализации, что сделает систему управления более гибкой и прозрачной. Нетрудно заметить, что этот подход явно ложится в рамки концепции архитектур MDA (Model Driven Architecture).
Агенты представляются в виде объектов, которые используют интерфейсы, предлагаемые ядром и системными компонентами. Агенты также представляют собственные интерфейсы для контроля и сбора статистики (рис. 3).
Архитектура агента включает центральный компонент-контроллер, занимающийся процессом жизнедеятельности агента. Получив управление, он обращается к рецепторам с целью получения информации о среде моделирования. Примером может служить зрение человека. Далее контроллер, основываясь на полученных данных и данных из памяти агента, передаёт управление модулям.
Под модулями агентов будем понимать внешние присоединяемые компоненты, которые отвечают за структуру, поведение и семантику агента. Это могут быть базы знаний, механизмы принятия решений, механизмы логического вывода, модули сбора информации для настройки весов нейросетей, анализаторы данных, модули управления агентом в условиях неопределённости и т.д. Обычно они представляются в виде функциональных блоков, т.е. содержат вход, выход, подсистему управления и средства реализации.
После отработки всех модулей агент с помощью эффекторов предпринимает активные действия (например, движение в некотором направлении). Информация обо всех действиях передаётся системе управления через диспетчер. Таким образом, диспетчер служит связующим звеном агента с системой моделирования.
Согласно принципам открытых систем, модули должны иметь доступ к данным и процедурам, доступным на уровне агента (информация о среде моделирования, онтология предметного уровня, функции системы управления). Также они сами должны предоставить доступ к собственным интерфейсам (в частности, для сбора статистики).
По сути, модули сбора статистики представляют собой «системных агентов», которым доступна вся информация обо всех агентах и среде моделирования. Помимо собственно агентов, они также имеют доступ к зарегистрированным внешним модулям агентов, которые упоминались выше.
Модули сбора статистики не должны жёстко привязываться к системе управления. По возможности, следует реализовать механизм регистрации, чтобы обеспечить возможность добавления новых сборщиков.
Поскольку в разрабатываемой системе подразумевается инвариантность моделирования агентов от предметной области, то следует каким-либо образом определить эту предметную область, чтобы пользователь, агенты, система управления, модули сбора статистики и прочие компоненты оперировали общими понятиями. В этом случае рекомендуется применять онтологический подход, т.к. он является общепризнанным средством спецификации предметной области.
Онтологии, при необходимости, можно описывать в утверждённых W3C‑консорциумом языках описания онтологий, таких как OWL и RDF. В частности, среди открытых кроссплатформенных редакторов онтологий хорошо зарекомендовал себя Protégé-OWL.
Также стоит обратить внимание на язык разметки агентов DAML (Dapra Agent Markup Language). Если онтологии не будут слишком громоздки, то для упрощения использования их можно описать в текстовом виде, например, с помощью JSON‑подобных структур (см. далее).
В среде находятся активные агенты, которые управляются самостоятельно, и пассивные объекты, контролируемые системой управления. Среда (через системные компоненты) должна предоставлять обширный набор функций для изменения своего состояния. Это даст агентам возможность динамически изменять, порождать и уничтожать объекты среды.
Среда разработана в двух формах:
Если задача требует лишь взаимодействие агентов, их коммуникацию и передачу ими некоторого ресурса, то рекомендуется применять графовую модель. Это может быть полезно при моделировании систем управления, цепочек поставок, исследования конкуренции на рынке и т.д.
Если задача требует исследования передвижения агентов, то следует применять пространственную модель. Это может быть полезно при моделировании движения клиентов в супермаркете, перемещению посетителей в парке или реакции людей на пожар в помещении.
Представление данных
В качестве формата данных можно использовать подход на JSON‑подобных структурах (как наиболее простой, понятный и лаконичный способ представления данных). Данный способ, как и XML, будет работать в гетерогенных средах. Из соображений мультиязычности предлагается использовать одну из юникод‑кодировок, например UTF-8.
Если не удастся ограничиться хранением данных в виде JSON или XML, то можно прибегнуть к помощи баз данных. Рекомендуется рассмотреть такие открытые кроссплатформенные СУБД как:
Также возможно создание собственного механизма по обработке данных (с последующим созданием драйвера ODBC).
Более того, в процессе работы неизбежно возникнут вопросы, связанные с внешними файлами: работа с текстами, генерация отчётов, импорт данных из электронных таблиц, загрузка растровых/векторных изображений и 3D-моделей, сохранение снимков и т.д. В этом случае имеет смысл использовать открытые форматы файлов (odf, txt, png, htm, 7z, ogg и ряд других) и открытые протоколы (SOAP).
Заключение
Наш мир усложняется день ото дня. Наши представления о мире непрерывно изменяются: появляются новые взгляды, новые теории, новые концепции. Моделирование - один из основных инструментов к познанию мира как сложной адаптивной системы. Ведущую роль в изучении сложных динамических процессов получило имитационное моделирование как инструмент выявления закономерностей явлений, имеющих протяжённость во времени.
Новейший инструмент имитационного моделирования - агентный подход - позволяет взглянуть на проблему по индуктивному методу - от более частного к более общему. Это позволит получать информацию об общих глобальных законах исследуемой модели, базируясь на активности её составных элементов. Предложенный способ позволит выявить имплицированные зависимости и закономерности, которые вряд ли обнаружат другие методы исследования.
Однако создавать агентные модели под каждую конкретную задачу - дело не только дорогостоящее, но и неэффективное. Причина кроется хотя бы в том, что представляемая модель управляется рядом эвристик, которые невозможно не просто доказать формально, но и предположить вплоть до этапа имитационного прогона. Алгоритмы вывода, поведение и методы коммуникации агентов постоянно уточняются по ходу процесса моделирования.
Выходом из этой проблемы служит построение системы имитационного моделирования. Нетрудно заметить, что эта задача является ещё более сложной и дорогостоящей, особенно для агентного моделирования. Данная статья была посвящена обзору вопросов и проблем, сопутствующих разработке столь сложного инструментального средства. Также была предложена обобщённая архитектура и возможные теории и методы решения задач. Надеемся, статья поможет разработчикам учесть специфику агентного моделирования во избежание ошибок на ранних этапах проектирования. Также советуем придерживаться архитектуры MDA и паттернов проектирования, следование которым упростит разработку открытых, масштабируемых, переносимых, расширяемых, интероперабельных приложений, простых в плане изменения и сопровождения [9, 10].