Источник: Информационные управляющие системы и компьютерный мониторинг-2011 / Матеріали науково-технічної конференції молодих учених та студентів. - Донецьк, ДонНТУ - 2011.


Аннотация:
Лукина Ю.Ю., Федяев О.И. Технология создания мультиагентных систем в инструментальной среде MadKit. Рассмотрены актуальность мультиагентных систем и проблема их разработки. Выполнен анализ инструментальной среды MadKit, включающей модель AGR, на которой основана архитектура платформы, модель агента и взаимодействия интеллектуальных агентов.

Актуальность мультиагентых систем и проблема их разработки

Мультиагентные системы (МАС) – одно из новых перспективных направлений создания интеллектуальных систем, основанных на знаниях, которое сформировалось на основе результатов исследований в области распределенного искусственного интеллекта, компьютерных сетей и распределенного решения задач. Ключевым элементом этих систем является программный агент, способный воспринимать ситуацию, принимать решения и взаимодействовать с другими агентами. Эти возможности радикально отличают МАС от существующих «жестко» организованных систем, обеспечивая им принципиально важное новое свойство, как способность к самоорганизации и кооперации.
Актуальность МАС в настоящее время обусловливают следующие причины:

· сложность современных систем и организаций, которая достигает такого уровня, что централизованное управление в них становится неэффективным из-за наличия огромных потоков информации;

· сами решаемые задачи или разрабатываемые системы подчас неоднородны, слабо структурированы и распределены в пространстве в функциональном плане;

· эволюция программного обеспечения происходит в сторону его разработки на основе автономных, индивидуализированных, взаимодействующих модулей;

· распространение различных сетей порождает распределенный взгляд на мир [1].

В целом МАС обеспечивают следующие важные преимущества:

· являются инновационными продуктами нового поколения, т.к. несут в себе качественно новые возможности распределенного решения задач;

· характеризуются гибкостью – они работают, динамично реагируя на изменения и постоянно улучшая решения в реальном времени;

· интеллектуальны – агенты не только следуют заданным процессам, но и анализируют ситуацию и ищут способ решения задачи, что гарантирует нахождение лучшего возможного решения;

· обладают высокой производительностью и способны к обучению;

· характеризуются высокой скоростью реакции на события и быстротой нахождения решения задачи;

· позволяют корректировать результаты работы системы [1].

Главным недостатком МАС является непредсказуемость поведения полной системы [2], основанной на её составляющих компонентах, поскольку нет никакого "общего" управления безопасностью. В результате агент может действовать как нарушитель и использовать систему "мошеннически".
По прогнозам специалистов агентно-ориентированный подход в ближайшем будущем займет центральное место при развитии средств управления информацией и знаниями, развитии глобальных компьютерных сетей, в особенности, сети Интернет.
В этой связи в области информационных технологий становится актуальной задача автоматизация разработки программных систем на основе агентов. Агентный подход требует применения новых методологий и инструментальных средств. В настоящее время появилось множество различных методологий и средств поддержки процессов проектирования агентов и МАС, но все они построены на своих принципах, используют свою модель агента, свою модель взаимодействия агентов и т.д. Одной из удачных инструментальных систем данного класса является, на наш взгляд, инструментарий MadKit – один из лидеров в этой области, анализу которого посвящена данная статья.

Платформа инструментальной среды MadKit

Объектом анализа выступает инструментальная среда разработки МАС MadKit. Общая архитектура платформы MadKit приведена на рис.1.


Рис. 1 – Архитектура платформы MadKit

Микроядро MadKit - маленькое (меньше 50 Кбайт) оптимизированное ядро системы. Оно содержит следующие механизмы:

· Менеджер групп/ролей – поддерживает корректную информацию о членах группы и обработанных ролях, также проверяет, корректны ли просьбы, обращенные к группам и ролевым структурам.

· Синхронизирующий механизм – управляет жизненным циклом агента, обрабатывает персональные данные агента и присваивает ему глобальный уникальный идентификатор. Это единственный модуль в MadKit, которому принадлежат прямые ссылки на фактические агенты.

