Zum Inhalt springen

„Agentenorientierte Programmierung“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Addbot (Diskussion | Beiträge)
K Bot: 6 Interwiki-Link(s) nach Wikidata (d:q139008) migriert
überarbeitet
Zeile 1: Zeile 1:
Die '''Agentenorientierte Programmierung''' ist eine Programmierung, die auf der Theorie der agentenorientierten Paradigmen von [[Yoav Shoham]] basiert und hauptsächlich in der [[Programmiersprache]] [[PROLOG]] genutzt wird.
{{Überarbeiten}}
'''Agentenorientierte Programmierung''' ist eine Art der Programmierung, die auf der Theorie der agentenorientierten Paradigmen von [[Yoav Shoham]] basiert und hauptsächlich in der deklarativen [[Programmiersprache]] [[PROLOG]] angewendet wurde.


1993 hat Shoham agentenorientierte Paradigmen veröffentlicht, die auf so genannten „mentalen Zuständen“ (''mental states'') basieren, womit der innere, das heißt von außen nicht sichtbare Zustand von [[Softwareagent]]en gemeint ist. Eine formale Sprache beschreibt die „mentalen Zustände“, die durch Annahmen (''beliefs'') und Verpflichtungen (''commitments'') bestimmt werden.
1993 hat Shoham agentenorientierte Paradigmen veröffentlicht, die auf mentalen Zuständen basieren, womit der innere von außen nicht sichtbare Zustand von [[Softwareagent]]en gemeint ist. Eine formale Sprache beschreibt die mentalen Zustände, die durch Annahmen und Verpflichtungen bestimmt werden.
* Handlungen (''actions'') werden beschrieben, z. B. REQUEST, INFORM.
* Handlungen werden beschrieben, z. B. REQUEST, INFORM.
* ''Beliefs'' sind Annahmen, die der Agent über seine Umwelt hat, also sämtliche Daten, die ihm zur Verfügung stehen.
* ''Beliefs'' sind Annahmen, die der Agent über seine Umwelt hat, also sämtliche Daten, die ihm zur Verfügung stehen.
* ''Commitments'' sind Zusicherungen, die der Agent seiner Umwelt (andere Agenten) gibt. Sie besagen, dass wenn der Agent eine bestimmte Nachricht empfängt, während er sich in einem bestimmten mentalen Zustand befindet, er eine bestimmte Aktion ausführt.
* ''Commitments'' sind Zusicherungen, die der Agent seiner Umwelt (andere Agenten) gibt. Sie besagen, dass wenn der Agent eine bestimmte Nachricht empfängt, während er sich in einem bestimmten mentalen Zustand befindet, er eine bestimmte Aktion ausführt.
Zeile 10: Zeile 9:


== Sprachen zur agentenorientierten Programmierung ==
== Sprachen zur agentenorientierten Programmierung ==
PLACA ist eine Weiterentwicklung der theoretischen Programmiersprache AGENT-0. PLACA wurde an der Stanford University von Sarah Rebecca Thomas entwickelt. Im Gegensatz zu AGENT-0 hat PLACA den Vorteil, dass nicht nur Anfragen von anderen Agenten beantwortet sowie Anfragen an diese gerichtet werden können, sondern in PLACA auch direkte Mechanismen vorhanden sind, um ein Ziel zu verfolgen und mehrere Aktionen hintereinander auszuführen, um ein Ziel zu erreichen. Jeder Agent in PLACA besitzt eine geordnete Liste mit Intentionen (Zielen) und eine geordnete Liste mit Plänen. Um diese Listen zu verwalten hat PLACA folgende syntaktische Struktur:

'''PLACA''' ist eine Weiterentwicklung der eher theoretischen [[Programmiersprache]] AGENT-0. PLACA wurde an der [[Stanford University]] in Kalifornien von Sarah Rebecca Thomas entwickelt. Im Gegensatz zu AGENT-0 hat PLACA den Vorteil, dass nicht nur Anfragen von anderen Agenten beantwortet sowie Anfragen an diese gerichtet werden können, sondern in PLACA auch direkte Mechanismen vorhanden sind, um ein Ziel zu verfolgen und mehrere Aktionen hintereinander auszuführen, um ein Ziel zu erreichen. Jeder Agent in PLACA besitzt eine geordnete Liste mit Intentionen (Zielen) und eine geordnete Liste mit Plänen. Um diese Listen zu verwalten hat PLACA folgende syntaktische Struktur:
* (INTEND x) – Der PLACA-Agent versucht, die Aussage y wahr zu machen. Daher wird x zur Liste der Intentionen hinzugefügt.
* (INTEND x) – Der PLACA-Agent versucht, die Aussage y wahr zu machen. Daher wird x zur Liste der Intentionen hinzugefügt.
* (ADOPT x) – Fügt die Intention bzw. den Plan zur Liste der Intentionen bzw. Pläne hinzu.
* (ADOPT x) – Fügt die Intention bzw. den Plan zur Liste der Intentionen bzw. Pläne hinzu.
Zeile 17: Zeile 15:
* (CAN-DO x) – Der Agent meldet, dass er die Aktion x ausführen kann.
* (CAN-DO x) – Der Agent meldet, dass er die Aktion x ausführen kann.


