Средства для создания программных
агентов
Содержание
1.2 Описание инструментария для создания программных агентов............................. 6
1.3 Языки программирования и программные платформы для создания................... 11
2.1 Среды разработки для построения программных агентов...................................... 27
3.3 Влияние программных агентов на развитие экономики........................................ 49
Глава I. Анализ предметной области
1.1 Анализ существующих программных агентов
Согласно классическому определению, программный агент — это программа-посредник. Эти посредники взаимодействуют с пользователями или другими программами и смыслом этого взаимодействия является выполнение каких-либо действий от имени пользователя или другой программы. [1]
Можно дать и другое относительно свободное определение программного агента, в котором агент выступает в качестве самодостаточной программы, которая способна контролировать свое собственное принятие решений и действий, основываясь на собственном восприятии своего окружения, и которые направлены на реализацию одной или нескольких целей.
Если рассматривать различия между программным агентом и приложением, то можно сказать, что главное различие заключается в поведении агента.
Концепция агента обеспечивает удобный и мощный способ описания сложной программной сущности, которая способна действовать с определённой степенью автономности с целью выполнения задач от имени пользователя. Агент определяется посредством описания его поведения.
Существует несколько подходов к определению понятия программного агента, но общая идея заключается в том, что агенты более автономны, чем объекты. Агент обладает автономностью в плане выбора задач и приоритетов, а так же агенту свойственно гибкое поведение.
В задачи программного агента входят:
Мультиагентные системы — это системы, состоящие из автономных интеллектуальных агентов, взаимодействующих друг с другом и пассивной среды, в которой агенты существуют и на которую также могут влиять.
Существуют различные классификации программных агентов. Рассмотрим наиболее популярную классификацию, в которой выделяют четыре основных типа программных агентов [3]:
Но данная классификация не совсем актуальна на сегодняшний момент, так как с момента написания данной классификации многое поменялось. Так например, по классификации агенты-покупатели просматривают сетевые ресурсы с целью получения информации о товарах и услугах. Но на сегодняшний момент индексирующие роботы в своем развитии ушли намного вперед и выходят далеко за рамки просто поисковых систем. [4]
Примером сегодняшнего торгового бота выступает инструмент трейдера, он представляет собой специальное программное обеспечение, которое осуществляет торговлю на бирже автоматически, без помощи человека. Торговый бот работает по определенным правилам, по своей стратегии. Стратегий существует очень много и они очень разные. Боты также могут работать на компьютерах пользователей, в «облаках» и как плагины для торговых систем.
Боты могут решать несколько основных задач. Первая из них — это автоматизация рутинных операций. Некоторые стратегии торговли подразумевают постоянное исполнение ордеров и учет большого количества данных, что весьма затруднительно делать вручную. Другие стратегии подразумевают очень быстрое реагирование на изменения на бирже и принятие простых, но быстрых решений. Боты также могут использоваться трейдером (человеком, торгующим на бирже) как вспомогательный инструмент для каких-либо операций.
Пользовательские или персональные агенты по данной классификации — это интеллектуальные агенты, которые действуют от имени пользователя. Примером таких действий является отправка данных, получение и автоматическая обработка данных. Есть несколько версий таких агентов, в том числе newshub и CNN.
Персональные агенты могут выполнять ряд следующих действий:
1. осуществлять поиск информации по заданной теме и запросу;
2. автоматически заполнять веб-формы и сохранять информацию для использования в будущем;
3. сканировать веб-страницы для поиска и выделения текста, который представляет собой «важную» часть информации;
4. имеют возможность «обсуждать» темы в диапазоне от подсознательного страха до спорта;
5. содействовать онлайн поиску работы путём сканирования известных досок объявлений о работе и отправки резюме с указанием достоинств, которые соответствуют желаемым критериям;
6. профилировать синхронизацию разнородных социальных сетей.
Агенты по мониторингу и наблюдению используются для наблюдения за объектами и передачи информации на оборудование, как правило, на компьютерные системы. Агенты могут отслеживать уровень запасов материалов компании, следить за ценами конкурентов и доводить их до сведения компании, анализировать фондовые манипуляции по инсайдерскии информация и слухам, и т.д.
Например, в лаборатории реактивного движения НАСА есть агент, который отслеживает наличие и состояние оборудования, планирует заказы на приобретение нового оборудования с учётом оптимизации затрат, а также следит за наличием продуктов питания. Такие агенты обычно осуществляют мониторинг сложных компьютерных сетей и могут следить за конфигурацией каждого компьютера, подключенного к сети.
Особыми агентами по мониторингу и наблюдению являются структуры агентов, используемых для моделирования процесса принятия решений во время тактических операций. Агенты осуществляют мониторинг состояния активов и получают цели от агентов верхнего уровня. Агенты добиваются достижения целей с имеющимися активами, сводя к минимуму расходы активов при максимальном достижении цели.
В современных условиях
при рассмотрении данной классификации программных агентов по добыче и анализу
данных необходимо отнести к агентам покупателям или торговым ботам.
1.2 Описание
инструментария для создания программных агентов
Для создания программных агентов используют языки описания и реализации, которые удобно представить в виде многослойной структуры, включающей пять слоев:
1. языки и программные средства реализации агентов;
2. языки коммуникации агентов;
3. языки описания поведения агентов и законов среды;
4. языки представления и управления знаниями;
5. языки формализации и спецификации агентов и мультиагентных систем (МАС).
К средствам взаимодействия агентов относятся языки коммуникации агентов (FIPA ACL, KQML). Язык коммуникации агентов обеспечивает обмен знаниями и информацией между агентами. FIPA ACL в отличии от таких средств как RPC, RMI, CORBA, обеспечивающих обмен информацией между приложениями, имеет более сложную семантику и обладает следующими преимуществами:
· FIPA ACL управляет суждениями, правилами, действиями, а не семантически не связанными объектами;
· сообщения FIPA ACL описывает ожидаемое состояние, а не процедуру или метод.
Однако ACL не охватывают полный спектр объектов, которыми могли бы обмениваться агенты, например планы, цели, опыт, стратегии. На техническом уровне, при использовании ACL, агенты транспортируют сообщения по сети, используя протоколы низшего уровня, например SMTP, TCP/IP, POP3, или HTTP.
Язык взаимодействия агентов (ACL) должен позволять передавать информацию любого вида между различными агентами. Имеются два подхода к проектированию языков взаимодействия агентов:
1. Процедурный, включает обмен процедурными директивами/командами. Это может быть реализовано используя такие языки программирования как Java или Tcl.
2. Декларативный, где связь основана на декларативных инструкциях, типа определений, предположений, знаний, и т.п.
Из-за ограничений на процедурные подходы (например, такие сценарии трудно координировать, объединить), декларативные языки были предпочтены для создания языков взаимодействия агентов. Одни из наиболее популярных декларативных языков - KQML со своими диалектами и FIPA ACL.
В контексте практического построения агентов и МАС главную роль играют инструментальные средства программирования и коммуникации агентов. Языки коммуникации (ACL, KQML) и координации агентов (AgenTalk) обеспечивают согласованное взаимодействие агентов — циркуляцию информации, передачу запросов услуг, реализуют механизмы переговоров, поддерживают сотрудничество между агентами, направленное на достижение общей цели и, как следствие, формирование коллективов агентов. Эти языки можно рассматривать как многоуровневые структуры, включающие уровень представления знаний, уровень переговоров или координации, уровень стратегий коммуникации, и т. п. Так язык KQML (Knowledge Query and Manipulation Language), служащий для поддержки взаимодействия агентов в распределенных приложениях, опирается на специальный протокол переноса знаний SKTP (Simple Knowledge Transfer Protocol). В свою очередь, язык ACL (Agent Communication Language), претендующий на роль стандарта для коммуникации агентов, состоит из трех частей— словаря, “внутреннего языка” KIF (Knowledge Interchange Format) и “внешнего языка” KQML. Сообщение, передаваемое на языке ACL, может трактоваться как KQML-выражение, “аргументами” которого выступают предложения в формате KIF, построенные из элементов словаря ACL [Genesereth and Ketchpel, 1994].
Программные средства, применяемые для реализации агентов, делятся на три основных класса:
1. языки программирования;
2. библиотеки разработки агентов;
3. среды разработки агентов.
При программировании агентов чаще всего применяются языки объектно-ориентированного программирования (Си++, Java), реже используются символьные языки и языки логического программирования (LISP, Oz).
Среди существующих библиотек агентов можно выделить Intelligent Agent Library — коммерческий продукт фирмы Bits й Pixels, систему Кайса, разработанную фирмой Fujitsu и Agentx — сеть высокоэффективных библиотек распределенных вычислений в программной среде Java, предложенную фирмой International Knowledge Systems. Библиотека интеллектуальных агентов Intelligent Agent Library представляет собой набор средств, предназначенных для обеспечения коммуникации агентов и построения их групп. Она основана на языке KQML и содержит иллюстративные примеры агентов, функционирующих в Web-приложениях. Эта библиотека поддерживает разработку мобильных агентов.
Одной из самых известных и уже зарекомендовавших себя интегрированныхсред для разработки интеллектуальных программных агентов является AgentBuilder фирмы Reticular Systems, Inc. Это средство состоит из двух основных компонентов: инструментария (Toolkit) и исполнительной системы. Инструментарий вкпючает:
1. средства управления процессом разработки программного обеспечения, основанного на агентах;
2. средства анализа области функционирования агента;
3. средства проектирования и разработки сетей из взаимодействующих агентов;
4. средства моделирования поведения отдельных агентов;
5. средства отладки и тестирования программных агентов.
Исполнительная система содержит
машину агента (agent engine), формирующую среду для реализации программных
агентов. Агенты, разработанные с помощью среды AgentBuilder, взаимодействуют на
языке KQM L, в основе которого лежат примитивные действия — перформативы.
Назначение инструментального средства (ИС) AgentBuilder состоит в том,
чтобы предоставить разработчику программного обеспечения, основанного на
агентах, интегрированную среду, которая позволяет быстро и легко создавать
интеллектуальных агентов и сложные программы на их основе. Агенты, созданные с
помощью AgentBuilder, могут быть реализованы на любой виртуальной Java-машине.
В таблице 1 приведены примеры средств для разработки агентов.
Таблица 1
Примеры средств разработки агентов
|
Название языка (средства разработки) |
Краткая характеристика / назначение |
|
AgenTalk |
Средство для разработки автономных мобильных агентов на базе языка сценария Tcl с поддержкой Tk- инструментария для создания графического интерфейса |
|
АgentTool |
Агентная структура на базе Java. Использование GUI для конструирования системы |
|
FIPA-OS |
Реализация элементов, содержавшихся в FIPA-специ- фикации по взаимодействию агентов. Java-реализа- ция архитектуры для разработки агентов |
|
Echelon |
Средство для разработки агентов в сети LonWorks |
|
JAFMAS |
Программа, обеспечивающая создание мультиагент- ной системы на Java. Поддерживает межагентное общение на KQML |
|
Remembrance Agents |
Средство для разработки агентов, наблюдающих за пользователем и предлагающих информацию, необ- ходимую в данный момент |
|
Ummon |
Средство для создания самообучающегося агента. Содержит методы ИИ для достижения "человеческо- го" общения |
|
Virtual Secretary Project (ViSe) |
Создание модели пользователя на основе интеллек- туальных агентов для выполнения секретарских задач (технология Tcl/TclX/Tix/Tk) |
В таблице 2 приведено сравнение параметров отдельных инструментальных средств, обозначенных в таблице 1, которые используются для разработки агентов.