Janus Vortrag

of 28 /28
Janus Vortrag von Rene Kassel 1

Embed Size (px)

Transcript of Janus Vortrag

Folie 1

JanusVortrag von Rene Kassel1GliederungGrundlagenAgenten allgemeinMultiagentensystemCRIO metamodel

Janus ProjectAllgemeinesLebenszyklus eines Agenten in JanusStarten eines AgentenAgent-to-Agent Direct Communication

22GliederungPraktische BeispieleMyAgentMarket-Like-CommunityBoidsAnt Colony

Schlusswort

31. Grundlagen41.1 Agenten Allgemein "Ein Agent ist ein Computersystem das sich in einer bestimmten Umgebung befindet und welches fhig ist, eigenstndige Aktionen in dieser Umgebung durchzufhren, um seine (vorgegebenen) Ziele zu erreichen."5- So bezeichnet man ein Computerprogramm, das zu autonomen (eigenstndigen) Verhalten fhig ist

- D.h. dass ein bestimmter Verarbeitungsvorgang abhngig von verschiedenen Zustnden abluft, ohne das von Auen ein Startsignal gegeben wird oder ein Steuerungseingriff whrend des Vorganges erfolgt

- Es gibt keine allg. annerkannte Definition:

"Ein Agent ist ein Computersystem das sich in einer bestimmten Umgebung befindet und welches fhig ist, eigenstndige Aktionen in dieser Umgebung durchzufhren, um seine (vorgegebenen) Ziele zu erreichen."

51.1 Agenten Allgemein Einsatz von Agenten:E-CommerceInformationsrechercheSimulationErledigen von Routineaufgaben

Agententypen:Reaktive AgentenAdaptive AgentenKognitive Agenten

6- Simulation hier gibt es das Spezialgebiet der Multi-Agentensimulation mit eigenen Softwareprodukten- Es gibt unterschiede in der Art und Weise, wie sich ein Agent verhlt- 3 Bereiche von Agententypen:

Reaktive Agenten:- Verfgen nicht ber eigenes Wissen- Agieren nur aufgrund ihrer eigenen Wahrnehmung direkt- Es findet kein Entscheidungsprozess statt

Adaptive Agenten:- Diese verwalten ein Modell der eigenen Prozess- und Parameterstruktur- diese knnen an uere Bedingungen angepasst werden, welche gemessen oder erkannt wurden- dadurch kann eine optimale Ausfhrung mglich sein

Kognitive Agenten:- Verwalten ein Modell ihrer Umwelt in einer eigenen Datenstruktur Planung der Aktionen und zielgerichtetes Handeln wird mglich

61.2 MultiagentensystemGehrt zum Forschungsgebiet der Knstlichen Intelligenz

Ist ein System aus mehreren gleichartigen oder unterschiedliche spezialisiert handelnden Agenten

Lsen gemeinsam ein Problem

Beschftigen sich damit, wie autonome, verteilte und intelligente Systeme als Einheit ihr spezifisches Wissen, ihre Ziele, Fhigkeiten und Plne abstimmen, um koordiniert zu handeln oder Probleme zu lsen

71.3 CRIO-metamodelCRIO: Capacity, Role, Interaction and OrganizationOrganisationSammlung von RollenRollen stehen in einen gemeinsamen KontextKontext: gemeinsames Wissen, soziale Regeln und NormenZiel: gemeinschaftliche Erfllung einer AufgabeRollenist struktriertes VerhaltenZiel einer Rolle ist zur Erfllung von Aufgaben einer Organisation beizutragenInterne Rolle (Common Role)Externe Rolle (Boundary Role)8- Janus basiert auf den Konzepten des CRIO Metamodells- CRIO ist ein Metamodell, was dazu dient den ASPECT Development Process umzusetzen- ASPECT: Agentenorientierter Softwareprozess fr die Entwicklung komplexer Anwendungen- Sie sind wie folgt definiert:

Organisation- ist eine Sammlung von Rollen, die systematisch in verschiedenen Interaktionsmuster zusammenarbeiten- Die Rollen stehen in einem gemeinsamen Kontext- Dieser besteht aus gemeinsamen Wissen, sozialen Regeln und Normen, sozialen Gefhlen, welche miteinander in Verbindung stehen- Ziel einer Organisation ist die gemeinschaftliche Erfllung einer Aufgabe

