Материал: Средства для создания программных агентов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Одним из главных преимуществ разработки интеллектуальных агентов на платформе Jadex является то, что не требуется изучения новых языков программирования. Вместо этого агенты кодируются на базе объектно-ориентированного программирования в интегрированной среде разработки (IDEs), типа Eclipse и Intellij IDEA.

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

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

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

Проведенный анализ наиболее известных инструментальных систем позволил выбрать эффективную и доступную среду Jadex.

2.2 Модель программного агента ресурсов

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

Одной из самых интересных и широко распространяемых архитектур агента является архитектура Цели-Факты-Планы (BDI). Эта архитектура состоит из понятий знаний, фактов и целей как мысленные отношения, которые генерируют человеческое действие.

Jadex объединяет эту модель в агентов Jade, вводя цели, факты и планы для манипуляции внутри агента. В Jadex, агенты имеют знания, которые могут быть каким-нибудь видом объектов Java, и запомнены в базу знаний. Цели изображают конкретные побуждения (состояния, которые достигнуты).

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

Цели в Jadex представляют собой объекты с некоторыми атрибутами. Целевое состояние, достигаемой цели, может быть явно представлено выражением, которое проверяет, достигнута ли цель.

В отличие от традиционных BDI систем, которые понимают цели как специфический вид событий, в Jadex цели являются центральной концепцией. Цели - это конкретные, мгновенные желания агента. Любая цель, которую преследует агент, будет более или менее непосредственно осуществлена соответственным действием, пока не будет предположения, что цель достигнута, непостигаема или больше не желаема.

Jadex поддерживает 4 вида целей:

1. цель выполнения – утверждает, что должно быть выполнено, но не обязательно приведет к определенному результату;

2. цель достижения – описывает абстрактное целевое состояние, которое необходимо достигнуть, без определения как это сделать. Таким образом, агент может опробовать разные альтернативы, для достижения цели;

3. цель запроса – представляет необходимость в информации. Если информация на текущий момент не доступна, выбираются и выполняются планы, которые помогают ее собрать;

4. цель поддержания – специфицирует состояние, которое должно сохраняться, и может вызываться, после того как будет выполнена.

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

Знания представляют осведомленность агента об окружающей среде и о себе непосредственно. В Jadex знания могут быть представлены любыми объектами java. Они сохраняются в базе знаний и могут быть упомянуты в выражениях, доступны и изменяются в зависимости от планов, использующих базы знаний приложения. Знания описываются в ADF-файле и обращаются к измененному плану, определяя единственную оценку плана и соответствии его требуемым результатом.

Рассмотрим схему работы программного агента ресурсов (рис. 2.6). Работа агента начинается с того, что агент координатор (1 блок модели) посылает агенту ресурса запрос на поиск информации. Далее запускается агент ресурсов (2 блок модели), после подачи запроса на поиск информации, которую ищет пользователь с помощью других агентов. После этого управление передается в следующей блок модели для поиска необходимой информации по метаданным. Агент координатор управляет взаимодействием между всеми агентами. В  данной схеме возможно два варианта событий, при которых искомая информация либо найдена, либо нет. Если информация не найдена, агенту координатору отправляется сообщение о том, что данный ресурс отсутствует (блок 4). Если же информация найдена (блок 5), тогда агенту координатору перенаправляется материал, который был найден. При выполнении блока 4 или 5 функция агента считается выполненной. После чего агент переходит в спящий режим (блок 6), до того времени пока не появится новая необходимость в работе агента.


Рисунок 2.6 Схематическая модель работы программного агента ресурса

На рассматриваемой схематической модели (рис 2.6) наглядно разобрана схема работы программного агента ресурса. Кроме этого на данной схеме описаны цели, факты и планы, которые агент будет достигать в процессе своей работы.

Выводы по II главе

Широта исследований в области мультиагентных систем, сложность архитектуры и многообразие компонент агентов, различные методологии представления МАС породили множество программных средств для их разработки.

