Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

История [ править ]

Исторически концепция агентно-ориентированного программирования и идея центрирования программного обеспечения вокруг концепции агента были введены Йоавом Шохамом в его исследованиях искусственного интеллекта в 1990 году. [1] [2] Его агенты специфичны для его собственной парадигмы, поскольку они есть только один метод с одним параметром. Процитируем Йоава Шохама из его статьи 1990 года о принципиальном различии между АОП и ООП:

... агентно-ориентированное программирование (АОП), которое можно рассматривать как специализацию объектно-ориентированного программирования. ...

Фреймворки [ править ]

Существует несколько «фреймворков» АОП, также называемых платформами агентов, которые реализуют парадигму программирования Шохама. Следующие примеры иллюстрируют, как базовый агент программируется как программа hello-world.

ДЖЕЙД [ править ]

Для Java-платформы одним из фреймворков является JADE [3] ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). Вот очень простой пример [1] агента, который запускает код

пакет  helloworld ; import  jade.core.Agent ;открытый  класс  Hello  extends  Agent  {protected  void  setup ()  {  System . из . println ( "Привет, мир." ); Система . из . println ( "Меня зовут" +  getLocalName ());  }public  Hello ()  { System . из . println ( "Конструктор вызван" ); }}

В основе модели АОП JADE лежит то, что ее API поддерживает стандартный язык общения агентов FIPA.

Agent Speak (Джейсон) [ править ]

Для дословного перевода агентно-ориентированных концепций в схему, не запутанную, как JADE, за Java и объектно-ориентированностью, Agent Speak [4] (Джейсон) предоставляет «естественный» язык для агентов.

началось .+ начал  <-  . print ( "Привет, мир." ).

ЦЕЛЬ [ править ]

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

SARL Language [ править ]

SARL [5] ( веб-сайт SARL ) предоставляет фундаментальные абстракции для кодирования многоагентных систем. Он использует синтаксис, подобный сценарию (вдохновлен Scala и Ruby).

package  helloworld import  io.sarl.core.Initialize agent  HelloWorldAgent  {  on  Initialize  {  println ( "Hello World." )  } }

Промежуточное ПО [ править ]

Одним из способов реализации модульной или расширяемой поддержки АОП является определение стандартных API АОП для функций промежуточного программного обеспечения , которые сами реализуются как программные агенты . Например, служба каталогов может быть реализована как помощник по каталогу FIPA или программный агент DF; Управление жизненным циклом для запуска, остановки, приостановки и возобновления работы агентов может быть реализовано в виде службы управления агентом FIPA или агента AMS. [6]Преимущество подхода АОП состоит в том, что он поддерживает более динамичные роли между разными пользователями и поставщиками приложений, сервисов и сетей. Например, традиционно сети и услуги обычно управлялись сетью и поставщиком услуг от имени клиента и предлагались как единая виртуальная сетевая услуга, но сами клиенты получают больше возможностей для интеграции и управления своими собственными услугами. Этого можно достичь с помощью AOP и API-интерфейсов для агентов промежуточного программного обеспечения, которые могут гибко и динамически управлять обменом данными. [7]

См. Также [ править ]

  • Программный агент
  • NetLogo
  • Актерская модель
  • ЦЕЛЬ

Ссылки [ править ]

  1. ^ Shoham, Y. (1990). Агентно-ориентированное программирование (Технический отчет STAN-CS-90-1335). Стэнфордский университет: факультет компьютерных наук.
  2. ^ Shoham, Y. (1993). «Агентно-ориентированное программирование». Искусственный интеллект . 60 (1): 51–92. CiteSeerX 10.1.1.123.5119 . DOI : 10.1016 / 0004-3702 (93) 90034-9 . 
  3. ^ Bellifeminee, Фабио; Агостино Погги; Джованни Римасса (2001). JADE: среда разработки агентов, совместимая с FIPA2000 . Материалы пятой международной конференции по автономным агентам. С. 216–217. DOI : 10.1145 / 375735.376120 .
  4. ^ Ананд С. Рао, 1996. AgentSpeak (L): Агенты BDI говорят на логически вычисляемом языке. Труды седьмого европейского семинара по моделированию автономных агентов в многоагентном мире (MAAMAW-96).
  5. ^ Родригес, Себастьян; Гауд, Николас; Галланд, Стефан (2014). «SARL: универсальный агентно-ориентированный язык программирования». 2014 Совместные международные конференции IEEE / WIC / ACM по веб-аналитике (WI) и технологиям интеллектуальных агентов (IAT) . С. 103–110. DOI : 10.1109 / Wi-iat.2014.156 . ISBN 978-1-4799-4143-8.
  6. ^ Poslad, S (2007). «Определение протоколов для взаимодействия с мультиагентной системой». ACM-транзакции в автономных и адаптивных системах . 2 (4): 15 – es. DOI : 10.1145 / 1293731.1293735 .
  7. ^ Послад, S; Дж. Питт; А. Мамдани; Р. Хадингем; П. Бакл (1999). Агентно-ориентированное промежуточное ПО для интеграции сетевых сервисов клиентов. В: Программные агенты для будущих систем связи, Hayzelden A, Bigham J Eds . С. 221–242. DOI : 10.1007 / 978-3-642-58418-3_9 .