Научная статья на тему 'Проектирование и разработка многоагентных систем'

Проектирование и разработка многоагентных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
622
100
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АГЕНТ / МНОГОАГЕНТНАЯ СИСТЕМА / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / СРЕДСТВА РАЗРАБОТКИ / JADE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Крушиневский Евгений Александрович, Попов Дмитрий Анатольевич, Матлаш Александр Николаевич, Блохина Марина Юрьевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Крушиневский Евгений Александрович, Попов Дмитрий Анатольевич, Матлаш Александр Николаевич, Блохина Марина Юрьевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Проектирование и разработка многоагентных систем»

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Проектирование и разработка многоагентных систем Крушиневский Е. А.1, Попов Д. А.2, Матлаш А. Н.3, Блохина М. Ю.4

1 Крушиневский Евгений Александрович /Kru.shinev.skiy Evgeniy Aleksandrovich - магистрант, факультет прикладной математики - процессов управления, Санкт-Петербургский государственный университет;

2Попов Дмитрий Анатольевич /Popov Dmitry Anatolevich - магистрант,

факультет технологического менеджмента и инноваций, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики;

Матлаш Александр Николаевич /Matlash Aleksandr Nikolaevich - магистрант, факультет прикладной математики - процессов управления, Санкт-Петербургский государственный университет;

4Блохина Марина Юрьевна /Blokhina Marina Yuryevna - магистрант,

факультет технологического менеджмента и инноваций, Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, г. Санкт-Петербург

Аннотация: многоагентные системы используются для разработки широкого спектра информационных и промышленных систем. В данной работе рассмотрены основные методологии и инструменты для проектирования многоагентных приложений на примере реализации сервиса для доставки пиццы. Ключевые слова: агент, многоагентная система, программное обеспечение, средства разработки, JADE.

Введение

Многоагентные системы (МАС) имеют широкое применение в современной жизни. Они используются в решении задач автоматизации управления сложными системами, в сфере сетевых и мобильных технологий, промышленности, бизнесе и так далее [1]. Работы в области МАС, в особенности разработка приложений, требуют привлечения знаний и технологий из ряда областей, которые ранее были вне поля зрения специалистов по искусственному интеллекту. Прежде всего, это относится к параллельным вычислениям, технологии открытой распределенной обработки, обеспечения безопасности и мобильности агентов. Целью данной работы является обзор агентной парадигмы и существующих платформ для проектирования и реализации многоагентных систем.

Общие положения

Интеллектуальный агент (ИА) — система, обладающая следующими свойствами:

• автономность — способность самостоятельно управлять своими действиями и внутренним состоянием;

• реактивность — способность к активному восприятию внешней среды и своевременному отклику на происходящие в ней события;

• активность — способность осуществлять целенаправленное поведение и проявлять инициативу;

• социальность — способность взаимодействовать с другими агентами.

Многоагентная система (MAC) — совокупность взаимодействующих в процессе

своей целенаправленной деятельности интеллектуальных агентов.

В МАС весь спектр задач по определенным правилам распределяется между всеми агентами. Распределение заданий означает присвоение каждому агенту некоторой роли, сложность которой определяется согласно его возможностям. При проектировании МАС для распределения задач между агентами существует два подхода — система распределенного решения проблемы и децентрализованный

искусственный интеллект. В первом варианте процесс разбиения глобальной задачи и обратный процесс слияния найденных решений происходит под управлением единого «центра». В случае использования децентрализованного искусственного интеллекта распределение заданий происходит в процессе взаимодействия агентов, что часто приводит к появлению резонансных эффектов.

Агенты могут обмениваться полученными знаниями, используя специальный язык и подчиняясь правилам «общения» (протоколам) в системе. Примерами таких языков являются Knowledge Query Manipulation Language (KQML) и FIPA's Agent Communication Language (ACL).

Платформы для разработки МАС

В 90-х годах возникла необходимость создания единых стандартов на разработку агентных систем. В этот период были основаны две организации MASIF (Mobile Agent System Interoperability Facility) и FIPA (Foundation of Physical Intelligent Agents). В результате их работы появились стандарты MASIF и FIPA [2], дающие рекомендации по созданию систем мобильных и интеллектуальных агентов.

Существует много программных реализаций агентных платформ, каждая из которых имеет свои достоинства и недостатки. Ниже представлены некоторые из них:

• MadKIT — многоагентная платформа с наглядной визуализацией, написанная на Java. Поддерживает языки: Java, Python, Jess, Scheme, BeanSchell.

• NetLogo — кроссплатформенное программируемое окружение для разработки МАС.

