Janus Vortrag

  • View
    169

  • Download
    2

Embed Size (px)

Text 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 z