В данной главе были подробна рассмотрены наиболее известные и популярные среды разработки агентов, а так же проведен сравнительный анализ возможностей таких инструментальных сред для разработки программных агентов, как АВЕ (Agent Building Environment), Bee-gent, JACK и  JADE.

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

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

Глава III. Развитие программных агентов и средств их разработки

3.1 Описание программного модуля

Jadex - это агент, ориентированный на собственный механизм принятия решений, взаимодействуя с XML и Java файлами, поддержки этих решений.

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

Чтобы создать агента необходимо определить в системе свойства агента.

Действия агента описываются с помощью представлений, целями и планами. Помещая их, в так называемую библиотеку XML файла, этот файл называется ADF (agent definition file) файл определения агента. В ADF файле определяются агент как объект, описанный в классах java-файлов.

Запуск агента определяется в планах, которые вызываются по требованию системы, называемые пассивными планами.

Функционирование в агента в системе происходит за счет получения от системы и отправка измененных сообщений в систему. Система подает на вход агенту какое-то сообщение, после чего агент заносит его так в так называемый модуль событий. Передавая его в блок обработки сообщений, и далее передавая его по цепочке в блок планов, анализирует его. Где событие анализируется к принадлежности агента. Если сообщение не принадлежит агенту, то оно передаётся обратно в систему не изменённым. Блок планов, обрабатывая событие, сравнивает их с собственной базой планов и при положительном сравнении с планами начинает обработка сообщения в базе знаний, откуда поступает для сравнения с целями агента для передачи в модуль событий. Пройдя весь цикл сравнения и преобразования данных, в установленные задачи, поступает в систему для дальнейшего функционирования.

Интерпретатор состоит из списка информации компонента основных планов решения задачи, так называемые запланированные мета действия, ориентированные на выполнение агентом. Режим работы примерно выглядит так: агент выбирает мета действие из файла ADF и выполняет его, когда выполняются предварительные условия действия. Иначе действие – просто пропускается. Выполнение действия может произвести дальнейшие действия, которые добавлены к списку ADF-файла после настраиваемой в агенте концепции основных планов решения задачи, плана. В настоящее время, концепции действий главным образом различает связанный и несвязанный действия, в соответствии, с чем связанные действия добавляются как дочерние (порожденные) узлы к текущему узлу плана.

Рассмотрим базовый алгоритм построения агента на платформе Jadex. Разрабатывая приложение с использованием Jadex, программист обязан создавать два типа файлов: XML-файлы обозначая агента и Java-файлы для выполнения планов. Файл определения агента используется как спецификация для классов выполнения плана, базирующийся на объявлениях действий этого плана и основных фактах взаимосвязи между ними. Файлы с форматом XML и Java, определяют функциональные возможности агента.

В главном файле агента XML определяются все функциональные возможности, которыми будет наделен агент такие как: imports, capabilities, beliefs, goals, plans, events, expressions, properties, initial states. Когда ADF и java загружены, объекты созданные для xml в ADF, позволяют системе взаимодействовать, используя Jadex платформу для принятия решений по определенным действиям и взаимодействия внутри программного модуля.

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

Самая интересная и широко распространенная архитектура агента - это введенная архитектура Цели-Факты-Планы (BDI). Данная архитектура состоит из понятий знаний, фактов и целей как мысленные отношения, которые генерируют человеческое действие. Приняли эту модель, и преобразовали в формальную теорию и модель выполнения для агентов программного обеспечения, основанных на мнении фактов, целей, и планов. Jadex объединяет эту модель в агентов Jade, вводя цели, факты и планы для манипуляции внутри агента. В Jadex, агенты имеют знания, которые могут быть каким-нибудь видом объектов Java, и запомнены в базу знаний. Цели изображают конкретные побуждения (состояния, которые достигнуты)

3.2 Построение модели программного агента

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

Разрабатываемый модуль агента BazaZnanii: содержит модули по формированию терминов BazaZnaniiDictionary.xml к нему прилагается документ BazaZnaniiDictionary.dtd определяющий тип документа, определяет законные блоки документа XML, структуру документа со списком законных элементов (атрибутов). Также содержит модуль логического ответа пользователю BazaZnaniiAgent.xml.

