МУЛЬТИАГЕНТНЫЕ СИСТЕМЫ: ОБЗОР ФРЕЙМ-ВОРКОВ И СРАВНИТЕЛЬНЫЙ АНАЛИЗ
Журнал: Научный журнал «Студенческий форум» выпуск №5(314)
Рубрика: Технические науки

Научный журнал «Студенческий форум» выпуск №5(314)
МУЛЬТИАГЕНТНЫЕ СИСТЕМЫ: ОБЗОР ФРЕЙМ-ВОРКОВ И СРАВНИТЕЛЬНЫЙ АНАЛИЗ
MULTIAGENTIC SYSTEMS: FRAMEWORKS REVIEW AND COMPARATIVE ANALYSIS
Emad Kerhili
Student, Higher Institute of Applied Sciences and Technology, Moscow State Technical University. BC. Bauman, Russia, Moscow
Oleg Eremin
Scientific supervisor, Moscow State Technical University. BC. Bauman, Russia, Moscow
Аннотация. Мультиагентные системы (MAS) привлекли внимание многих ученых во многих областях науки и исследований, особенно в области информатики и приложений распределенного искусственного интеллекта (РИИ). Таким образом, решаемые сложные задачи делятся на подзадачи, и каждая из них назначается субъекту, который решает ее определенным образом, используя определенный набор данных о доходах. Эта сущность называется агентом. Агенты общаются друг с другом и обмениваются данными, чтобы сформировать для нее дополнительный доход, который поможет ей завершить решение своих задач и накопить результаты для окончательного решения общей проблемы. Существует множество платформ, которые предоставляют механизмы проектирования мультиагентных систем, и каждая из них имеет свои собственные особенности и функции, которые она предоставляет для разработки приложений на основе агентов. Этот обзор содержит краткое введение в мультиагентные системы и их приложения, за которым следует изучение платформ, предназначенных для проектирования и внедрения таких систем, с подробным объяснением характеристик, возможностей и функциональности каждой из них. В конце представлена сравнительная таблица между всеми этими платформами, которая служит ориентиром для исследователей и тех, кто заинтересован в выборе наиболее подходящей платформы для работы.
Abstract. Multi-agent systems (MAS) have attracted the attention of many scientists in many fields of science and research, especially in computer science and distributed artificial intelligence (DAI) applications. Thus, complex problems to be solved are divided into subtasks, and each of them is assigned to a subject who solves it in a certain way, using a certain set of income data. This entity is called an agent. Agents communicate with each other and exchange data to generate additional income for her, which will help her complete the solution of her tasks and accumulate results for the final solution to the common problem. There are many platforms that provide mechanisms for designing multi-agent systems, and each of them has its own features and functions that it provides for developing agent-based applications. This overview provides a brief introduction to multi-agent systems and their applications, followed by an examination of the platforms available for the design and implementation of such systems, with a detailed explanation of the characteristics, capabilities, and functionality of each. At the end, a comparison table between all these platforms is provided to serve as a guide for researchers and those interested in choosing the most suitable platform for the job.
Ключевые слова: искусственный интеллект; ИИ; распределенный искусственный интеллект; РИИ; Мультиагентные системы; MAS; фреймворк.
Keywords: artificial intelligence; AI; distributed artificial intelligence; DAI; Multi-agent systems; MAS; framework.
ВВЕДЕНИЕ
Задачи моделирования и вычислений становятся намного более сложными по мере того, как размер продолжает увеличиваться, и, таким образом, их становится трудно решать централизованными методами. В результате появился и распространился распределенный искусственный интеллект (РИИ), помогающий решать эти сложные проблемы. Алгоритмы РИИ подразделяются на три категории, основанные на фундаментальных методах, используемых для решения задач, а именно: параллельный искусственный интеллект, распределенное решение задач (DPS) и мультиагентные системы (MAS). Параллельный ИИ предполагает разработку параллельных алгоритмов, языков и архитектур для повышения эффективности классических алгоритмов ИИ за счет использования параллелизма задач [Bond A.H., 2014]. DPS включает в себя разделение задачи на подзадачи, каждая из которых назначается узлу среди набора взаимодействующих узлов, известных как вычислительные объекты. Вычислительные объекты обладают общими знаниями или ресурсами, а также предопределенными связями с другими объектами, что, в свою очередь, ограничивает их гибкость [Daneshfar, Fatemeh, Bevrani H., 2009].
Мультиагентные системы (MASs) обеспечивают хорошее решение для распределенного управления и решения проблем, назначая каждую подзадачу специальному объекту, называемому агентами, который способен не только эффективно решать задачу, но и обучаться и адаптироваться к изменениям.
В этом исследовании будут оценены и сравнены несколько фреймворков, предназначенных для разработки мультиагентной системы ких как osBrain [osBrain Documentation, 2023], AIOMAS [AIOMAS Documentation, 2023], JADE [JADE Documentation, 2023] и SPADE [SPADE Documentation, 2023] чтобы получить полный обзор их возможностей и функциональности, чтобы исследователи могли успешно выбрать подходящий для своих работ.
Мультиагентные системы: определение и история
Вычисления на основе агентов стали горячей областью исследований в РИИ с целью создания автономного программного обеспечения для аппаратных объектов. Впервые идея агентно-ориентированной системы была выдвинута исследователями на семинаре по распределенному искусственному интеллекту, проходившем в Массачусетском технологическом институте в 1980 году. Они пытаются определить концепцию агента. Спустя 4 года, в 1984 году, Аксельрод объяснил, что сотрудничество между независимыми организациями может быть результатом их взаимодействия друг с другом без необходимости централизованного контроля. Затем многие исследователи начали применять эти концепции при проектировании роботов и распределенных устройств, которые взаимодействовали в системе, называемой мультиагентной системой. Пик начал быстро расти в 1990-х годах, когда было предпринято много попыток в области разработки агентных систем, и идея и свойства этой области были более ясными и определенными. В 1994 году проект ARCHON предложил архитектуру общего назначения, которая могла бы использоваться для облегчения совместного решения проблем в промышленных приложениях. KQML (Knowledge Query and Manipulation Language) был предложен в рамках усилий DARPA по обмену знаниями [Finin et al., 1994] и предложил стандартизированный способ коммуникации агентов, который отделял намерение сообщения в форме так называемого “перформативен” от фактического содержания сообщения. Эти усилия были дополнительно усовершенствованы с помощью FIPA ACL, языка общения агентов (FIPA, 1997).
В настоящее время, после медленного прогресса в разработке систем на основе агентов, интерес к этой идее возродился благодаря новому пониманию важности агентных систем, особенно в таких областях, как автономные автомобили и беспилотные летательные аппараты, в том числе предназначенные для доставки товаров клиентам, моделирования (например, поведения при эвакуации в чрезвычайных ситуациях или "умные города" и Интернет вещей (IoT), где новые технологические достижения в коммуникационной инфраструктуре (например, 5G и совместная мобильность) делают возможной дальнейшую автоматизацию и взаимосвязанность интеллектуальных устройств.
Приложения мультиагентных систем
Среди основных классов приложений, в которых использовались и используются агентные системы, можно отметить следующие:
- социальные симуляции: различные сценарии, например, представленные в предыдущем разделе;
- моделирование мобильности: дорожные ситуации, такие как обход пробок, управление освещением, выбор маршрута, например [Czura et al., 2014], наземный транспорт, системы планирования мобильности, городское планирование на основе исследований доступности с динамичным населением, микроскопические толпы пешеходов, или картирование пассажиропотоков для улучшения рынка и эвакуации зданий, управления полетами или воздушным движением в авиации;
- физические объекты: роботы или беспилотные транспортные средства (автомобили, дроны), рассматриваемые как агенты;
- окружающая среда и экосистемы: моделирование в области экологии, например [Ayllón et al., 2016], биология, климатические модели, взаимодействие человека и природы (иногда с использованием географических информационных систем), эпидемиология (распространение инфекций или болезней);
- организационное моделирование: планирование и составление графиков, поведение предприятия и организации, моделирование рабочих процессов.;
- экономические исследования: бизнес, маркетинг, экономика (например, прогнозирование цен на реальных мировых рынках);
- медицинские приложения: персонализированное здравоохранение или управление больницами, например [Sulis и Di Leva, 2018];
- промышленное моделирование: производство и производство, в том числе с использованием холонов, напр. [Luminita et al., 2019];
- военные приложения: моделирование военных боев, сценарии противовоздушной обороны.
Фреймворки агентных систем: обзор
Принимая во внимание постоянное развитие и растущую зрелость агентских платформ, не говоря уже о недавнем создании новых, этот анализ предоставляет актуальный обзор существующих агентских платформ в сочетании с кратким описанием недавно упраздненных.
С падением интереса после 2005 года большинство этих платформ были более или менее заброшены. Вот почему важно задуматься о том, что доступно сегодня – и это цель данной работы.
Структура обзора
Текущий анализ представляет список более современного программного обеспечения, бесплатного или коммерческого, последнее иногда со специальными скидками или бесплатными предложениями для научных кругов. Кроме того, в этот опрос также включены некоторые платформы, больше ориентированные на область искусственного интеллекта. Эти платформы можно использовать для решения мультиагентных задач или для изучения возникающего поведения интеллектуальных мультиагентных систем в различных областях, таких как аркадные игры, робототехника, автономные транспортные средства или агенты, способные к обучению с подкреплением. Основная структура настоящего обзора графически представлена на рисунке 2.
Рисунок 1. Основная структура текущего обзора
Связанные работы по обзору платформ агентов
По мере развития области агентных систем ряд авторов пересматривали ландшафт этого типа программного обеспечения. Некоторые обзоры ограничены определенной областью применения, например маркетингом, сетями и землепользованием. [Dorri et al., 2018] обсуждают такие аспекты, как определения, приложения, функции, проблемы, коммуникации, оценка, но не представляют напрямую полный список программных платформ, которые можно использовать для реализации агентских систем.
Аллан в 2010 рассматривает развитие на момент написания статьи и, помимо программных платформ, обсуждает области применения с примерами использования из физики, химии, биологии, кибербезопасности, социального моделирования, экономики и окружающей среды [Allan, 2010]. В новых статьях напр. [Abar, 2017] также рассматривается широкий спектр программных инструментов, различные функции инструментов и типы лицензий.
Фреймворки агентных систем: сравнение
Сравнение сосредоточено на все еще существующих фреймворках или платформах, поэтому для их сравнения мы выбираем следующие известные фреймворки: osBrain, AIOMAS, JADE и SPADE.
osBrain
osBrain — это модуль мультиагентной системы модуль общего назначения, основанный на Python и разработанный OpenSistemas. Агенты работают независимо как системные процессы и взаимодействуют друг с другом с помощью передачи сообщений.
osBrain использует ZeroMQ для эффективной и гибкой передачи сообщений между агентами. Он также использует Pyro4 для упрощения настройки и развертывания сложных систем. Благодаря Pyro4 удаленные агенты можно рассматривать как локальные объекты и переконфигурировать их даже во время работы. В удаленных агентах можно создавать не только переменные, но и новые методы. osBrain обеспечивает основу для реализации надежных, высоко доступных и гибких мультиагентных систем. Будучи реализованным на Python, osBrain может использовать преимущества огромного набора пакетов для анализа данных, статистики, численных вычислений и т. д., доступных в экосистеме Python.
osBrain успешно использовался для разработки платформы автоматической торговли в реальном времени в OpenSistemas, но, будучи мультиагентной системой общего назначения, он не ограничивается этим приложением. Другие приложения включают в себя: транспорт; логистика; оборонное и военное применение; сеть; балансировка нагрузки; самовосстанавливающиеся сети.
В общем, osBrain можно использовать всякий раз, когда архитектура мультиагентной системы хорошо подходит для приложения:
- автономия агентов;
- местные виды;
- децентрализация;
AIOMAS
AIOMAS — это простая в использовании библиотека для каналов запроса-ответа, удаленных вызовов процедур (RPC) и мультиагентных систем (MAS). Он написан на чистом Python поверх asyncio. Пакет выпущен под лицензией MIT. Для него требуется Python 3.4 и выше, и он работает в Linux, OS X и Windows.
Основная цель Aiomas — упростить создание распределенных систем (например, мультиагентных систем (MAS)) с использованием чистого Python и asyncio. Поэтому он добавляет три уровня абстракции вокруг транспортов (сокетов домена TCP или Unix), которые предоставляет asyncio:
- Каналы запроса-ответа;
- Удаленные вызовы процедур (RPC);
- Агенты и контейнеры.
Его особенности включают в себя:
- поддержка TLS для авторизации и зашифрованной связи;
- взаимозаменяемые и расширяемые кодеки: встроены JSON и MsgPack (последний опционально сжимается с помощью Blosc). Вы можете добавлять собственные кодеки или писать (де)сериализаторы для своих собственных объектов, чтобы расширить кодек;
- детерминированные эмулированные сокеты: транспорт LocalQueue позволяет отправлять и получать сообщения в детерминированном и воспроизводимом порядке в рамках одного процесса. Это помогает тестировать и отлаживать распределенные алгоритмы.
JADE
JADE (англ. Java Agent DEvelopment Framework) — это программная платформа, полностью реализованная на языке Java. Он упрощает внедрение мультиагентных систем за счет промежуточного программного обеспечения, соответствующего спецификациям FIPA, и набора графических инструментов, поддерживающих этапы отладки и развертывания. Систему на базе JADE можно распределить по машинам (которые даже не обязательно должны использовать одну и ту же ОС), а конфигурацией можно управлять через удаленный графический интерфейс. Конфигурацию можно даже изменить во время выполнения, перемещая агенты с одной машины на другую по мере необходимости. JADE полностью реализован на языке Java, и минимальным системным требованием является версия 5 JAVA (среда выполнения или JDK). Помимо абстракции агента, JADE предоставляет простую, но мощную модель выполнения и композиции задач, одноранговую связь агентов на основе парадигмы асинхронной передачи сообщений, службу желтых страниц, поддерживающую механизм обнаружения публикации и подписки, а также многие другие расширенные функции, которые облегчают разработку распределенная система.
JADE является бесплатным программным обеспечением и распространяется владельцем авторских прав Telecom Italia с открытым исходным кодом на условиях лицензии LGPL2.
SPADE
SPADE (англ. Smart Python Agent Development Environment) — это платформа мультиагентных систем, написанная на Python и основанная на обмене мгновенными сообщениями (XMPP). Это помогает разрабатывать агентов, которые могут общаться как с другими агентами, так и с людьми. SPADE считается свободным программным обеспечением по лицензии MIT. Возможности SPADE включают в себя:
- мультиагентная платформа на базе XMPP;
- уведомление о присутствии позволяет системе знать текущее состояние агентов в режиме реального времени;
- Питон >=3,8;
- асинхронный;
- модель агента, основанная на поведении;
- поддерживает метаданные FIPA с использованием форм данных XMPP (XEP-0004: Формы данных);
- веб-интерфейс;
- используйте любой сервер XMPP.
Протокол XMPP предложил отличную архитектуру для структурированного взаимодействия агентов и решил многие проблемы, возникающие при разработке платформы, такие как аутентификация пользователей (агентов), предоставление каталога или создание каналов связи.
Модель агента в основном состоит из механизма подключения к платформе, диспетчера сообщений и набора различных вариантов поведения, которым диспетчер передает сообщения. Каждому агенту необходим идентификатор Jabber ID, также известный как JID, и действительный пароль для установления соединения с сервером XMPP. В Таблице 1 суммировано общее сравнение характеристик выбранных платформ.
Таблица 1.
Общие характеристики фреймворков
|
osBrain |
AIOMAS |
JADE |
SPADE |
Основное назначение |
Общий |
Общий |
Общий |
Общий |
Лицензия |
Apache v2 |
MIT |
MIT |
LGPL v2 |
Открытый источник |
Да |
Да |
Да |
Да |
Языки программирования |
Python |
Python |
JAVA |
Python |
Операционные системы |
Linux, Unix, Mac, Windows, Android |
Linux, Windows |
Linux, Мак, Windows |
Linux, Windows |
ЗАКЛЮЧЕНИЕ
В этой работе мы представили обзор концепций и принципов парадигмы системы агентного моделирования и проанализировали наиболее используемые и признанные мультиагентные платформы. В этой статье было показано, что исследования агентно-ориентированного моделирования восходят к ранней работе над «РИИ». Моделирование на основе агентов теперь более универсально и используется в большем количестве секторов и областей исследований. Он постепенно вытесняет различные методы микро-моделирования и объектно-ориентированного моделирования. Это позволяет создавать характерные черты системы, такие как возникающие явления, без необходимости делать априорные предположения относительно совокупных (макроскопических) свойств системы.
Мультиагентное моделирование можно использовать для проверки гипотез и лучшего понимания сложных систем. Они гибки и позволяют естественным образом отразить многие характерные черты техно-социо-экономико-экологических систем (включая неоднородность и сетевые взаимодействия). Мультиагентное моделирование также может быть полезно для выявления интересных экспериментальных установок, учитывая, в частности, высокую стоимость экспериментов и то, что они ограничены небольшим количеством условий и повторений. Симуляции на основе агентов, по-видимому, многообещающий подход для достижения научного прогресса в различных областях, от социальных наук до этологии, экологии, биологии, дорожного движения и транспорта, и производства.
