Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Agent-oriented programming

From Wikipedia, the free encyclopedia
Programming paradigm
Part ofa series on
Multi-agent systems
Multi-agent simulation
Agent-oriented programming
Related

Agent-oriented programming (AOP) is aprogramming paradigm where the construction of the software is centered on the concept ofsoftware agents. In contrast toobject-oriented programming which has objects (providing methods with variable parameters) at its core, AOP has externally specified agents (with interfaces and messaging capabilities) at its core. They can be thought of as abstractions of objects. Exchanged messages are interpreted by receiving "agents", in a way specific to its class of agents.

History

[edit]

Historically, the concept of agent-oriented programming and the idea of centering software around the concept of an Agent was introduced byYoav Shoham within hisartificial intelligence studies in 1990.[1][2] His agents are specific to his own paradigm as they have only one method, with one parameter. To quote Yoav Shoham from his paper in 1990 for a basic difference between AOP and OOP:

... agent-oriented programming (AOP), which can be viewed as a specialization of object-oriented programming.

OOPAOP
Basic unitobjectagent
Parameters defining state of basic unitunconstrainedbeliefs, commitments, capabilities, choices, ...
Process of computationmessage passing and response methodsmessage passing and response methods
Types of messageunconstrainedinform, request, offer, promise, decline, ...
Constraints on methodsnonehonesty, consistency, ...

Frameworks

[edit]

There are multiple AOP 'frameworks', also called agent platforms, that implement Shoham's programming paradigm. The following examples illustrate how a basic agent is programmed as a hello-world program.

JADE

[edit]

For the Java-platform one of the frameworks isJADE.[3]Here is a very basic example[4] of an agent that runs code.

packagehelloworld;importjade.core.Agent;publicclassHelloextendsAgent{protectedvoidsetup(){System.out.println("Hello World. ");System.out.println("My name is "+getLocalName());}publicHello(){System.out.println("Constructor called");}}

At the core of JADE's AOP model is that itsAPI supports the standardFIPAAgent Communication Language

Agent Speak (Jason)

[edit]

AgentSpeak is an agent-oriented programming language based on logic programming and thebelief–desire–intention (BDI) architecture.

For a literal translation of agent-oriented concepts into a scheme unobfuscated as is JADE, behind Java and Object Orientedness, Agent Speak[5] (Jason) provides a "natural" language for agents.

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

GOAL

[edit]

GOAL is an agentprogramming language for programmingcognitive agents. GOAL agents derive their choice of action from their beliefs and goals. The language provides the basic building blocks to design and implement cognitive agents by programming constructs that allow and facilitate the manipulation of an agent's beliefs and goals and to structure itsdecision-making. The language provides an intuitive programming framework based oncommon sense orpractical reasoning.

SARL Language

[edit]

SARL[6] provides the fundamental abstractions for coding multiagent systems.[7] It uses a script-like syntax (inspired by Scala and Ruby).

packagehelloworldimportio.sarl.core.InitializeagentHelloWorldAgent{onInitialize{println("Hello World.")}}

PADE (Python Agent DEvelopment framework)

[edit]

PADE[8] is a python package to develop intelligent agents in python language. This framework complies to FIPA and ACL standards.

classAgenteHelloWorld(Agent):def__init__(self,aid):super(AgenteHelloWorld,self).__init__(aid=aid)display_message(self.aid.localname,"Hello World!")

Middleware

[edit]

One way to implement modular or extensible AOP support is to define standard AOPAPIs tomiddleware functions that are themselves implemented assoftware agents. For example, a directory service can be implemented as aFIPA directory facilitator or DF software agent; life-cycle management to start, stop, suspend and resume agents can be implemented as a FIPA Agent Management Service or AMS agent.[9] A benefit of the AOP approach is that it supports more dynamic roles between different users and providers of applications, services and networks. For example, traditionally, networks and services were usually managed by the network and service provider on behalf of the customer and offered as a single virtual network service but customers themselves are becoming more empowered to integrate and manage their own services. This can be achieved via AOP and APIs to middleware agents that can flexibly and dynamically manage communication.[10]

See also

[edit]

References

[edit]
  1. ^Shoham, Y. (1990).Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department.
  2. ^Shoham, Y. (1993). "Agent-Oriented Programming".Artificial Intelligence.60 (1):51–92.CiteSeerX 10.1.1.123.5119.doi:10.1016/0004-3702(93)90034-9.
  3. ^Bellifeminee, Fabio; Agostino Poggi; Giovanni Rimassa (2024).JADE: a FIPA2000 compliant agent development environment. Proceedings of the fifth international conference on Autonomous agents. pp. 216–217.doi:10.1145/375735.376120.
  4. ^"Rootdev".rootdev.nl. Archived fromthe original on 2 July 2011. Retrieved18 September 2022.
  5. ^Anand S. Rao, 1996. AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language. Proceedings of Seventh European Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW-96).
  6. ^Rodriguez, Sebastian; Gaud, Nicolas; Galland, Stéphane (2014). "SARL: A General-Purpose Agent-Oriented Programming Language".2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT). pp. 103–110.doi:10.1109/wi-iat.2014.156.ISBN 978-1-4799-4143-8.S2CID 15508257.
  7. ^SARL website
  8. ^"Python Agent DEvelopment framework — Pade 1.0 documentation".
  9. ^Poslad, S (2007). "Specifying Protocols for Multi-agent System Interaction".ACM Transactions on Autonomous and Adaptive Systems.2 (4): 15–es.doi:10.1145/1293731.1293735.S2CID 9477595.
  10. ^Poslad, S.; Pitt, J.; Mamdani, A.; Hadingham, R.; Buckle, P. (1999). Hayzelden, A.; Bigham, J. (eds.).Agent-oriented middleware for integrating customer network services. In: Software Agents for Future Communication Systems. pp. 221–242.doi:10.1007/978-3-642-58418-3_9.
Imperative
Structured
Object-oriented
Declarative
Functional
Dataflow
Logic
Domain-
specific
language

(DSL)
Concurrent,
parallel
Metaprogramming
Separation
of concerns
Comparisons/Lists
Retrieved from "https://en.wikipedia.org/w/index.php?title=Agent-oriented_programming&oldid=1320027410"
Category:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp