Многоагентная система и его приложения

Традиционно под агентом понимается некоторая автономная сущность в составе информационной системы, решающая определенную подзадачу этой системы. Агент должен обладать свойствами реактивности (восприятия окружающей среды при помощи датчиков) и дееспособности (наличия исполнительных механизмов, которые способны влиять на среду). Задачи, с которыми сталкиваются современные разработчики программного обеспечения, отличаются значительной распределенностью и децентрализованностью. Такими, например, являются задачи построения систем электронной коммерции, поисковых систем, систем сбора разнородных данных. Адекватное решение подобных задач требует решений, которые также должны обладать свойствами распределенности и децентрализованности. В то же время подобные решения должны быть достаточно гибки для поддержки разнородных сред и средств, с которыми приходится сталкиваться системе вследствие ее распределенности. Наиболее современный подход к построению подобных решений базируется на многоагентных системах, в которых основной составной частью является агент. [1-11]. Агенты представляют собой инновационный, не имеющей альтернативы во многих областях, поход к проектированию систем, в котором ведущую роль занимает взаимодействие их друг с другом и с пользователем системы. Агент по определению способен воспринимать свою окружающую среду. Это автоматически приводит к тому, что у агента есть модель внешнего мира. Чем сложнее и изощреннее эта модель, тем больше информации агент может использовать в своей деятельности. У агента (или группы агентов) есть цели - ожидаемые результаты, которых нужно достичь, решив стоящие перед ними задачи. Система целей агента также может быть весьма сложной. Цели могут быть заданы извне агента или порождаются в результате некой "умственной деятельности" агента. Для достижения целей агент может совершать в среде определенные действия. А для этого агент должен обладать знаниями о наборе своих возможных действий, необходимых условиях для их совершения и возможных последствиях. С точки зрения исследования вопросов человеко-машинного взаимодействия особый интерес представляют так называемые интеллектуальные агенты. Интеллектуальным агентом называют агента, поведение которого «напоминает» человеческое. Несмотря на недостатки указанного определения, его достаточно, чтобы утверждать, что интеллектуальность является естественным продолжением автономности агентов. Особенно это верно в случае активных агентов, которые обладают инициативой в диалоге с пользователем. Особенностью интеллектуальных агентов является тот факт, что обычно вся перечисленная выше информация задается декларативно в виде набораправил вида «сущность-отношение» или «если условие выполняется, то совершить действие». Во время работы агента такие описания обрабатываются готовыми машинами вывода. Создание многоагентной системы сводится к построению моделей поведения агентных сущностей, описания модели их взаимодействий и реализации построенных моделей. В настоящей работе была разработана многоагентная система, в которой были реализованы основные принципы работы агентов на сайте подачи объявлений. Были изучены специфика и инструментарии технологии агентного программирования. Определены требования, предъявляемые к разрабатываемой системе. Разработан интерфейс взаимодействия с пользователем. Рассматриваемый в какой-либо системе агент – это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем или пользователем. Таким образом, в рамках многоагентных систем (МАС) агенты рассматриваются как автономные компоненты, действующие по определенному сценарию. Классифицируются агенты на три основных типа:

  1. простые
  2. интеллектуальные (intelligent)
  3. действительно интеллектуальные (truly intelligent)

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

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

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

