Multi-Agenten Systeme Moderner Ansatz zur verteilten künstlichen Intelligenz Peter Brezany Institut für Softwarewissenschaften Universität Wien P.Brezany Institut für Softwarewissenschaft - Universität Wien Allgemeines und Grundbegriffe P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 1 2 Einführung • Intelligente Agenten für den kommerziellen Einsatz in Computersystemen sind zwar relativ neue Erscheinung, aber in der Forschung beschäftigt man sich schon seit vielen Jahren mit ihnen. • Das Studium von Multiagentensystemen begann im Gebiet von distributed artificial intellifence (DAI) vor 20 Jahren. Es baut auf Resultaten, Konzepten und Ideen von vielen Disziplinen (Künstliche Intelligenz, Informatik, Soziologie, Ökonomie, Organisations- und Managementwissenschaft, und Philosofie). • Heute sind diese Systeme nicht nur ein Forschungsthema – sie fangen auch an, ein wichtiges Subjekt akademischer Lehre und industrieller und kommerzieller Anwendungen zu sein. • Java hat sich eindeutig als die beste Sprache von bestehenden kommerziellen Sprachen für die Konstruktion von Agenten und Multiagentensystemen herausgestellt. P.Brezany Institut für Softwarewissenschaft - Universität Wien 3 Künstliche Intelligenz (KI) Der Begriff der künstlichen Intelligenz ist während der vergangenen vierzig Jahren in und aus der Mode gekommen. Zuerst stand er für das Versprechen, dass die Menschheit in der Lage wäre, intelligente Maschinen mit Fähigkeiten zu konstruieren, die mit denen von Menschen vergleichbar wären oder sie sogar überstiegen. Nach Jahren in denen solche Erwartungen unerfüllt blieben, verband man ihn jedoch mit fehlgeschlagenen Ansätzen. Obwohl der Begriff nicht mehr so beliebt sein mag, bleibt doch der grundlegende Wunsch bestehen, Computer kluger oder intelligenter zu machen. Da wir aus Schichten von konventioneller Software immer komplexere Systeme aufgebaut haben, hat sich die Notwendigkeit von Intelligenz, ob natürlich oder künstlich, tatsächlich verstärkt. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 2 4 Künstliche Intelligenz (KI) (2) Künstliche Intelligenz erlaubt uns, Software zu entwickeln, die raffinierter ist, als sie ohne KI wäre, und dadurch qualitativ besser als Software, die keine KI-Techniken einsetzt. Ob man es als Fehler oder als Erfolg ansehen will, die Tatsache bleibt bestehen, dass die KI-Forschung wichtige Beiträge für das Design und die Entwicklung von kommerzieller Standardsoftware geleistet hat. Den vielleicht größten Einfluss hat sie in dem Bereich gehabt, der heute als objektorientierte Programmierung bekannt ist. Die Vorstellung von Softwareobjekten mit zugehörigen Daten und Prozeduren ist eine Verfeinerung des KI-Konzept der Frames, die Slots oder Attribute aufweisen, um einem Begriff zugehörige Daten festzuhalten, und angehängt Prozeduren (Methoden), um diese Daten zu verarbeiten. P.Brezany Institut für Softwarewissenschaft - Universität Wien 5 Die Rolle von Java Obwohl der objektorientierte Ansatz einst ein heftig umstrittener Punkt in den Kreisen der Softwareentwickler war, ist dies heute die für kommerzielle Zwecke bevorzugte Methode. Die Einführung der Programmiersprache Java im Jahre 1996 hat diese Vorrangstellung nicht nur bestätig, sondern auch gezeigt, wie ernst man diese Überzeugung nimmt. Java ist die ideale Sprache für das Schreiben von intelligenten Agenten. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 3 6 KI - Grundbegriffe Intelligente Softwareagenten, mit deren Hilfe Benutzer Aufgaben über Computernetzwerke ausführen, stünden heute nicht einmal zur diskussion, hätte man nicht Jahre der Forschung in die Bereiche verteilte künstliche Intelligenz, Problemlösung, Schlussfolgerung, Lernen und Planen investiert. Jetzt diskutieren wir die Grudentwicklungsphasen der KI. P.Brezany Institut für Softwarewissenschaft - Universität Wien 7 KI – Grundbegriffe (2) 1. Phase. Der Schwerpunkt lag auf der Entwicklung allgemeiner „Denkmaschinen“ (Spielen wie Dame und Schach, Theorembeweisen, Geometrie und Differenzrechnung), die eine große von Problemen lösen können sollten. Diese Systeme verwendeten häufig sehr anspruchsvolle Schlussfoldgerungs- und Suchtechniken. 2. Phase. Diese Phase der KI-Forschung begann, als man erkannte, dass die meisten erfolgreichen KI-Projekte auf sehr eng begrenzte Problembereiche ausgerichtet waren und dass oft sehr viel Spezialwissen über das zu lösende Problem darin steckte. Regelbasierte Expertensysteme wurden entwickelt, um die unterschiedlichsten Aufgaben zu erledigen, darunter chemische Analysen, Konfigurationen von Computersystemen und medizinische Diagnosen. Dabei setzte man Forschungsergebnisse über Wissensdarstellung, Knowledge Engineering und fortgeschrittene Schlussfolgerungstechniken ein und konnte zum ersten Mal beweisen, dass künstliche Intelligenz in Programmen einen echten Nutzen hatte und Geld brachte. 8 P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 4 KI – Grundbegriffe (3) 3. Phase – Wir haben nun die dritte Phase der Anwendungen künstlicher Intelligenz erreicht. Mit der explosionsartigen Entwicklung des Internets und der verteilten Rechnersysteme in jüngster Zeit entstand die Idee, Agenten zu schaffen, die sich durch Netzwerke bewegen, mit anderen Agenten zusammenarbeiten und Aufgaben für Benutzer ausführen können. Intelligente Agenten werden durch den Einsatz modernster KI-Techniken zu autonomen, intelligenten und mobilen Softwareagenten, die den Wirkungskreis von Benutzern in Netzwerken enorm erweitern. Ein Agent handelt rational. Er tut Dinge, die auch wir tun aber nicht unbedingt auf die gleiche Weise. Agenten machen uns produktiver. Sie gestatten uns mehr Arbeit in kürzerer Zeit zu bewältigen, und helfen uns, zu mehr interessanten Informationen und weniger unbrauchbaren Daten zu kommen. Unsere Programme werden durch den Einsatz von KI-Technologien qualitativ besser. P.Brezany Institut für Softwarewissenschaft - Universität Wien 9 Verarbeiten von Symbolen Es gibt viele Verhaltensweisen, die wir mit Intelligenz in Verbindung bringen. Die Fähigkeit, bestimmte Situationen und Sachverhalte wiederzuerkennen, ist eine Art von Intelligenz. Ein Arzt zum Beispiel, der im Gespräch mit einem Patienten Daten über dessen Krankheitssymptome sammelt und anschließend in der Lage ist, die Krankheit eindeutig zu diagnostizieren und die richtige Behandlungsmethode zu bestimmen, zeigt diese Art von Intelligenz. Die Fähigkeit, aus einigen wenigem Beispielen zu lernen, diese Wissen zu verallgemeinern und später auf neue Situationen anzuwenden, ist eine weiter Form von Intelligenz. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 5 10 Verarbeiten von Symbolen (2) Intelligentes Verhalten kann durch die Bearbeitung von Symbolen erzeugt werden. Dies ist einer der grundlegenden KI-Lehrsätze. Symbole sind Zeichen, die Objekte oder Ideen der realen Welt darstellen und auf einem Computer in Form von Zeichenketten oder Zahlen repräsentiert werden können. Bei diesem Ansatz wird ein Problem durch eine Gruppe von Symbolen dargestellt und dann der geeignete Algorithmus entwickelt, um diese Symbole zu verarbeiten. P.Brezany Institut für Softwarewissenschaft - Universität Wien 11 Drei Fragen • (Q1) Was ist ein Agent? • (Q2) Wenn ein Software-Programm kein Agent ist, wie kann man es in einen Agenten transformieren? • (Q3) Wenn (Q1) klar ist, welche Software Infrastruktur braucht man zur Interaktion zwischen Agenten? Welche Dienste sind notwendig? P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 6 12 Distributed Artificial Intelligence Definition: Distributed Artificial Intelligence (DAI) Das Gebiet, das Systeme untersucht in denen mehrere autonom agierende (intelligente) Entitäten zusammenarbeiten um ein gegebenes Ziel zu erreichen oder eine gemeinsame Aufgabe auszuführen. Diese Entitäten heissen Agenten, das Gebiet Multiagenten Systeme (MAS). DAI beschäftigt sich auch mit dem Entwurf und Anwendung von MAS. Beispiel: Robocup League Warum? Grosse Informationssysteme sind verteilt, offen, heterogen. Dies verlangt nach intelligenten, interagierenden Agenten, die autonom agieren. P.Brezany Institut für Softwarewissenschaft - Universität Wien 13 Definition von Agent Agent: Ein Agent ist etwas, das seine Umgebung mittels Sensoren wahrnimmt und in dieser Umgebung mittels Werkzeugen autonom agiert. Autonomität – zentraler Begriff Intelligenz: auf Ziel orientiert Interaktiv: mit anderen Agenten (oder Menschen) Coordination: Cooperation vs. Competition P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 7 14 Definition von Agent (2) • Software-Agenten: Ein- und Ausgabe sind Bitströme (eventuell im Internet) • Mobilität: Fähigkeit, die physikalische Position zu ändern • Rationale Agenten sind solche, die das Richtige tun. (Ein Maß für die Performanz wird benötigt.) • Allwissende Agenten sind solche, die die Resultate ihrer Aktionen im voraus wissen. (Rationale Agenten sind i.A. nicht allwissend!) P.Brezany Institut für Softwarewissenschaft - Universität Wien 15 MAS versus Klassische DAI MAS: Mehrere Agenten koordinieren ihr Wissen und ihre Aktionen (Semantik beschreibt dies). DAI: Spezielles Problem wird in kleinere Probleme zerlegt (Knoten). Diese Knoten haben gemeinsames Wissen. Die Lösungsmethode wird zentral vorgegeben. Heute ist DAI oft synonym mit MAS. Das Studium von MAS begann vor etwa 20 Jahren. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 8 16 Intelligente Agenten Ein Agent ist ein Computer/Programm System, das in seiner Umgebung agiert und autonome Aktionen ausführt um gewisse Ziele zu erreichen. Umgebung ist nicht deterministisch. Intelligente Agenten müßen verlässig in Umgebungen, die sich schnell ändern, unvorsehbar und offen sind, wo gewisse Wahrscheinlichkeit besteht, dass Agententaktionen nicht erfolgreich sein können. P.Brezany Institut für Softwarewissenschaft - Universität Wien 17 Intelligente Agenten (IA) (2) 2 Beispiele von modernen Anwendungsgebiete für IA. 1. Raumsonde (Flug: Erde – anderer Planet) Momentan alles vom Bodenzentrum kontrolliert – teuer und für schnelle Entscheidungen oft sehr lagsam – NASA untersucht Möglichkeiten, wie Sonden autonomer zu machen 2. Suchen im Internet – In der Zukunft ein Agent wird unsere Anfrage erhalten und Antwort auf intelligente Weise finden. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 9 18 AI gegen DAI P.Brezany Institut für Softwarewissenschaft - Universität Wien 19 Der Agent in seiner Umgebung Die nächste Abbildung – eine abstrakte, top-level Sicht eines Agenten. In vielen (komplexen) Anwendungen hat der Agent keine komplette Kontrolle über seine Umgebung, nur partielle Kontrolle – dieselbe Aktion kann verschiedene Einflüsse haben, wenn 2-mal (in anscheinend gleichem Kontext) ausgeführt. Sie kann sogar versagen. Die Umgebung kann nicht-deterministisch sein. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 10 20 Der Agent in seiner Umgebung (2) • Einem Agenten steht ein Repertoire von Aktionen zur Verfügung. Nicht alle Aktionen dürfen in jeder Situation ausgeführt werden. (Z.B. Aktionen: „hebe Tisch“, „kaufe Ferrari“).Deshalb sind Vorbedingungen (Pre-Konditionen) mit Aktionen verknüpft. • Schlüsselproblem: welche Aktionen ausführen, um am besten die Entwurfsziele zu erreichen. • Agentenarchitekturen (wie wir später sehen werden) sind in Wirklichkeit Softwarearchitekturen für entscheidungstreffende Systeme (decision making systems), die in eine Umgebung eingebettet (embedded) sind. P.Brezany Institut für Softwarewissenschaft - Universität Wien 21 Der Agent in seiner Umgebung (3) P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 11 22 Ereignisse Ein Ereignis ist alles, was die Umgebung verändert oder was der Agent berücksichtigen muss (z.B. das Eintreffen einer E-mail; Änderung an einer Internetseite; ein Signal um Mitternacht–Zeit um die Faxe herauszuschicken, die sich in der Warteschleife befinden). Wenn ein neues Ereignis eintrifft, muss der Agent dieses erkennen, seine Bedeutung einschätzen und darauf reagieren. Im nächsten Schritt wird festgestellt, wie der Zustand der Welt ist, und über die entsprechende Aktion entscheiden. Ein intelligenter Agent muss auch proaktiv sein – er soll nicht einfach nur auf Ereignisse reagieren, sondern muss auch fähig sein, selbst zu planen und Aktionen zu starten. P.Brezany Institut für Softwarewissenschaft - Universität Wien 23 Eigenschaften der Umgebung Zugänglich/Unzugänglich. Zugänglich – der Agent kann komplette, genaue, aktuelle Information über den Zusatnd der Umgebung erhalten. Der Größtenteil von mäßig komplexen Umgebungen (z.B. unsere physikalische Welt und Internet) ist unzugänglich; je zugänglichere Umgebung desto einfacher ist, die entsprechenden Agenten zu bauen. Deterministisch/Indeterministisch: Deterministisch – es gibt keine Unsicherheit über den Zustand. Die physikalische Welt ist indeterministisch – größere Probleme für Agenten. Falls die Umgebung unzugänglich ist, kann sie indeterministisch scheinen, obwohl sie es nicht ist. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 12 24 Eigenschaften der Umgebung (2) Episodisch/Nichtepisodisch: Episodisch – die auf den AgentPerceptionen (Wahrnehmung) basierten Entscheidungen sind unabhängig von vorherigen Perceptionen. Jedes PerceptionAktion Paar ist von jeder anderen Zeit unabhängig. Spiele sind ein Beispiel nichtepisodischer Umgebungen – jeder Zug ist ein Teil einer Strategie = das Spiel zu gewinnen. Ein Beispiel für episodische Umgebung – Mailsortierungssystem. Statisch/Dynamisch: Dynamisch heißt: während der Agent noch überlegt, ändert sich schon die Welt. Semi -dynamisch heißt: Zwar ändert sich nicht die Welt, aber das Performanz-Maß des Agenten. Diskret/Stetig: Diskret – in der Umgebung ist eine feste, begrenzte Zahl von Aktionen und Wahrnehmungen, z.B. Schachspiel. Das Beispiel für stetige Umgebung – Taxifahren. P.Brezany Institut für Softwarewissenschaft - Universität Wien 25 Beispiele von Umgebungen P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 13 26 Beispiele für (nicht intelligente) Agenten 1. Jedes Steuerungssystem kann als ein Agent betrachtet werden. Thermostat (Effekt nicht immer garantiert, z.B. die Tür ist offen) sehr kalt → Heizung EIN Temperatur OK → Heizung AUS 2. Ein Großteil von daemons, (wie Hintergrundprozesse in UNIX), die eine Softwareumgebung monitorieren kann als Agenten betrachtet werden. Z.B. xbiff monitoriert ankommende E-mails. P.Brezany Institut für Softwarewissenschaft - Universität Wien 27 Rationaler, allwissender Agent Definition Rationale Agenten sind solche, die das Richtige tun. (Ein Maß für die Performanz wird benötigt.) Allwissende Agenten sind solche, die die Resultate ihrer Aktionen im voraus wissen. Rationale Agenten sind i.a. nicht allwissend! P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 14 28 Rationaler, allwissender Agent (2) Wie ist das Richtige definiert und wovon hängt es ab? 1. Performanz-Maß (möglichst objektiv), 2. Percept-Sequenz: was bisher wahrgenommen wurde, 3. Wissen des Agenten über die Umgebung, 4. Aktionsmöglichkeit des Agenten. Definition : Idealer rationaler Agent Ein idealer rationaler Agent wählt für jede PerceptSequenz genau die Aktion aus, die sein Performanz-Maß maximiert (bei gegebenem Wissen über die Umgebung). P.Brezany Institut für Softwarewissenschaft - Universität Wien 29 Mathematische Beschreibung Agenten können durch Abbildungen Menge der Percept-Sequenzen → Menge der Aktionen mathematisch beschrieben werden. Die interne Struktur eines Agenten ist Agent = Architektur + Programm P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 15 30 Beispiel für einen Agenten: Taxi P.Brezany Institut für Softwarewissenschaft - Universität Wien 31 Die PAGE-Beschreibung von Agenten P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 16 32 Intelligente Agenten Definition: Ein intelligenter Agent ist ein Agent mit folgenden Eigenschaften: 1. Reaktiv: Reaktion auf Änderungen im Environment in gewissen Zeitabständen um ihre Ziele zu erreichen. 2. Pro-aktiv: Initiative übernehmen, zielgerichtetes Verhalten 3. Sozial: Interaktion mit anderen um ihre Ziele zu erreichen. Pro aktiv alleine reicht nicht (C-Programme). Denn die Umgebung kann sich ändern während der Ausführung des Programms. Schwierigkeit: Richtige Balance zwischen Pro-aktiv and Reaktiv! P.Brezany Institut für Softwarewissenschaft - Universität Wien 33 Agenten und Objekte • Ein skeptischer Hörer/Leser mag nun fragen: „Was soll die ganze Aufregung um Agenten?“ Es sind doch nur verteilte Objekte mit einem anderen Namen. • Ein Objekt ist eine Programmeinheit, die Zustand (Daten) und Verhalten (Funktion) verkapselt und eine Reihe von Methoden oder Prozeduren aufweist, mit denen dieser Zustand verändert werden kann. Objekte werden von anderen Objekten benutzt, um Aktionen durchzuführen. Objekte lösen keine Aktionen aus eigenem Antrieb aus. • Es existieren sowohl deutliche Ähnlichkeiten als auch Verschiedenheiten zwischen Agenten und Objekten – siehe die nächsten Folien. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 17 34 Agenten und Objekte (2) 1. Autonomität von Agenten und Objekten. Ein Objekt kann Kontrolle über seinen eigenen internen Zustand haben aber keine Kontrolle über sein Verhalten – wenn eine Methode den anderen zum Aufruf zur Verfügung steht, sie können das machen, wann auch immer sie das wollen – das Objekt hat keine Kontrolle mehr über die Ausführung oder nichtAusführunf dieser Mehode. In multiagenten Systemen ist noch gesichert, dass ein Agent i eine Aktion (Method) a nur deshalb ausführen wird, dass ein anderer Agent j das will. Agenten rufen keine Aktion – sie verlangen, dass diese Aktion ausgeführt wird. P.Brezany Institut für Softwarewissenschaft - Universität Wien 35 Agenten und Objekte (3) 2. Flexibles (reactives, pro-actives, soziales) autonomes Verhalten. Das standartes Objektmodel sagt kein Wort darüber, wie man Systeme baut, die diese Verhaltentypen integrieren. 3. Eigene Thread-Struktur. Es wird angenommen, dass jeder Agent eine eigene Thread-Steuerung hat – Nach dem standarten Objektmodel existiert nur eine ThreadSteuerung im ganzen System. P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 18 36 Agenten und Expertensysteme • Expertensysteme (ES) war die wichstigste KITechnologie der achtziger Jahren. • Ein ES is fähig in einem Wissensreichen Bereich Probleme zu lösen oder Ratschläge zu geben. • ES interagieren direkt mit keiner Umgebung: sie bekommen ihre Information nicht über Sensoren, aber von einem Anwender, der als middle man wirkt. Auf gleiche Weise, sie üben keine Aktion auf der Umgebung, aber geben Feedback oder Rat an „third party“. ES kommunizieren mit keinen Agenten. Einige ES (z.B. Echtzeit-ES) sehen ähnlich wie Agenten aus. P.Brezany Institut für Softwarewissenschaft - Universität Wien 37 Es folgt: Abstrakte Architekturen für Intelligente Agenten P.Brezany Institut für Softwarewissenschaft - Universität Wien Page 19 38