· Механизм локального обмена сообщениями – управляет маршрутизацией и распределением сообщений между локальными агентами.

Системные агенты работают непосредственно с ядром и выполняют такие задачи, как распределенная передача сообщений, управление миграцией агентов, динамическая безопасность и др. аспекты управления системой.
Прикладные агенты – это агенты, создаваемые разработчиком для решения конкретной задачи.
Каждый агент имеет свой собственный графический интерфейс.
MadKit относится к реактивному типу архитектур МАС, т.к. система основана на поведенческих моделях типа "стимул-реакция". Модель мира, т.е. модель агентов и окружающей среды, описывается с помощью теории автоматов. MadKit является модульной и масштабируемой мультиагентной платформой, написанной на Java. MadKit обеспечивает высокую неоднородность архитектуры агентов и коммуникационных языков. Агенты могут быть написаны с использованием различных языков программирования: Java, Scheme (Kawa), Jess и BeanShell [5].

Модель агентной системы AGR (Agent/Group/Role)

Архитектура платформы MADKIT основана на AGR (агент/группа/роль) модели (рис. 2). Модель AGR базируется на трёх примитивных понятиях: агент, группа и роль, которые структурно соединены и не могут быть определены по-другому [3].



Рис. 2 – Модель AGR

Агент – активный объект передачи сообщений, который играет роли в пределах групп [4]. Он может играть несколько ролей, и может быть членом нескольких групп. Одной из самых важных характеристик модели AGR является отсутствие ограничений, наложенных на внутреннюю архитектуру агента, его поведение, его возможности, что позволяет построить модели разных специализаций.
Группа – ряд агентов, совместно использующих некоторые общие характеристики [4]. Агент может быть членом нескольких групп в одно и то же время. Важной особенностью групп модели AGR является то, что они могут свободно пересекаться. Группа может быть основана любым агентом.
Роль – абстрактное представление поведения (функций) агента в группе [4]. Один агент должен играть определенную роль в группе, а может играть и несколько ролей. Роли локальны для групп, и агент должен запросить роль для её выполнения. Несколько агентов могут играть одну роль.

Модель агента в MadKit

Структура агента в MadKit приведена на рис. 3.



Рис. 3 – Структура модели агента в MadKit

Агент в MadKit состоит из 4 обязательных разделов [4]:

· Раздел активации (activate section), содержащий некоторый программный код, который будет выполняться непосредственно после создания агента.

· Раздел «жизнь» (live section), который содержит основной программный код, описывающий поведение агента. Обычно, этот раздел содержит бесконечный цикл.

· Раздел «завершения» (end section), содержащий некоторый код, который выполняется, когда агент уничтожается.

· Графический раздел (initGUI section), содержащий описание компонента Java, который должен использоваться в качестве графического интерфейса агента, и предназначен для замены графического интерфейса по умолчанию.

MadKit не налагает на архитектуру агентов никаких ограничений для достижения максимальной универсальности приложений.

Взаимодействие агентов в MadKit

Взаимодействие агентов в MadKit осуществляется с помощью асинхронной передачи сообщений. Агент может отправить сообщение другому агенту, определяемому его адресом или с помощью широковещательного сообщения, которое передают агентам, играющим данную роль в определенной группе.
MadKit обеспечивает несколько видов предопределенных сообщений, таких как StringMessage (строковые сообщения), XMLMesssage (сообщения в формате XML) и ActMessage (сообщения с «действием»). С помощью последнего вида сообщения можно определить следующие подвиды сообщений: ACLMessages (сообщения в формате ACL) и KQMLMessages (сообщения в формате KQML). Также есть возможность определить свой собственный класс сообщения, который будет наследоваться от класса сообщения по умолчанию.
У каждого агента есть свой «почтовый ящик», в который доставляются сообщения. Такая реализация доставки сообщений обеспечивает более качественное обслуживание, т.е. обработка сообщений происходит по приоритетам, а не LIFO или FIFO. Агент также может игнорировать сообщение [4].

Пример агентной модели процесса распространения вируса