Агент должен обладать следующими свойствами:

  • - Автономность: агенты функционируют без прямого вмешательства людей или кого-либо другого и владеют определенной способностью контролировать свои действия и внутреннее состояние.
  • Методы (способы) общения: агенты взаимодействуют с другими агентами средствами некоторого коммуникационного языка.
  • Реактивность: агенты способны воспринимать окружающую среду (которая может быть физическим миром, пользователем, взаимодействующим через графический интерфейс, коллекцией других агентов, Internet-ом, или, возможно, всем вместе взятым) и адекватно реагировать в определенных временных рамках на изменения, которые происходят.
  • Активность: агенты не просто реагируют на изменения среды, но и обладают целенаправленным поведением и способностью проявлять инициативу.
  • Индивидуальная картина мира: каждый агент имеет собственную модель окружающего его мира (среды), которая описывает то, как агент видит мир. Агент строит свою модель мира на основе информации, которую получает из внешней среды.
  • Коммуникабельность и коперативность: агенты могут обмениваться информацией с окружающей их средой и другими агентами. Возможность коммуникаций означает, что агент должен получать информацию об его окружающей среде, что дает ему возможность строить собственную модель мира. Более того, возможность коммуникаций с другими агентами является обязательным условием совместных действий для достижения целей.
  • Интеллектуальное поведение: поведение агента включает способность к обучению, логичной дедукции или конструированию модели окружающей среды для того, чтобы находить оптимальные способы поведения. [1]

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

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

Следует отметить, что на сегодня не существует языка программирования или инструментальной системы разработки, которая бы полностью соответствовала требованиям построения агентов. С точки зрения принципов распределенного объектно-ориентированного программирования (ООП) необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредством передачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний. Однако в дополнение к концепции ООП, каждый агент имеет возможность создания копий самого себя с полной или ограниченной функциональностью, обеспечивая возможность настройки на среду путем исключения неэффективных методов и замены их новыми. Традиционная для ООП схема класс/объект нарушается, т.к. агент имеет возможность постоянного изменения сценария поведения без его изменения вродительском классе. Многозначное наследование позволяет создавать экземпляры агентов, смешивая сценарии поведения, схемы наследования и атрибуты, определенные в родительских классах.

Следовательно, система разработки, которая бы полностью соответствовала требованиям построения агентов, должна была бы соответствовать таким требованиям: обеспечение перенесения кода на различные платформы, доступность на многих платформах, поддержка сетевого взаимодействия, многопотоковая обработка и некоторые другие. Чаще всего в агентных технологиях используются: универсальные языки программирования (Java); языки, ―ориентированы на знания‖, такие, как языки представления знаний (KIF), языки переговоров и обмена знаниями (KQML, AgentSpeak, April), языки спецификаций агентов; специализированные языки программирования агентов (TeleScript); языки сценариев и scripting languages (Tcl/Tk); символьные языки и языки логического программирования (Oz).

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

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

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

Рассмотрим особенности каждой парадигмы в отдельности [5].

Объектно-ориентированная парадигма

  • логика
  • восприятие
  • действие
  • обучение
  • взаимодействие
  • коммуникация
  • кооперация или конкуренция (в зависимости от общности цели)
  • управление другими агентами
  • целенаправленность (включение агента в систему для решения общей задачи)
  • Экспертная парадигма
  • представление знаний, модельное и визуальное
  • инженерия знаний
  • методы принятия решений

Под реактивностью агента понимается способность отвечать на действия среды [7]. Общая схема взаимодействия агента со средой выгляди так:

when Event if Condition then Action.

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

if Condition then Action.

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

В силу децентрализации с точки зрения разработчика многоагентные интеллектуальные системы отличаются необходимостью исследования процессов не «сверху вниз», а «снизу вверх» [8]. Этот способ сложнее, но гораздо устойчивее.

Можно утверждать, что на сегодняшний день не существует полноценной агентной платформы, соответствующей требованиям построения агентов [10]. С точки зрения принципов распределенного объектно-ориентированного программирования необходимость передачи методов может быть существенно сокращена в том случае, если может быть обеспечен удаленный доступ к общим методам посредствомпередачи ссылок на удаленные объекты, данных экземпляров этих объектов и их состояний.

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

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

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

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

Исходя из выделенных объектов, были построены следующие таблицы:

  • Объявления (adsmanager_ads)
  • Категории (adsmanager_categories)
  • Объявления_ Категории (adsmanager_adcat)
  • Пользователи (users)
  • Информер (informer)

