Fandom

VroniPlag Wiki

Mh/Fragment 178 04

< Mh

31.358Seiten in
diesem Wiki
Seite hinzufügen
Diskussion0 Share

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.


Typus
ÜbersetzungsPlagiat
Bearbeiter
Lukaluka, Hindemith
Gesichtet
No.png
Untersuchte Arbeit:
Seite: 178, Zeilen: 4
Quelle: Ciancarini Wooldridge 2000
Seite(n): 6, Zeilen: 3
Somit liegt die Entscheidung, ob eine Aktion ausgeführt wird in der objektorientierten Programmierung bei der aufrufenden Instanz, in der agentenorientierten Programmierung jedoch beim Agenten selbst. Dies wird oft zusammengefasst in dem Slogan "Objects do it for free; agents do it because they want to." [FN 84] Wird ein Agent in einer objektorientierten Programmiersprache als Objekt implementiert, so sind die Methoden für den Nachrichtenerhalt natürlich als 'public' zu deklarieren, der zentrale Unterschied besteht jedoch darin, dass durch den Nachrichtenerhalt keine direkte Aktion ausgelöst wird. Diese Differenz zwischen Objekten und Agenten ist somit weniger syntaktischer als vielmehr semantischer Natur. [FN 85]

Der zweite Unterschied besteht in der Idee des flexiblen, d.h. des reaktiven, proaktiven und sozialen Handelns eines Agenten. Aus der rein objektorientierten Sicht existiert kein Pendant zu diesem Konstrukt. Ein Objekt kann natürlich, etwa in Form eines Agenten, so implementiert werden, dass es diese Verhaltensweisen zeigt. Dies stellt dann jedoch eine inhaltliche Umsetzung dar, die nicht direkt auf objektorientierte Konzepte zurückgreift.

Der dritte Unterschied bezieht sich hauptsächlich auf die technische Umsetzung von Multiagentensystemen. In einem objektorientierten Programm findet sich in der Regel ein einzelner Thread, der die Kontrolle über den Programmablauf besitzt. In einem idealen Multiagentensystem sollte jeder Agent die Kontrolle über seinen eigenen Thread besit- zen. [FN 86] Dies kann bedeuten, dass technisches Multithreading gefordert wird. Stellt das verwendete Softwarepaket jedoch kein Multithreading zur Verfügung, so kann dies auf der abstrakteren Modellebene abgebildet werden.

[FN 84] Wooldridge (2002), S. 26. Gelegentlich findet sich auch die folgende Fassung: „Objects do it for free; agents do it for money"; Wooldridge (2000), S. 35.

[FN 85] Einige Autoren sehen daher die agentenorientierte Programmierung als einen Spezialfall des objektorientierten Programmiermodells; vgl. exemplarisch Shoham (1993).

[FN 86] Einen Ansatz in der objektorientierten Welt, der versucht, diese Idee zu integrieren, stellen die so genannten 'active objects' dar; vgl. dazu etwa Booch (1994), S. 91.

The locus of control with respect to the decision about whether to execute an action is thus different in agent and object systems. In the object-oriented case, the decision lies with the object that invokes the method. In the agent case, the decision lies with the agent that receives the request. This distinction between objects and agents has been nicely summarized in the following slogan: Objects do it for free;

agents do it because they want to.

The second important distinction between object and agent systems is with respect to the notion of flexible (reactive, pro-active, social) autonomous behavior. The standard object model has nothing whatsoever to say about how to build systems that integrate these types of behavior. One could point out that we can build object-oriented programs that do integrate these types of behavior. And indeed we can, but this argument misses the point, which is that the standard object-oriented programming model has nothing to do with these types of behavior.

The third important distinction between the standard object model and our view of agent systems is that agents are each considered to have their own thread of control. Agents are assumed to be continually active, and typically are engaged in an infinite loop of observing their environment, updating their internal state, and selecting and executing an action to perform. In contrast, objects are assumed to be quiescent for most of the time, becoming active only when another object requires their services by dint of method invocation.

Of course, a lot of work has recently been devoted to concurrency in object-oriented programming. For example, the Java language provides built-in constructs for multithreaded programming. There are also many programming languages available (most of them admittedly prototypes) that were specifically designed to allow concurrent object-based programming. But such languages do not capture the idea we have of agents as autonomous entities. Perhaps the closest that the object-oriented community comes is in the idea of active objects: [...] [6, p.91]

[6] G. Booch. Object-Oriented Analysis and Design (second edition). Addison-Wesley: Reading, MA, 1994.

Anmerkungen

Fortsetzung der Übernahme von Mh/Fragment_177_15 Die Quelle Booch (1994) aus Fn 86 wird übernommen inkl. Seitenzahl. Die Quelle Shoham (1993) aus Fn 85 findet sich auch in der Primärquelle. Anmerkung: Der gleiche Text scheint sich noch einmal im Lehrbuch von Wooldridge 2000 zu finden.

Sichter

Auch bei Fandom

Zufälliges Wiki