С помощью системы MadKit создана агентная модель распространения вирусов. Моделируемая среда представляет собой набор объектов (допустим, людей), определенное количество которых заражены вирусом, а остальные – нет. Все объекты двигаются определенным образом в произвольном направлении. Заражение происходит при непосредственном столкновении здорового и зараженного объектов, или может произойти в некотором радиусе от зараженного объекта.
Одно из состояний моделируемого процесса распространения вирусов показано на рис. 4. В этом примере здоровые объекты обозначены кругами, заражённые – квадратами.



а) б)
Рис. 4 – Промежуточный результат моделирования (а) – начальная стадия;
б) – состояние распространения вируса через 50 тактов модельного времени)

Параллельно визуальному моделированию пошагово строится график зависимости количества зараженных объектов от времени.
С помощью оконного интерфейса можно задавать начальные параметры моделирования.
Данная модель может быть применена для изучения следующих процессов:

· эпидемия гриппа в местах скопления людей;

· распространение слухов в социальных сетях;

· распространение информации в рабочем коллективе, студенческой группе, группе родственников, в группе знакомых людей и т.д.

Выводы

Инструментальная среда MadKit является универсальной мультиагентной платформой. Этот инструментарий основан на организационной модели AGR. Архитектура MadKit основана на микроядре. Базовые службы, такие как: распределенная передача сообщений, миграция или контроль – реализованы агентами платформы для достижения максимальной гибкости. Компонентная интерфейсная модель позволяет устанавливать интерфейсы для различных агентов.
Есть примеры удачного использования MadKit в проектах, касающихся широкого диапазона приложений от моделирования гибридной архитектуры для управления подводных роботов до оценки социальных сетей или исследованию мультиагентного управления на производственной линии [3].
Методика, используемая в MadKit, является достаточно простой в применении.
Большим преимуществом данной инструментальной среды является тот факт, что она не налагает никаких ограничений на архитектуру агентов для достижения максимальной универсальности приложений. Например, сейчас общепризнанной является BDI-архитектура, а через некоторое время, возможно, будет использоваться другая новая архитектура интеллектуального агента. В данном случае разработчикам агентных систем не нужно будет изучать другую инструментальную среду для использования новой архитектуры.
Взаимодействие агентов осуществляется с помощью сообщений различных типов, также есть возможность создавать свои типы сообщений. Большое разнообразие типов сообщений можно отнести к положительным характеристикам среды. Агенты могут взаимодействовать как в сети, так и на одном компьютере из одной или разных сессий моделирования.
Система MadKit является удобным инструментом для разработки МАС, т.к. она имеет множество визуальных элементов, которые упрощают работу. Например, в MadKit есть дерево отношений агентов, которая содержит информацию о том, к какой группе относятся агенты, какую роль играют и т.д., таблица сообщений, содержащая сведения об агенте-отправителе, агенте-получателе, дате, времени и т.д., автоматически строится временная диаграмма, есть возможности для построения визуализации МАС.
Таким образом, принципиальных недостатков в инструментальной среде MadKit обнаружено не было. MadKit отвечает современным требованиям и в дальнейшем планируется применение её для разработки моделей поведения человека в социально-экономической среде.

Литература

1. Т.В. Солодуха Мультиагентные системы в экономике: Интернет-ресурс. – Режим доступа : http://2010.it-edu.ru/docs/Sekzii_4-5/20_Soloduha_1253475363569911.doc

2. Jacques Ferber, Olivier Gutknecht, Fabien Michel From Agents to Organizations: an Organizational View of Multi-Agent Systems / Интернет-ресурс. – Режим доступа : http://www.madkit.org/documentations/FrToOrg_858.pdf

3. J. Ferber, O. Gutknecht, F. Michel The MADKIT Agent Platform Architecture / Интернет-ресурс. – Режим доступа : http://www.madkit.org/documentations/AgPlatArch.pdf

4. M. Sohail MadKit (Multi-Agent Development Kit): A generic multi-agent platform / Интернет-ресурс. – Режим доступа : http://www.madkit.org/documentations/GeMAP.pdf