Jump to content

Агент-ориентированное программирование

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

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

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

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

ОТКРЫТЬ АОП
Базовый блок объект агент
Параметры, определяющие состояние базового блока неограниченный убеждения, обязательства, возможности, выбор,...
Процесс вычислений методы передачи сообщений и ответа методы передачи сообщений и ответа
Типы сообщений неограниченный информировать, просить, предлагать, обещать, отклонять, ...
Ограничения на методы никто честность, последовательность,...

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

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

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

Для Java-платформы одним из фреймворков является JADE . [3] Вот очень простой пример [4] агента, выполняющего код.

package helloworld;
import jade.core.Agent;

public class Hello extends Agent {
	
	protected void setup() { 
		System.out.println("Hello World. ");
		System.out.println("My name is "+ getLocalName()); 
	}
	
	public Hello() {
		System.out.println("Constructor called");
	}

}

В основе модели AOP JADE лежит . поддержка стандартного FIPA языка связи агентов

Агент Спик (Джейсон) [ править ]

AgentSpeak — это агентно-ориентированный язык программирования, основанный на логическом программировании и архитектуре «вера-желание-намерение» (BDI).

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

	started.

	+started <- .print("Hello World. ").

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

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

Язык SARL [ править ]

САРЛ [6] предоставляет фундаментальные абстракции для кодирования мультиагентных систем. [7] Он использует синтаксис, подобный скрипту (вдохновленный Scala и Ruby).

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

PADE (среда разработки агентов Python) [ править ]

ВСТРЕТИТЬСЯ [8] — это пакет Python для разработки интеллектуальных агентов на языке Python. Эта структура соответствует стандартам FIPA и ACL.

class AgenteHelloWorld(Agent):
    def __init__(self, aid):
        super(AgenteHelloWorld, self).__init__(aid=aid)
        display_message(self.aid.localname, 'Hello World!')

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

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

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

  • Программный агент - Компьютерная программа, действующая от имени пользователя.
  • NetLogo - страницы языка программирования
  • Модель актера – Модель параллельных вычислений.
  • ЦЕЛЬ – агентный язык программирования для программирования когнитивных агентов.

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

  1. ^ Шохам, Ю. (1990). Агент-ориентированное программирование (Технический отчет STAN-CS-90-1335). Стэнфордский университет: факультет компьютерных наук.
  2. ^ Шохам, Ю. (1993). «Агентно-ориентированное программирование». Искусственный интеллект . 60 (1): 51–92. CiteSeerX   10.1.1.123.5119 . дои : 10.1016/0004-3702(93)90034-9 .
  3. ^ Беллифемини, Фабио; Агостино Поджи; Джованни Римасса (2001). JADE: среда разработки агентов, соответствующая требованиям FIPA2000 . Материалы пятой международной конференции по автономным агентам. стр. 216–217. дои : 10.1145/375735.376120 .
  4. ^ «Рутдев» . rootdev.nl . Архивировано из оригинала 2 июля 2011 года . Проверено 18 сентября 2022 г.
  5. ^ Ананд С. Рао, 1996. AgentSpeak (L): Агенты BDI высказываются на логическом вычислимом языке. Материалы седьмого европейского семинара по моделированию автономных агентов в многоагентном мире (MAAMAW-96).
  6. ^ Родригес, Себастьян; Гауд, Николя; Галланд, Стефан (2014). «SARL: универсальный агентно-ориентированный язык программирования». 2014 Международные совместные конференции IEEE/WIC/ACM по веб-аналитике (WI) и технологиям интеллектуальных агентов (IAT) . стр. 103–110. дои : 10.1109/wi-iat.2014.156 . ISBN  978-1-4799-4143-8 . S2CID   15508257 .
  7. ^ Веб-сайт SARL
  8. ^ «Среда разработки агентов Python — документация Pade 1.0» .
  9. ^ Послад, С (2007). «Определение протоколов взаимодействия многоагентных систем». Транзакции ACM в автономных и адаптивных системах . 2 (4): 15–с. дои : 10.1145/1293731.1293735 . S2CID   9477595 .
  10. ^ Послад, С.; Питт, Дж.; Мамдани, А.; Хадингем, Р.; Бакл, П. (1999). Хейзелден, А.; Бигэм, Дж. (ред.). Агент-ориентированное промежуточное программное обеспечение для интеграции сетевых сервисов клиентов. В: Программные агенты для будущих систем связи . стр. 221–242. дои : 10.1007/978-3-642-58418-3_9 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: df9fd44130769a93f153e201b8896fee__1715955000
URL1:https://arc.ask3.ru/arc/aa/df/ee/df9fd44130769a93f153e201b8896fee.html
Заголовок, (Title) документа по адресу, URL1:
Agent-oriented programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)