Rollen- Eine Rolle ist ein strukturiertes Verhalten, was nach festgelegten Rechten und Pflichten erfolgt- Das Ziel einer jeden Rolle ist es zur Erfllung der Aufgaben einer Organisation beizutragen- Es gibt interne Rollen (Common Role) und Externe Rollen (Boundary Role) Interne Rolle = ist eine Rolle die innerhalb des Systems entworfen wurde, sie kann mit einer Internen und Externen Rolle interagieren

Externe Rolle = ist eine Rolle, die aus dem System heraus nach Auen kommuniziert die Gesamtheit der externen Rolle definieren das Interface (Schnittselle) zum System (GUI, Datenbank)

81.3 CRIO-metamodelInteraktionDynamische, nicht vorher bekannte Abfolge von EreignissenRollen reagieren je nach ihrem Verhalten auf die Ereignisse

Kapazitt / Capacity:hier frei bersetzt mit Fhigkeitabstrahiert know-how von einer konkreten Realisierung9Interaktion- Ist eine dynamische, nicht vorher bekannte Abfolge von Ereignissen (), die zwischen Rollen ausgetauscht werden oder zwischen Rollen und Entitten auerhalb des Agentensystems entwickelt werden- Rollen reagieren je nach ihrem Verhalten auf die Ereignisse

Kapazitt / Capacity - hier frei bersetzt mit Fhigkeit- abstrahiert know-how von einer konkreten Realisierung

92. Janus-Project 102.1 Allgemeinesbeschftigt sich mit Modellierung und Simulation von komplexen Systemenbesonders holonic multiagent systemsJanus ist eine Multiagentenplattform zur Implementierung von Mutliagentenin Java 1.5 geschriebenbasiert auf dem CRIO metamodelSchwerpunkt: Untersttzung und Implementation von Rollen und Organisation bei Agenten 11- Das Projekt baut auf einer Reihe von wissenschaftlichen Arbeiten ber die Modellierung und Simulation von komplexen Systemen auf- Besonderes Interesse gebhrt dem Bereich der holonic multiagent systems- Das Janus-Projekt bemht sich, die ganze Methodik und die Untersttzungwerkzeuge fr die Analyse, das Design und die Implementation von komplexen Anwendungen im Zusammenhang mit holonic multiagent-systems zu bieten- Ziel des Projektes ist es, eine Schritt fr Schritt Anleitung von den Anforderungen bis hin zur Implementierung zu geben.- Janus ist eine Multiagentenplattform, die speziell dafr entworfen wurde holonic- und multiagent-systems zu implementieren und bereit zu stellen- Es ist in JAVA 1.5 geschrieben und basiert auf CRIO metamodel- Schwerpunkt ist die Untersttzung und Implementation von Rollen und Organisation bei Agenten- Janus bietet ein umfassendes Set an Features zur Entwicklung, zum Ausfhrung, zum anzeigen und berwachen von Multiagentenbasierten Anwendungen112.2 Lebenszyklus eines AgentenJeder Agent in Janus durchlebt verschiedene Lebenszyklen

Diese sind:

Activate

Live

End

12

- Jeder Agent in Janus durchlebt verschiedene Lebenszyklen

Activate- Dies entspricht der Initialisierungsphase eines Agenten- Diese Phase wird automatisch von Janus kernel aufgerufen, wenn ein Agent gestartet wird

Live- Hauptteil des Agentenlebenszyklus- Die Live-Methode wird das Verhalten aufrufen, was der Agent in seiner Rolle besitzt- Jeder Aufruf der Methode fhrt einen Schritt des Rollenverhalten aus

End- Ist die Aktivitt, die den Agenten beendet- Alle Ressourcen, welche der Agent verwendet hat werden frei in dieser Methode

122.2 Lebenszyklus eines Agenten13

- Um einen eigenen Agenten zu machen muss man nur von der Oberklasse Agent aus dem Janus-Package ableiten- In dieser Klasse sind alle Grundlegenden Mechanismen vorimplementiert- Um einen minimalen Agenten zu implementieren muss man nur die entsprechenden Methoden berschreiben (Override)- Im Beispiel hier sind 2 Statusmethoden berschrieben (activate, live)- In der Methode activate wird ber den Aufruf StatusFactory.ok(this) dem System vermittelt, dass alles richtig abgelaufen ist- In der Methode live wird die Methode live der Oberklasse aufgerufen- Danach kann eigener Code ausgefhrt werden- Am ende wird der Status zurck gegeben

132.3 Starten eines Agenten14

