Анализ технологий и инструментальных средств разработки многоагентных систем для моделирования образовательных процессов
Автор: Янкивский А.А., Федяев О.И.
Источник: V Международная научно-техническая конференция "Современные информационные технологии в образовании и научных исследованиях". СИТОНИ-2017 — Донецк, ДонНТУ — 2017, Том 1, с. 234-238.
Описание: в работе рассматривается анализ технологий и инструментальных средств разработки многоагентных систем для моделирования образовательных процессов. Приведена характеристика инструментальных средств JADE, JAKE, Zeus, Mason, MadKit и выделены их особенности.
Ключевые слова: многоагентные системы, инструментальные среды, программный агент.
Введение
Первоначально идея интеллектуального посредника ("агента") возникла в связи с желанием упростить стиль общения конечного пользователя с компьютерными программами. Эта идея оказалась весьма плодотворной, и ее реализация привела к созданию так называемых "автономных агентов", которые обеспечивали новый стиль взаимодействия пользователя с программой. Новым было то, что как пользователь, так и компьютерный посредник-агент принимали участие в запуске задачи, управлении событиями и решении задачи.
Исследования и экспериментальные программные разработки довольно быстро показали, что множество задач, в которых агент может эффективно ассистировать пользователю, практически неограниченно. К ним относятся поиск информации в Internet и ее анализ, управление электронной почтой, календарное планирование, электронная коммерция, помощь в каком-либо выборе (подготовка рекомендаций при выборе книг, кино, музыки) и т.д.
В настоящее время интеллектуальные агенты – персональные ассистенты рассматриваются как автономные программы ("программные интеллектуальные роботы"), которые могут как работать на персональном компьютере пользователя, так и мигрировать по компьютерной сети в поисках релевантных данных, знаний и процедур с целью удовлетворения различных информационных, вычислительных и других потребностей пользователей.
На текущий момент сфера исследований и разработок в области многоагентных систем очень широка и разнообразна. Начиная с середины 90-х годов, теоретические и прикладные исследования в области многоагентных систем значительно активизировались и заняли одно из ведущих мест в области информационных технологий. Нет сомнений, что, по крайней мере, в ближайшее десятилетие интенсивность исследований в данной области будет усиливаться.
Инструментарий JADE
JADE – это программное обеспечение промежуточного слоя, разработанное компанией TILAB, предназначенное для создания распределенных мультиагентных приложений на основе транспортной архитектуры «точка-точка».
Платформа JADE включает как программные библиотеки (т.е. наборы Java-классов), требуемые для разработки прикладных агентов, так и среду исполнения, которая предоставляет базовые службы и которая должна быть активна на устройстве до того, как на нем будет исполняться агент. Ограниченный объем места, которое занимает JADE в оперативной памяти, позволяет устанавливать это программное обеспечение на все мобильные телефоны, поддерживающие технологию Java.
Основополагающие принципы платформы:
- функциональная совместимость – продукт JADE разработан в соответствии со спецификациями FIPA. Как следствие JADE-агенты могут взаимодействовать со сторонними агентами, поддерживающими этот стандарт;
- портируемость и единообразность – продукт JADE предоставляет гомогенный набор прикладных программных интерфейсов(API), которые не зависят ни от базового устройства сети, ни от версии платформы Java. При развертывании разработчики приложений должны определить тип среды исполнения Java;
- простота использования – набор простых и интуитивно-понятных интерфейсов API прячет сложную логику ПО промежуточного слоя от пользователя;
- принцип «разрабатывать по средствам» — программистам нет необходимости использовать все возможности, которые предоставляет ПО промежуточного слоя. От программистов не требуется знать что-либо о неиспользуемых функциях платформы. Ни одна из незадействованных функций не создает дополнительные накладные вычислительные расходы.
Ограниченный объем места, которое занимает JADE в оперативной памяти, позволяет устанавливать это программное обеспечение на все мобильные телефоны, поддерживающие технологию Java.
Агенты общаются путем обмена асинхронными сообщениями, модель коммуникаций почти повсеместно применима для распределенных и слабосвязанных коммуникаций, т.е. коммуникаций между гетерогенными сущностями, который ничего не знают друг о друге.
Рисунок 1 – Архитектура JADE
Инструментарий Jack
JACK TM Intelligent Agents (JACK) представляет собой агентно-ориентированную среду разработки, которая построена на основе языка программирования Java. JACK является надстройкой Java в виде расширения синтаксиса Java конструкциями для программной реализации свойств, связанных с понятием интеллектуального агента. Язык программирования агентов JACK предлагает следующие возможности:
1. определяет новые основные классы, интерфейсы и методы;
2. расширяет синтаксис Java для поддержки новых агентно-ориентированных классов, определений и операторов;
3. предоставляет расширения семантики (особенности при выполнении) для поддержки модели выполнения, требуемой агентно-ориентированной программной системой.
Все расширения языка реализованы как plug-in, что делает язык максимально расширяемым и гибким в агентно-ориентированном программировании.
На уровне классов введены 5 главных конструкций:
1. агент, который в JACK моделирует интеллектуальные сущности;
2. способность, которая собирает в одно целое функциональные компоненты (события, планы, множество убеждений и др. способности), для использования их агентами;
3. событие, для моделирования ситуаций и сообщений, на которые агент должен быть способен ответить;
4. план, который предназначен для моделирования процедурного описания того, как агент управляет данным событием (все предпринимаемые агентом действия заранее предусмотрены и описаны в его планах);
5. множество убеждений, для моделирования знаний агента в виде убеждений, которые придерживаются семантики закрытого или открытого мира. Данная конструкция представляет убеждения агента в виде реляционных кортежей первого порядка и обеспечивает их логическую непротиворечивость.
Следует отметить, что желаемое поведение агента инкапсулируется в модульных единицах, определяемых этими классами, а классы содержат все требуемые для независимого выполнения структуры и методы, которые программисты на языке JACK могут использовать. Для установления отношений между упомянутыми выше классами существует набор деклараций.
Для поддержки выполнения агентно-ориентированной программной системы JACK предоставляет следующие дополнительные языковые расширения, обеспечивающие следующую семантику:
1. Многопоточность встроена в ядро и выведена из-под контроля программиста.
2. Работа агентов осуществляется таким образом, что агенты обрабатывают множество планов и имеют доступ к описаниям убеждений. Агенты выполняют планы в задачах управления событиями, когда они возникают, сравнивая свои убеждения, когда необходимо. Эти планы могут инициировать подзадачи, которые в свою очередь могут инициировать свои подзадачи, если агент требует трудоемкий и сложный ответ.
3. Введена новая структура данных, названная логический элемент (logical member), значение которого зависит от результата запроса к множеству убеждений агента.
4. Возможность выполнение запросов к множеству убеждений агента, используя для этого логические элементы, посредством их объединения для получения желаемого результата. Если запрос имеет успех, то логический элемент содержит желаемое значение.
Компонент среды разработки JACK (JACK Development Environment) дает возможность рисования обзорных диаграмм, по которым среда генерирует скелет программного кода и следит за тем, чтобы изменения, произведенные в коде, отображались и на диаграммах.
Агенты, создаваемые в JACK, имеют архитектуру, присущую интеллектуальным агентам. Таким образом, возможно моделирование разумного поведения, в соответствии с теоретической моделью BDI- архитектуры агента, основанной на убеждениях, желаниях и намерениях.
Согласно BDI-архитектуре, интеллектуальные агенты JACK - это автономные программные компоненты, которые могут проявлять разумное поведение на основе проактивности (целенаправленность) и реактивности (направляемое событиями) на входные сигналы. Каждый такой агент имеет:
· убеждения (это его набор данных о мире);
· желания (набор событий на которые он будет реагировать и набор целей, достижения которых он может желать);
· намерения (набор планов, которые описывают как он может управлять возникающими целями и планами).
Если агента рассматривать как аналог личности, то набор планов описывает шаги, которые агент должен выполнить при возникновении определенного события или желании достичь определенного результата. На первый взгляд, поведение агента может показаться похожим на действия экспертных систем, со всеми присущими им ограничениями. Однако, принципиальное отличие агентно-ориентированных систем в том, что агенты можно программировать для выполнения планов точно так же, как действовала бы разумная личность. В частности, с помощью агентов можно реализовать следующие свойства, ассоциирующиеся с разумным поведением:
· устойчивую целенаправленность - агенты сосредоточены на целях, а не на выбранных методах для их достижения;
· контекстную зависимость в реальном времени - агенты будут следить за вариантами, которые применимы в каждый момент времени и принимать решения относительно последующих действий, на основе имеющихся условий;
· утверждение правильности подхода в реальном времени - агент будет гарантировать, что он следует выбранному курсу действий до тех пор, пока определенные условия продолжают быть истинными;
· одновременность - агентная система является многопоточной. Если возникают новые цели и события, то агент способен определить приоритеты по требованию многозадачности.
JACK приложение представляет собой исходный код, реализующий характерные для агентно-ориентированного подхода понятия: агентов, способностей, события, планы, убеждения, view (запросы), а также Java класс с функцией main(), которая является точкой входа для виртуальной машины Java, и любые другие Java необходимые файлы. Файлы, которые создаются для этих понятий, должны иметь такое же имя, как и у объекта, определяемого в файле. Они имеют расширение, определяющее тип JACK понятия. Компилятор агентов JACK конвертирует исходные файлы на языке агентов JACK в код на языке Java, который затем компилируется в код виртуальной машины Java для выполнения на целевой системе.
Инструментарий Zeus
Zeus, результат тщательного синтеза существующих многоагентных технологий и новых подходов, предоставляет интегрированную среду для быстрого создания программного кода сложных многоагентных приложений. Zeus оперирует собственной методологией проектирования многоагентных систем, предоставляет визуальные средства для спецификации агентов пользователем, автоматически генерирует выполняемый программный код на основе пользовательских спецификаций.
Причины создания среды Zeus можно отнести к двум категориям. Во-первых, разработчики многоагентных приложений нуждаются в создании методологий и инструментариев в виде фреймворков, инструментальных сред для создания распределенных многоагентных систем. Во-вторых, инструментарий по типу Zeus облегчает разработку многоагентных приложений: ускоряет процесс разработки, позволяет многократно использовать программный код, способствует стандартизации агентных технологий.
Цель проекта ZEUS — обеспечение быстрого прототипирования новых приложений за счет "внедрения" в инструментарий общих принципов проектирования агентных систем и компонент, лежащих в основе уже существующих МАС. Также целями при создании среды Zeus стали:
-определение и разработка концепции агента Zeus;
-создание понятной методологии проектирования и инструментария Zeus для реализации распределенных многоагентных систем;
-разработка набора программ визуализации и средств отладки для инструментария Zeus.
Инструментарий ZEUS состоит из множества компонент (также реализованных на языке Java), которые можно разбить на три функциональные группы (библиотеки): Agent Component Library, Agent Building Tool и Suite of Utility Agents.
Рисунок 2 – Концептуальная структура Zeus агента
Инструментарий Mason
Программная система MASON (Multiagent Simulator of Neighbourhood) – это инструментарий, позволяющий выполнять однопроцессное дискретное моделирование с выборкой случайных событий, содержащий средства визуализации. Он написан на языке Java, является достаточно гибкой средой для широкого применения при моделировании. Особо стоит подчеркнуть тот факт, что инструментарий позволяет строить мультиагентные системы с очень большим количеством (вплоть до миллиона) агентов. Программный комплекс является бесплатным и поставляется с открытым внешним кодом.
Программный комплекс написан на языке Java и поэтому обладает портируемостью, строгой типизацией и точностью (для обеспечения воспроизводимости результатов).
Cписок целей разработки:
• Небольшое, производительное, доступное для понимания, легко модифицируемое ядро.
• Независимая, расширяемая 2D- и 3D- визуализация.
• Генерация одинаковых результатов независимо от платформы
• Поддержка до миллиона агентов (без визуализации)
• Поддержка работы с наибольшим возможным количеством агентов (с визуализацией)
• Простая интеграция со сторонними библиотеками
Каких функций в данном продукте нет (и их реализация не планировалась разработчиками платформы):
• Реализация моделирований на распределенной, многопроцессорной системе
• Поддержка специальных функций для моделирования социальных агентов и роботов
• Эффективное использование оперативной памяти
Программное обеспечение MASON предоставляет различные обертки, которые могут группировать агентов вместе, перечислять их, работать с ними в параллельных или отдельных потоках и др.
Рисунок 3 - Основные элементы MASON
Инструментарий MadKit
Инструментальная среда MadKit является универсальной мультиагентной платформой. Этот инструментарий основан на организационной модели AGR. Архитектура MadKit основана на микроядре. Базовые службы, такие как: распределенная передача сообщений, миграция или контроль - реализованы агентами платформы для достижения максимальной гибкости. Компонентная интерфейсная модель позволяет устанавливать интерфейсы для различных агентов.
Есть примеры удачного использования MadKit в проектах, касающихся широкого диапазона приложений от моделирования гибридной архитектуры для управления подводных роботов до оценки социальных сетей или исследованию мультиагентного управления на производственной линии.
Методика, используемая в MadKit, является достаточно простой в применении.
Большим преимуществом данной инструментальной среды является тот факт, что она не налагает никаких ограничений на архитектуру агентов для достижения максимальной универсальности приложений. Например, сейчас общепризнанной является BDI-архитектура, а через некоторое время, возможно, будет использоваться другая новая архитектура интеллектуального агента. В данном случае разработчикам агентных систем не нужно будет изучать другую инструментальную среду для использования новой архитектуры.
Взаимодействие агентов осуществляется с помощью сообщений различных типов, также есть возможность создавать свои типы сообщений. Большое разнообразие типов сообщений можно отнести к положительным характеристикам среды. Агенты могут взаимодействовать как в сети, так и на одном компьютере из одной или разных сессий моделирования.
Система MadKit является удобным инструментом для разработки МАС, т.к. она имеет множество визуальных элементов, которые упрощают работу. Например, в MadKit есть дерево отношений агентов, которая содержит информацию о том, к какой группе относятся агенты, какую роль играют и т.д., таблица сообщений, содержащая сведения об агенте-отправителе, агенте-получателе, дате, времени и т.д., автоматически строится временная диаграмма, есть возможности для построения визуализации МАС.
Таким образом, принципиальных недостатков в инструментальной среде MadKit обнаружено не было.
Заключение
Наиболее удобным инструментарием, который позволяет строить мультиагентные системы с большим количеством агентом является Mason. JADE позволяет устанавливать это программное обеспечение на все мобильные телефоны, поддерживающие технологию Java, также продукт JADE разработан в соответствии со спецификациями FIPA. Zeus оперирует собственной методологией проектирования многоагентных систем, и автоматически генерирует выполняемый программный код на основе пользовательских спецификаций. Система MadKit является удобным инструментом для разработки МАС, т.к. она имеет множество визуальных элементов, которые упрощают работу.
Литература
1. Многоагентная система [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Многоагентная_система. – Загл. с экрана|.
2. Hyacinth S. Nwana, Divine T. Ndumu, Lyndon C. Lee. ZEUS: An advanced tool-kit for engineering distributed multi-agent systems [Электронный ресурс]– Режим доступа: http://www.agent.ai/doc/upload/200302/nwan98.pdf. – Загл. с экрана|.
3. Зудикова Ю.В., Федяев О.И. Разработка многоагентной модели процесса производства промышленных смесей [Текст] / Ю.В. Зудикова, О.И. Федяев // Інформатика та ком'ютерні технології / Матеріали V міжнародної науково-технічної конференції студентів, аспірантів та молодих науковців - 24-26 листопада 2009 р., Донецьк, ДонНТУ. - 2009, с. 261-264.
4. Городецкий В.И., Грушинский М.С., Хабалов А.В. Многоагентные системы (обзор) [Электронный ресурс] – Режим доступа: https://refdb.ru/look/2448008.html. – Загл. с экрана|.
5. Многоагентная система [Электронный ресурс] – Режим доступа: https://www.turkaramamotoru.com/ru/Многоагентная-система-71970.html. – Загл. с экрана|.
6. Инструментарий AgentBuilder [Электронный ресурс] – Режим доступа: http://megalektsii.ru/s12588t1.html. – Загл. с экрана|.
7. Платформы для разработки МАС [Электронный ресурс] – Режим доступа: http://www.intuit.ru/studies/courses/13858/1255/lecture/23977. – Загл. с экрана|.
8. Типы взаимодействия агентов в многоагентной системе – Режим доступа:___http://studopedia.ru/2_27518_tipi-vzaimodeystviya-agentov-v-mnogoagentnoy-sisteme.html. – Загл. с экрана|.
9. Wooldridge M.J. An Introduction to Multiagent Systems. Wiley. 2002. [Электронный ресурс] – Режим доступа: http://www.csc.liv.ac.uk/~mjw/pubs/imas/imas1e/. – Загл. с экрана|.
10. Сравнение средств разработки для создания мультиагентных систем [Электронный ресурс]– Режим доступа: https://ru.wikipedia.org/wiki/Сравнение_средств_ разработки_для_создания_мультиагентных_систем. – Загл. с экрана|.
Янкивский А.А., Федяев О.И. Анализ технологий и инструментальных средств разработки многоагентных систем для моделирования образовательных процессов. В работе рассматривается анализ технологий и инструментальных средств разработки многоагентных систем для моделирования образовательных процессов. Приведена характеристика инструментальных средств JADE, JAKE, Zeus, Mason, MadKit и выделены их особенности.
Ключевые слова: многоагентные системы, инструментальные среды, программный агент
Yankivskiy A.A., Fedyaev O.I. Analysis of technologies and tools for developing multi-agent systems for modeling educational processes. The paper considers the analysis of technologies and tools for the development of multi-agent systems for the modeling of educational processes. The characteristics of the tools JADE, JAKE, Zeus, Mason, MadKit are given and their features are highlighted.
Keywords: multi-agent systems, tool environments, software agent