'''CAROL5''' wurde in C++ implementiert, um Gruppenlernsysteme (''social learning systems'') zu implementieren.
CAROL5 wurde in C++ implementiert, um Gruppenlernsysteme zu implementieren.


== Literatur ==
== Literatur ==

* Yoav Shoham: ''Agent-Oriented Programming''. Artificial Intelligence 60 (1993) 51-92, Stanford, CA, USA
* Yoav Shoham: ''Agent-Oriented Programming''. Artificial Intelligence 60 (1993) 51-92, Stanford, CA, USA
* Yoav Shoham: ''An overview of agent-oriented programming''. MIT Press, Cambridge, MA, USA 1997, ISBN 0-262-52234-9
* Yoav Shoham: ''An overview of agent-oriented programming''. MIT Press, Cambridge, MA, USA 1997, ISBN 0-262-52234-9
Zeile 26: Zeile 23:


[[Kategorie:Programmierung]]
[[Kategorie:Programmierung]]

[[hu:Szoftver ágens]]

Version vom 26. März 2018, 05:04 Uhr

Die Agentenorientierte Programmierung ist eine Programmierung, die auf der Theorie der agentenorientierten Paradigmen von Yoav Shoham basiert und hauptsächlich in der Programmiersprache PROLOG genutzt wird.

1993 hat Shoham agentenorientierte Paradigmen veröffentlicht, die auf mentalen Zuständen basieren, womit der innere von außen nicht sichtbare Zustand von Softwareagenten gemeint ist. Eine formale Sprache beschreibt die mentalen Zustände, die durch Annahmen und Verpflichtungen bestimmt werden.

  • Handlungen werden beschrieben, z. B. REQUEST, INFORM.
  • Beliefs sind Annahmen, die der Agent über seine Umwelt hat, also sämtliche Daten, die ihm zur Verfügung stehen.
  • Commitments sind Zusicherungen, die der Agent seiner Umwelt (andere Agenten) gibt. Sie besagen, dass wenn der Agent eine bestimmte Nachricht empfängt, während er sich in einem bestimmten mentalen Zustand befindet, er eine bestimmte Aktion ausführt.
  • Herkömmliche Programme werden in einen Wrapper gehüllt, um sie als Agenten betrachten zu können. Shoham spricht von „Agentifizierung“ (agentification).
  • Es wird eine zeitpunktbasierte Temporale Logik verwendet.

Sprachen zur agentenorientierten Programmierung

PLACA ist eine Weiterentwicklung der theoretischen Programmiersprache AGENT-0. PLACA wurde an der Stanford University von Sarah Rebecca Thomas entwickelt. Im Gegensatz zu AGENT-0 hat PLACA den Vorteil, dass nicht nur Anfragen von anderen Agenten beantwortet sowie Anfragen an diese gerichtet werden können, sondern in PLACA auch direkte Mechanismen vorhanden sind, um ein Ziel zu verfolgen und mehrere Aktionen hintereinander auszuführen, um ein Ziel zu erreichen. Jeder Agent in PLACA besitzt eine geordnete Liste mit Intentionen (Zielen) und eine geordnete Liste mit Plänen. Um diese Listen zu verwalten hat PLACA folgende syntaktische Struktur:

  • (INTEND x) – Der PLACA-Agent versucht, die Aussage y wahr zu machen. Daher wird x zur Liste der Intentionen hinzugefügt.
  • (ADOPT x) – Fügt die Intention bzw. den Plan zur Liste der Intentionen bzw. Pläne hinzu.
  • (Drop x) – Löscht die Intentionen x bzw. den Plan x aus der Liste der Intentionen bzw. Pläne.
  • (CAN-DO x) – Der Agent meldet, dass er die Aktion x ausführen kann.

CAROL5 wurde in C++ implementiert, um Gruppenlernsysteme zu implementieren.

Literatur

  • Yoav Shoham: Agent-Oriented Programming. Artificial Intelligence 60 (1993) 51-92, Stanford, CA, USA
  • Yoav Shoham: An overview of agent-oriented programming. MIT Press, Cambridge, MA, USA 1997, ISBN 0-262-52234-9
  • Matthew A. Huntbach, Graem A. Ringwood: Agent-Oriented Programming. Springer, Berlin 1999, ISBN 3-540-66683-4