- Die Klasse MyMASApplicationLauncher ist dazu da die Agenten zu starten- Hierzu bentigt sie nur eine Main-Methode- In dieser main-Methode wird zuerst ein Kernel fr die Agenten initialisiert- Danach werden 2 Intsanzen der Klasse Agent erzeugt- Der erste Agent wird als lightAgent gestartet, welcher nicht in einen Thread luft- Der zweite Agent wird als heavyAgent gestarte, dieser bekommt einen eigenen Thread zugeteilt- Am Ende wird an alle Agents ein Kill-Signal gesendet

142.4 Agent-to-Agent CommunicationOne-to-One-CommunicationMchte ein Agent eine Nachricht an einen anderen Agenten senden wird folgenden Methode verwendet:

AgentAddress sendMessage(Message message, AgentAddress agents)

One-to-Many CommunicationMchte ein Agent eine Nachricht an viele senden wird folgenden Methode verwendet

void broadcastMessage(Message message, AgentAddress agents)

15AgentAddress sendMessage(Message message, AgentAddress agents)- Methode heisst sendMessage- Diese hat als Parameter die Nachricht selber und den Zielagenten- Als Rckgabewert bekommt man die Adresse des Agenten, der die Nachricht tatschlich erhalten hat

One-to-Many Communication- Methode heisst broadcastMessage- Diese hat als Parameter die Nachricht selber und die Zielagenten- Kein Rckgabewert

153. Praktische Beispiele 163.1 MyAgentZeigt ein selbst implementiertes einfaches Beispiel, wie man einen Agenten startet und welchen Zustand er besitzt

fr die Erstellung war MAVEN ntig

MAVEN = Build-Management-Tool 17MAVEN = ein Build-Management-Tool der Apache Software Foundation und basiert auf Java. Mit ihm kann man insbesondere Java-Programme standardisiert erstellen und verwalten.173.2 Market-Like-Communityzeigt die Implementierung von Rollen als first-class entitybenutzt das CRIO-MetamodellImplementiert mit der Janus-PlatformBeispiel zeigt eine Markthnliche GemeinschaftGrundlagen:Ist ein Beispiel fr den Inlands-Reisemarkt es gibt 3 einfache Agententypen:einen Client (Kunde)einen Broker (Makler)4 Provider (Anbieter)Client mchte das beste Reiseangebot bekommen

18- Zeigt die Implementierung von Rollen als first-class entity, die dynamik in den Rollen und Kommunikation zwischen den Rollen- Benutzt das CRIO-Metamodell- Implementiert mit der Janus-Platform- Beispiel zeigt eine Markthnliche Gemeinschaft

Beschreibung:- das Beispiel wird fr den Inlands-Reisemarkt angewendet

es gibt 3 einfache Agenten:- einen Client (Kunde)- einen Broker (Makler)- 4 Provider (Anbieter) - Diese kommunizieren ber Rollen miteinander in unterschiedlichen organisatorischen Kontext- der Client mchte das beste Reiseangebot bekommen, dies entweder in Bezug auf die Reisezeit oder auf den Preis 183.2 Market-Like-CommunityVorgang:

Sendet Vorschlag an CBrokerCBroker leitet an PBroker weiterPBroker schickt Information an alle verfgbaren ProviderPbroker whlt beste Alternative und teilt diese den Client mitDer beste Provider und der Client treten in Kontakt, um Bestellung abzuschlieen

19- er macht seinen Vorschlag und sendet diesen an den CBroker - dieser schickt die Informationen an den PBroker, welcher sie an alle verfgbaren Provider schickt- Abhngig von dem Kriterium was der Kunde gewhlt hat (Preis oder Zeit), bestimmt der PBroker den besten Vorschlag und teilt ihm den Client mit- Der Client und der beste Provider bilden dann eine Instanz von der Contracting Organisation (Vertragsnehmer) um die Bestellung abzuschlieen und die Zahlung zu ttigen

193.2 Market-Like-CommunityOrganisationenDas Beispiel hat 3 Organisationen, jede davon besitzt 2 RollenPurchase (Kauf)Providing (Bereitstellung) Contracting (Vertragsnehmer))Fr Beispielszenario wird also bentigt:3 Agententypen3 Organisationen6 Rollen

20- Purchase verwaltet Interaktionen zwischen Client und Broker, die Hauptaufgabe liegt in der Formatierung und Weiterleitung der Client-Anfrage - Providing verwaltet Interaktionen zwischen Broker und Provider. Ziel ist, die Anfrage vom Client an alle Provider weiterzuleiten. In dem Beispiel ist nur der Provider bercksichtigt

- Contracting verwaltet Interaktionen zwischen dem Client und dem Provider