• VisualBots —многоагентный симулятор в Microsoft Excel с синтаксисом Visual Basic.

• CogniTAO — платформа, написанная на С++, для разработки автономных МАС, ориентированная на роботов и виртуальных существ (CGF).

Разработка МАС

Для разработки демонстрационного многоагентного приложения была выбрана технология JADE (Java Agent Development Framework) [3] — широко используемая программная среда для создания мультиагентных систем и приложений, поддерживающая FIPA-стандарты. JADE включает в себя среду выполнения агентов, библиотеку классов, набор графических утилит для администрирования и наблюдения за жизнедеятельностью активных агентов, а также подключается к любому проекту на языке Java.

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

Каждый агент-клиент получает название пиццы, которую хочет купить -> передает его агенту-оператору в качестве заказа и ждет ответ -> получает ответ -> если ответ положительный, то заканчивает свою работу, иначе ждет выполнения своего заказа, отправляя запрос о желаемой пицце агенту-оператору каждую минуту.

Агент-оператор получает от агента-клиента сообщение с названием требуемой пиццы -> рассылает его всем агентам-пиццериям, ждет ответы от них с ценой запрашиваемой пиццы -> получает ответ от пиццерий, выбирает наименьшую цену и отправляет запрос о покупке пиццерии с наименьшей ценой -> получает ответ от пиццерии и отправляет его клиенту.

Агент-пиццерия имеет интерфейс, который позволяет пользователю добавлять названия пиццы с ценой в локальный каталог. Агент-пиццерия все время проверяет поступление запроса от агента-оператора -> при получении запроса, проверяет наличие требуемой пиццы и, если такая пицца есть, то отправляет ее название и цену агенту-оператору, после чего ждет предложения о покупке -> получив предложение, отвечает агенту-оператору о продаже. После выполнения заказа, проданная пицца удаляется из каталога.

Каждый агент в данной МАС является определенным классом, который наследуется от класса jade.core.Agent. В данном классе инициализация агента происходит с помощью реализации метода setup(), после чего агент выполняет функции согласно своему поведению. Поведение агента — это последовательность его действий, которая определяется методом addBehaviour() и реализуется как объект класса, наследуемого от jade.core.behaviours.Behaviour [4].

Коммуникация между агентами — одна из самых важных функциональных возможностей JADE. Обмен сообщений происходит асинхронно и осуществляется с помощью Message Transport System. Внутри платформы сообщения пересылаются в виде Java-объектов для ускорения передачи, а между платформами — в виде XML-строки. Сообщения имеют формат языка ACL и реализуются как объект класса jade.lang.acl.ACLMessage. Данный формат содержит различные типы сообщений. В данном проекте использовались сообщения REQUEST (запрос), CTP (извещение о предложении), PROPOSE (предложение), ACCEPT_PROPOSAL (принятие предложения), REJECT_PROPOSAL (отклонение предложения). Для получения и отправки сообщений в классе Agent реализованы соответствующие методы receive() и send(). Для того чтобы агенты-операторы могли динамически узнавать о доступных в данный момент времени агентах-пиццериях используется очень удобный сервис «желтых страниц», который представляет реализованный в JADE агент Directory Facilitator (DF). Для завершения работы агента вызывается метод doDelete().

Запустить и выполнить многоагентное приложение в JADE можно с помощью удобного и интуитивно понятного графического интерфейса, где можно просмотреть всю структуру МАС, удобно добавлять и удалять агентов, отслеживать передачу сообщений между ними. Заключение

На сегодняшний день многоагентные системы играют очень важную роль в разработке широкого круга промышленных и информационных систем. В ходе выполнения данной работы были рассмотрены основы агентной парадигмы, методы проектирования многоагентных систем, а также технологии для разработки многоагентных приложений. В качестве примера МАС с помощью технологии JADE был разработан сервис для доставки пиццы.

Литература

1. Чекинов С. Г. Интеллектуальные программные исполнительные устройства (агенты) в системах связи // Информационные технологии. № 4, 2001. С. 6-11.

2. The Foundation of Physical Intelligent Agents. [Электронный ресурс]. URL: http://www.fipa.org/ (дата обращения: 25.08.2016).

3. Java Agent DEvelopment Framework. [Электронный ресурс]. URL: http://jade.tilab.com/ (дата обращения: 23.08.2016).

4. Симонова Е. В., Скобелев П. О., Сюсин И. А. Разработка мультиагентных приложений с использованием платформы JADE. Самара: изд-во ПГУТИ, 2012. С. 38-55.

i Надоели баннеры? Вы всегда можете отключить рекламу.