Вся база знаний представлена в XML файле и находится в Приложении 1, а описание его тегов контролируется в DTD файле. В данном XML файле под названием BazaZnaniiDictionary.xml описывается перечень терминов, которые будут использоваться агентом при поиске материала обучаемому студенту.

<?xml version="1.0"?> данный тег обозначает версию документа. <!DOCTYPE bazaznanii SYSTEM "GlossaryDictionary.dtd"> данная строка показывает, что мы определяем структуру нашего документа XML в DTD формате. В начале XML файл описывается заглавным тегом, определяющим его назначение <bazaznanii>…</bazaznanii>. Описываем название с помощью атрибута title ="…" и дату создания orderDate="…?...?..." Уже в нем мы определяем наши термины <terms>…</terms>. Свойства термина описываем, используя, теги: <term>…</term> - тег, которым мы объявляем термин. value="term…" – значения термина при поиске в перечне материла. Далее объявляем его имя с помощью тега <name>…</name>. <image ref="...> данный тег описывает рисунки к тому термину, который ему соответствует. <count>…</count> отвечает за количество определений термина. А в свою очередь определения обозначаются как <definition>…</definition>, и уже в нем мы описываем count="…" какое это определение по счету. Также существуют вложенные гиперссылки - <giperlink>…</giperlink>, которые отвечают за то, что бы при просмотре термина, когда человек переходит на вложенную ссылку агент мог отреагировать на этот запрос.

Описание интеллектуального агента базы знаний происходит также через xml формат. В нем мы описываем цели, которые агенту необходимо достичь. Также описываются планы, факты, события с помощью каких агент достигает этих целей. Описание агента базы знаний можно увидеть на ниже изложенных рисунок 3.1-3.8:


Рисунок 3.1Общееописаниеагентабазы знаний


Рисунок 3.2Импортируемые библиотеки


Рисунок 3.3Цели работы агента


Рисунок 3.4Используемые знания агентом, которые описывают исполняемые факты


Рисунок 3.5Исполняемые планы агента

 


Рисунок 3.7События, выводимые сообщения для передачи иным агентам или конечному пользователю


Рисунок 3.8Описывает начальное состояние агента и завершение его описания

         Предложенный в работе программный агент представлен как BDI— модель, для него созданы факты, цели, планы, сообщения, также разработана схема взаимодействия модулей агента и его связь с другими агентами.

         Рассмотримпостроениепрограммного агента с использованием платформы Jadex. Для начала агент описывается в HTML в соответствии с заданными планами, целями и фактами, как это представлено выше.

Рассмотрим характеристики агента. Агент имеет такие характеристики как:

·   наличие запроса и поиска дополнительной информации;

·   открытие найденой искомой информации;

·   просмотр необходимой информации.

          Входная информация:

·   запрос на поиск необходимого материала.

Выходная информация:

  • найденная по ссылке информация.

В разрабатываемом агенте выделяется две цели. Это цели вида запроса (query) и главная цель (main goal). Цель запроса изображает необходимость в информации, выполняет поиск условий. Представляет необходимость в информации. Главная цель – это предоставить студенту дополнительную информацию. Эта цель специфицирует состояние, которое должно быть достигнуто.

В знаниях описываются происходящие факты в ходе работы агента. В нашем случае описывается семь знаний, в которых определяются факты. При запуске агента вызывается факт Restart agent. Следующим фактом есть зарос на поиск QuerySearch, показывает присутствие запроса на дополнительную информацию и выполняет поиск терминов от списка материалов. Открытие искомой информации со словаря выполняется с помощью факта ContentOpen. TermNotFound – говорит о том, что будет отправлено сообщение об ошибке агенту координатору. А агенту чата отправляется сообщение с помощью факта NoTerm о том, что необходимо, чтоб преподаватель выложил необходимый материал, которого нет в наличии. Отсылается сообщение студенту о неправильной ссылке. SleepMode – показывает переход агента в спящий режим.