3 Agententypen (Client (Agent 1), Provider (Agent 3,4,5), Broker(Agent 2))3 Organisationen (Purchase (Kauf), Providing (Bereitstellung), Contracting (Vertragsnehmer))6 Rollen

203.2 Market-Like-Community21

- Eine Organisation kann dynamisch als Gruppe instanziiert werden- ein Agent nimmt eine Rolle in dieser Gruppe ein Figur 1: - three groups: g0, g1, g3 fr Gruppe fr jede Organisation- diese Gruppen knnen dynamisch durch die Agenten erstellt werden, wenn dies notwendig ist

213.3 Boidswurde 1986 als ein Computer Modell vorgeschlagen, dass koordinierte Tierbewegung simuliert, wie Vogel- oder Fischschwrme wird hufig in der Computergrafik genutzt, die eine realistische Darstellung von Vgeln oder anderen Lebewesen liefern sollendie 3 einfachen Verhaltensregeln:Separation (Trennung)Alignment (Angleichen)Cohesion (Zusammenhalt) 22- Die Komplexitt der Boids ergibt sich aus der Interaktion der einzelnen Agenten (hier den Boids) - diese folgen einfachen Regeln. - Die Regeln beschreiben die Verhaltenssteuerung eines BOID, welche sich auf die Position und Geschwindigkeit beziehen.

Die einfachsten sind:- Separation (Trennung)- Alignment (Angleichen)- Cohesion (Zusammenhalt)

223.3 Boids23

- Separation (Trennung): whle eine Richtung, um eine Hufung von Boids zu vermeiden

- Alignment (Angleichen): whle eine Richtung, di der mittleren Richtung der benachbarten Boids entspricht

- Cohesion (Zusammenhalt) : whle eine Richtung, die der mittleren Position der benachbarten Boids entspricht

- Dazu knnen weitere Regeln hinzugefgt werden, z.B. die Zielsuche oder das Ausweichen von Hindernissen- Bewegunsgmuster der Boids knnen in chaotisch (zufllige Bewegung, Aufbrechen des Schwarms)und geordnet unterschieden werden

Beispiel!!!!

233.4 Ant Colonydas Beispsiel zeigt die Simulation eines Ameisenstaates mit Hilfe eines Multiagentensystemsdies liefert eine mgliche Implementierung von BOIDSDas Ant Colony Prinzipeine einzelne Ameise hat kein globales Wissen ber die Aufgaben, die sie ausfhrt Die Aktionen basieren auf lokalen Entscheidungen und sind meist nicht vorhersehbarDas intelligente Verhalten entsteht durch die Selbstorganisation und indirekten Kommunikation zwischen den Ameisen

24243.4 Ant ColonyDefinition der Umwelt

die Umwelt ist in ein Raster zerlegtjede Zelle des Raster kann eine Kolonie, eine Pheromon oder eine Nahrungsquelle seinIn dem Beispiel gibt es 2 Typen von Pheromonen:

Das Food-Pheromon gibt die Richtung der Nahrungsquelle anDas Colony-Pheromon die gibt Richtung der Ameisenkolonie an

25253.4 Ant ColonyDefinition der Ant Colony OrganisationDie Organisation besteht aus 2 Rollen:Patroller:Luft zufllig durch die Kolonie und verstreut das Colony PheromonKehrt zur Kolonie zurck, wenn er denkt, das seine Pheromone auf die Hlfte des Ursprungswertes gesunken sindForager:Dieser sucht zufllig nach FutterquellenWhrend der Suche wirft er das Colony Pheromon ausNachdem er eine Futterquelle gefunden hat, versucht er zur Kolonie zurckzukehren mit Hilfe des Colony PheromonsWhrend er zurck zur Kolonie geht wirft er Food-Pheromons aus um die Nahrungsquelle spter wieder zu finden

26263.4 Ant ColonyBeispiel27- Weier Kreis: Kolonie ist die Mitte des weien Kreises- Grner Punkt: Bewegliche Ameise- Gelber Punkt: Unbewegliche Ameise- Roter Punkt: Futterquelle- Weie Kurve: hier sind Colony Pheromones- Pinke Kurve: hier sind Food-Pheromones

274. Schlusswort

28- Dokumentation teilweise schwer verstndlich

MAVEN Plugin fr Eclipse machte Schwierigkeiten- Installation lief problemlos- Probleme beim Integrieren von Repositories fr die Archetypes

- Getting Started guide knnte weiter ausgebaut werden- so an sich eine gute Mglichkeit Multiagentensysteme zu entwickeln28