Все добавляемые на сайт объявления записываются в таблицу «Объявления».

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

  1. Первый агент (informer) при публикации на сайте новых объявлений, осуществляет поиск пользователей, которые интересовались подобными предложениями, и оповещает их о нем по электронной почте. На сайте есть специальная форма, где пользователь может указать параметры интересующего его объявления и сохранить их в базе сайта. Благодаря этой функциональности, при появлении на сайте новых объявлений, удовлетворяющих запросу пользователя, он сразу же узнает о них посредством электронной почты, и ему не нужно каждый день заходить на сайт и просматривать новые объявления.
  2. Второй агент (manage_expiration) ищет объявления, срок публикации которых в скором времени истечет, и отсылает их авторам на почту соответствующее предупреждение. Затем, по истечении срока, он удаляет эти объявления. Действия данного агента поддерживают базу объявлений в актуальном состоянии.

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

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

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

Сайт построен на базе традиционной клиент-серверной архитектуры.

Основные программные средства, лежащие в ее основе:

  1. на стороне сервера используется скриптовый язык PHP. В качестве сервера тестировался Apache с использованием системы управления базами данных MySQL.
  2. На стороне клиента применяется JavaScript. Прежде всего, это вызвано необходимостью использования AJAX (соответственно, библиотеки jquery) для загрузки компонентов документа без перезагрузки страницы целиком.
  3. Для разметки документа используется стандарт HTML и CSS.

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

 

Литература

  1. V. A. Vittikh Multi-agent systems for modeling of self-organization and cooperation processes // http://www.cs.brandeis.edu/dept/faculty/mataric
  2. http://agentlab.ru/confluence/pages/viewpage.action
  3. Project of multi-agent technology in difficult systems // Open University of the Netherlands http: //www.ouh.nl/
  4. Процесс самоорганизации в многоагентных системах
  5. Luotsinen, L. J., Ekblad, J. N., Fitz-Gibbon, T. R., Houchin, C., Key, J. L., Khan, M., Lyu, J., Nguyen, J., Oleson, R., Stein, G., Vander Weide, S. A., andTrinh, V. 2008. A comparison study of 12 paradigms for developing embodied agents. Softw. Pract. Exper. 38, 3 (Mar. 2008), 259- 305.
  6. Hindriks, K. V. and Meyer, J. -. 2009. Toward a programming theory for rational agents. Autonomous Agents and Multi-Agent Systems 19, 1 (Aug. 2009), 4-29.
  7. Van Splunter, S., Wijngaards, N. J., and Brazier, F. M. 2003. Structuring agents for adaptation. In Adaptive Agents and Multi-Agent Systems: Adaptation and Multi-Agent Learning, E. Alonso, D. Kudenko, and D. Kazakov, Eds. Lecture Notes In Computer Science, vol. 2636. Springer-Verlag, Ber- lin, Heidelberg, 174-186.
  8. Ossowski, S., Garciia-SeiTano, A., and Cuena, J. 1998. From Theory to Practice in Multiagent System Design: The Case of Structural Co- operation. In Proceedings of the 22nd Annual German Conference on Arti- ficial intelligence: Advances in Artificial intelligence (September 15 - 17, 1998).
  9. O. Herzog and A. Ĝьпţег, Eds. Lecture Notes In Computer Science, vol. 1504. Springer-Verlag, London, 105-116.
  10. Weyns, D., Helleboogh, A., Holvoet, T., and Schumacher, M. 2009. The agent environment in multi-agent systems: A middleware perspective. Multiagent Grid Syst. 5, 1 (Jan. 2009), 93-108.
  11. Lin, Y., Huang, M., and Chen, J. J. 2006. Agent-based unit testing environment for extreme programming. J. Comp. Methods in Sci. and Eng. 6, 5,6 Supplement 1 (Apr. 2006), 1-8.
Год: 2011
Город: Костанай