Kommunikation in Multi Agenten Systemen

Größe: px
Ab Seite anzeigen:

Download "Kommunikation in Multi Agenten Systemen"

Transkript

1 Universität Paderborn Fakultät für Elektrotechnik, Mathematik und Informatik Seminarausarbeitung Kommunikation in Multi Agenten Systemen Melanie Kirchner vorgelegt bei Prof. Dr. Hans Kleine Büning 1

2 Inhaltsverzeichnis 1. Einleitung Grundlagen der Kommunikation Sprechakttheorie 5 2. Indirekte Kommunikation Blackboard Stigmergy 8 3. Direkte Kommunikation Einführung in ACLs (Agent Communication Language) FIPA (Foundation for Intelligent Physical Agents) KSE (Knowledge Sharing Effort) Ontologien KIF (Knowledge Interchange Format) Allgemeines Syntax KQML Allgemeines Semantik Syntax Adressaten Singlecast Multicast Broadcast Vor und Nachteile Reichweite Bezug zur Projektgruppe KIMAS Quellenverzeichnis 20 2

3 Abbildungsverzeichnis Abbildung 1 Kommunikationsmodell 4 Abbildung 2 Blackboardmodell mit Kontrolleinheit 7 Abbildung 3 Nest der Papierwespe 8 Abbildung 4 Aufbau des KSE 10 Abbildung 5 KQML - Schichten 13 3

4 1. Einleitung In dieser Arbeit geht es um die Kommunikation in Multi Agenten Systemen. Ich werde mit einigen allgemeinen Grundlagen der Kommunikation beginnen. Danach werde ich auf die unterschiedlichen Arten der Kommunikation, zum einen die indirekte, zum anderen die direkte, eingehen. Bei der indirekten Kommunikation werde ich mich mit Blackboard - Systemen und Stigmergy auseinandersetzen, bei der direkten Kommunikation genauer auf einige Standards der Kommunikationsprotokolle eingehen und die Sprachen KIF und KQML vorstellen. Am Ende werde ich noch auf die verschiedenen Adressaten eingehen und als Fazit einen Bezug zur Projektgruppe KIMAS herstellen. 1.1 Grundlagen der Kommunikation Kommunikation ist die Grundlage für Interaktion und soziale Organisation. Dadurch ist es möglich gemeinsam an Aufgaben zu arbeiten und sich dabei zu koordinieren. Oft ist es einfacher seine Ziele zu erreichen, wenn man auf den Wissensbestand anderer zugreifen kann, und ihn sich nicht erst selbstständig aneignen muss. Vorraussetzung für eine gelungene Kommunikation ist eine gemeinsame Sprache. Des weiteren sollten einige Basisregeln eingehalten werden, wie Ehrlichkeit, Hilfsbereitschaft und die Angewohnheit, auf gestellte Fragen auch zu antworten. Kommunikation erfolgt über Signale. Diese Signale haben an sich keine Bedeutung. Erst wenn jemand dieses Signal empfängt und auch ein System zur Interpretation besitzt, oder daraufhin sein Verhalten ändert erlangt es Bedeutung. Wenn dieses Signal nur ein Verhalten erzeugt, wird es Stimulus oder Reiz genannt. Wird es andernfalls nur in ein kognitives System aufgenommen, welches es interpretieren kann, wird das Signal als Bedeutungsträger bezeichnet.[1] Laut der Kommunikationstheorie von Shannon und Weaver besteht Kommunikation aus einem Sender, der eine Information an einen Empfänger sendet. Die Information wird mit Hilfe einer Sprache beim Sender verschlüsselt, durch einen Kanal gesendet und vom Empfänger wieder entschlüsselt. Abbildung 1 Kommunikationsmodell 4

5 1.2 Sprechakttheorie Es ist wichtig, kurz auf die Theorie der Sprechakte einzugehen, da sich einige der weiter unten vorgestellten Sprachen auf diese Theorie beziehen. Laut Ferber besteht ein Sprechakt aus 3 Komponenten[1] Lokutionäre Komponente Illokutionäre Komponente Perlokutionäre Komponente Unter lokutionäre Komponente versteht man die materielle Erzeugung von Äußerungen, wie z.b. das Schreiben von Buchstaben Die illokutionäre Komponente bezieht sich auf die Ausführung des Sprechakts. Sie werden durch eine illokutionäre Kraft (z.b. bitten, fragen) und den Inhalt einer Aussage definiert. Formal wird das folgendermaßen ausgedrückt: <Performativ> (<Inhalt>) Wobei Performativ ein Schlüsselwort ist, welches den gerade verwendeten Sprechakt angibt: Frage (es regnet) bedeutet also: Regnet es? Schließlich gibt es noch die perlokutionäre Komponente. Diese bezeichnet die Effekte, die illokutionäre Sprechakte auf den Zustand des Adressaten haben. So ist z.b. die Bitte an John eine Tasse Kaffee zu holen illokutionär, wenn er dann losgeht um die Tasse Kaffee zu holen, ist auch die perlokutionäre Komponente erfüllt. 5

6 2. Indirekte Kommunikation Bei der indirekten Kommunikation tauschen sich die Agenten in einem System nicht direkt miteinander aus. Einer der Vorteile liegt darin, dass keine komplizierten Kommunikationsprotokolle gebraucht werden und sie somit einfach zu implementieren ist. 2.1 Blackboard Die Grundidee des Blackboard Systems ist, dass mehrere verschiedene Agenten zusammen an einem Problem arbeiten und zur Kommunikation das Blackboard benutzen. Dieses System besteht im allgemeinen aus 3 verschiedenen Komponenten[1], wobei bei der klassischen Variante keine Kontrolleinheit vorhanden ist. Agenten, auch Knowledge Sources oder Wissensquelle genannt Blackboard Kontrolleinheit Die Agenten des Systems haben die Aufgabe, bestimmte Probleme zu lösen. Dies geschieht, indem sie zur Lösung relevante Beiträge auf das Blackboard schreiben, die wiederum dazu dienen können, weitere Teillösungen des Problems zu finden. Solange die entgültige Lösung des Problems noch nicht gefunden wurde, bzw. mit Hilfe der Informationen des Blackboards noch nicht konstruiert werden konnte, wird diese Prozedur fortgesetzt. Wichtig ist, dass jeder Agenten des Systems über alle für ihn wichtigen Einträge des Blackboards Bescheid weiß, damit er effizient an der Lösung des Problems arbeiten können. Der Agent kann dabei selber entscheiden, welche Art von Informationen er für Wichtig erachtet. Damit die Agenten nicht ständig das Blackboard nach neuen Einträgen durchsuchen müssen wird, wann immer etwas Neues hinzukommt, sich eine Information ändert oder ein Beitrag gelöscht wird, ein Event ausgelöst. Daraufhin können die Agenten entscheiden, ob sie sich die Änderung ansehen wollen, oder nicht. Die Agenten des Systems müssen nicht alle dieselben Fähigkeiten haben, die einzige Vorraussetzung, die sie erfüllen müssen, um an der Lösung des Problems mitarbeiten zu können, ist die Einhaltung der Schnittstelle des Blackboards und das Verständnis der benutzten Sprache. Das Blackboard ist eine gemeinsame Datenstruktur, die alle wichtigen Informationen zur Lösung des Problems enthält. Oft weist das Blackboard eine hierarchische Struktur auf[1], dies ist aber nicht zwingend notwendig. Es wäre z.b. möglich, dass auf verschiedenen Ebenen das Problem in unterschiedlichen Repräsentationsformen und Abstraktionsformen dargestellt wird. Die Agenten arbeiten auf unterschiedlichen Ebenen und sehen jeweils nur die eigene Ebene, wobei es ihnen dann nur möglich ist Daten an eine Ebene höher weiterzugeben oder die Agenten einer Ebene tiefer zu kontrollieren. Die Kontrolleinheit ist unabhängig von den Agenten und dient zur Steuerung und Koordination der Agenten. Sie entscheidet welcher von ihnen den nächsten Schritt im Lösungsprozess machen darf. Die Agenten melden sich bei der Komponente an, wenn sie einen Beitrag leisten möchten, und teilen dazu die Kosten und die Qualität des Beitrags 6

7 mit. Falls sich mehrere Agenten anmelden, entscheidet die Kontrolleinheit anhand der erhaltenen Informationen, welcher als nächstes handeln darf.[2] Die Implementierung dieser Kontrolleinheit kann sich als sehr anspruchsvoll erweisen, da sie leicht zum Flaschenhals werden kann, wenn sich viele Agenten in einem System befinden, die alle viele Beiträge leisten möchten. So wurde z.b. die Kontrollkomponente in der ersten Version von Hearsay II, ein Spracherkennungssystem, prozedural umgesetzt, bei den BB1 Systemen von B. Haynes-Roth (1985) wurde diese Einheit selbst als Blackboard organisiert. [1] Abbildung 2 Blackboardmodell mit Kontrolleinheit Zu den Vorteilen des Blackboard Systems zählt ihre universelle Anwendbarkeit. Es gibt keine festgeschriebene Art von Problemen, die zu lösen sind. Es lassen sich die unterschiedlichsten Arten von Problemen lösen. Ein weiterer Vorteil ist die Unabhängigkeit der Agenten untereinander. Da sie nicht aufeinander angewiesen sind, ist es leicht möglich einen Agenten zu entfernen oder auszutauschen. Zu den Nachteilen gehört die Ineffizienz, die durch umfangreiches Kontrollregime entstehen kann[1]. Wenn sich zu viele Agenten im System befinden, und die Kontrolleinheit nur langsam die Informationen verarbeiten kann, dann kommt es hier zu einem Engpass, und die Lösung des Problems dauert länger. 7

8 2.2 Stigmergy Der Begriff Stigmergy wurde erstmals von dem Biologen Grassé eingeführt. Das Wort stammt aus dem griechischem und ist zusammengesetzt aus stigma (Zeichen) und ergon(arbeit). Die Kommunikation erfolgt hierbei über Veränderungen in der Umwelt. An bestimmten Stellen der Umwelt werden bestimmt Dinge verändert, und alle im System befindlichen Agenten können diese Änderung deuten und darauf reagieren. Somit dient die Umwelt als Kommunikationsmedium. Es gibt zwei unterschiedliche Arten von Stigmergy[3] qualitative Stigmergy quantitative Stigmergy Quantitative Stigmergy bedeutet, dass durch Erhöhung des Reizes auch die Erhöhung einer Reaktion darauf steigt. Ein Beispiel hierfür sind Ameisen, die auf Futtersuche gehen. Die Ameisen laufen anfangs ziellos durch die Gegend und hinterlassen dabei Pheromonspuren. Hat eine Ameise eine Futterstelle gefunden, sammelt sie etwas Futter und bringt es auf dem gleichen Weg zurück zum Nest. Dabei hinterlässt sie wieder eine Pheromonspur, wodurch die erste verstärkt wird. Treffen andere Ameisen auf diese Spur, so haben sie den Drang dieser Spur zu folgen. Da diese Spur mit der Zeit verdampft, werden die weniger benutzten Wege mit der Zeit schwächer im Geruch. So kommt es, dass sich mit der Zeit der kürzeste Weg zur Futterquelle bei allen Ameisen durchsetzt, da auf diesem Weg die Spur am deutlichsten ist. Bei qualitativer Stigmergy wird die Reaktion durch die Art der Reizung gesteuert. So ist es hier wichtig, welche Art von Pheromon ausgestoßen wird, nicht aber wie viel davon. Ein bekanntes Beispiel hierfür ist die Nestbildung der Papierwespen. In der Natur ist häufig eine Mischung beider Formen zu finden. Ein Nachteil bei Stigmergy ist sicherlich, dass es oft länger dauern kann, bis eine Veränderung bemerkt wird und somit die Reaktionszeiten langsamer ausfallen können als bei anderen Verfahren. Ein Beispiel für qualitative Stigmergy: Abbildung 3 Nest der Papierwespe [10] 8

9 3. Direkte Kommunikation Unter direkter Kommunikation versteht man, wenn sich 2 oder mehrere Agenten austauschen, ohne dabei auf andere Hilfsmittel wie z.b. ein Blackboard oder die Umwelt zurückgreifen zu müssen. 3.1 Einführung in ACLs (Agent Communication Language) Unter ACL versteht man Sprachen, die es verschiedenen Agenten ermöglichen, Wissen und Informationen auszutauschen. Damit der Austausch überhaupt möglich ist, müssen die Agenten über eine gemeinsame Sprache und evtl. ein gleiches Verständnis des Wissens verfügen. Des weiteren sollten einige Eigenschaften von den Agenten erfüllt werden, damit eine vernünftige Kommunikation zustande kommt. So sollte gewährleistet sein, das die Agenten immer die Wahrheit sagen. Auf den folgenden Seiten werde ich einige ACLs vorstellen. 3.2 FIPA (Foundation for Intelligent Physical Agents) Eine Organisation ist die FIPA. Sie wurde 1996 gegründet und macht es sich zum Ziel, Software Standards für Agenten und Agenten Systeme festzulegen[5]. Von ihr wurde die FIPA-ACL entwickelt, die auf der Theorie der Sprechakte basiert.(siehe 1.2) Sie ist vom Grundkonzept und auch von der Syntax ähnlich wie KQML, auf das später noch genauer eingegangen wird. Die Semantik ist völlig mit mathematischen Formeln definiert. Nun ein Beispiel zum Aufbau der FIPA-ACL[8]: (inform :sender :receiver :content :in-reply-to :language :ontology :protocol ) bt-agent customer-agent (Line_quote(bt_cusomer,123)300) round-4 prolog bt-auctions fipa-contract-net 3.3 KSE (Knowledge Sharing Effort) Das KSE-Projekt wurde im Jahre 1990 gestartet und ist ein Konsortium von verschiedenen Universitäten und anderen Forschungseinrichtungen. Es wird finanziert von der DARPA (Defense Advanced Research Projects Agency). Innerhalb dieses Projekts wurden verschiedene Arbeitsgruppen gebildet, die es sich zum Ziel gemacht haben, standarisierte Strukturen festzulegen, mit Hilfe derer es Möglich ist, mit großen Wissensbasen umzugehen. Eine Arbeitsgruppe des KSE ist Interlingua, die sich mit der Übersetzung verschiedener Repräsentationssprachen beschäftigt. Eine weitere ist KRSS 9

10 (Knowledge Representation System Specification), welches sich mit der Definition gemeinsamer Konstrukte von Repräsentationssprachen beschäftigt. Dann gibt es noch die External Interface Working Group, die sich die Interaktion zwischen Wissensbasen und die Entwicklung von Kommunikationsprotokollen, wie z.b. KQML (siehe 3.6 KQML) zur Aufgabe gemacht hat. Die SRKB (Shared, Reusable Knowledge Bases) kümmert sich um den Inhalt der Wissensbasen. Abbildung 4 Aufbau des KSE Die ACL des KSE besteht aus 3 verschiedenen Teilen[4] Vokabular Innere Sprache Äußere Sprache Das Vokabular, auch als Ontologie bezeichnet, ist ein großen, nicht abgeschlossenes Wörterbuch. Die innere Sprache, z.b. KIF, dient zum Wissensaustausch zwischen den Agenten Die äußere Sprache, z.b. KQML, regelt die Kommunikation zwischen den Agenten. Diese Elemente werden im Folgenden vorgestellt. 3.4 Ontologien Der Begriff Ontologie kommt aus dem Griechischen und geht auf den Philosophen Aristoteles zurück. In der Philosophie bedeutet Ontologie die Lehre vom Sein und Seienden. Eine Ontologie im technischen Sinne ist eine Spezifikation von Objekten, Konzepten und Beziehungen. Bei dem Beispiel (AND(Block A) (Block B) (On A B) repräsentiert Block ein Konzept, A und B ein Objekt und On eine Beziehung. Man schafft sich mit Hilfe dieser Beziehungen eine gemeinsame Basis für eine einheitliche Weltanschauung, indem die Gegenstände in der Welt eindeutig definiert werden.[9] Um nun selber eine Ontologie zu definieren, solle man nach [9] möglichst 4 Schritte einhalten: 10

11 1. Sammeln von Begriffen und Relationen, die wichtig zur Beschreibung der Welt sind 2. Festlegen der Struktur des Begriffes und dessen Funktion 3. Begriffe und Relationen exakt definieren, dabei redundante Begriffe entfernen 4. Fehler entfernen Es gibt auch schon viele vorgefertigte Ontologien, die man für seine Zwecke einsetzen kann. 3.5 KIF (Knowledge Interchange Format) Allgemeines KIF wurde von der Interlingua Gruppe des KSE entwickelt und stellt den Inhalt von Wissensbeständen dar. Es basiert auf dem Prädikatenkalkül der ersten Ordnung. Die Beschreibung der Sprache enthält sowohl eine Spezifikation für ihre Syntax als auch für ihre Semantik. Es ist möglich, einfache Daten, Beschränkungen, Negationen, Disjunktionen, Meta-Wissen und Regeln darzustellen. Ebenso kann man Objekte, Funktionen und Relationen definieren.[2] Es gibt eine Reihe von Objekten, die vordefiniert sind, wie z.b. die realen Zahlen [6]. Der Vorteil von KIF gegenüber anderen Sprachen wie PROLOG, die auch Wissen speichern, ist, dass KIF keinen Interpreter braucht, um Ausdrücke zu manipulieren. Des weiteren besteht die Möglichkeit Meta- Wissen darzustellen, was bei PROLOG nicht der Fall ist. Ausdrücke können in KIF in zwei verschiedenen Formen vorliegen: linear KIF und structured KIF. Bei linear KIF liegen alle Ausdrücke als Strings vor, während bei structured KIF die Ausdrücke in Form von strukturierten Objekten vorliegen. Der Vorteil beim letzteren liegt darin, dass so gespeichertes Wissen besser im Arbeitsspeicher eines Agenten verwaltet werden kann Syntax Um Fakten auszudrücken, bedient man sich in KIF folgender Schreibweise: (gesinnung bot1 freund) (gesinnung bot2 feind) Das erste Wort hierbei steht für das Fakt, welches beschrieben werden soll. Das letzte Wort beschreibt den Wert des Faktes. Dazwischen ist das Objekt beschrieben, auf das sich das Fakt bezieht, wobei das Objekt nur durch ein Wort beschrieben werden kann oder auch durch mehrere. Wichtig dabei ist, dass es eindeutig beschrieben wird. Des weiteren gibt es viele Funktionen, die einem zur Verfügung stehen. (+ 1 2) 11

12 Zu Beginn des Terms steht die Art der Funktion, die aufgerufen wird, in diesem Fall also die Addition. Danach folgen eine Reihe von Konstanten, die an die Funktion übergeben werden, wobei beliebig viele übergeben werden können. Der Rückgabewert ist in diesem Fall 3. Es ist auch möglich mehrere Funktionen ineinander zu schachteln: (> (+ (munition weapon1) (reservemunition weapon1)) (+ (munition weapon2) (reservemunition weapon2)) ) Die Funktionen werden von innen nach außen aufgelöst. Zuerst wird also die gesamte Munition von der 1. Waffe und der 2. Waffe berechnet, danach werden die vorhandenen Munitionsmengen verglichen. Der Rückgabewert ist true, wenn Weapon 1 mehr Munition hat als Weapon 2, sonst ist er false. Weitere vordefinierte Funktionen sind nachzulesen unter [7]. Es ist auch möglich Funktionen selbst zu definieren, darauf wird hier aber nicht näher eingegangen, da es den Rahmen dieser Ausarbeitung sprengen würde. Auch Folgerungen sind bei KIF möglich. (=> (and (real-number?x) (even-number?n)) (> (expt?x?n) 0) ) Wenn gilt, das x eine Zahl ist, und n eine grade Zahle, dann folgt daraus, das x potenziert mit n größer 0 ist. Eine weitere Möglichkeit von KIF sind die Fallunterscheidungen. (if (>=?x 0)?x (-?x) ) Falls die Zahl x größer oder gleich 0 ist, liefert die Funktion x zurück, andernfalls wird auf x die Minus-Funktion angewandt und dann das Ergebnis zurückgeliefert. In KIF kann man auch den Glauben oder das Interesse an bestimmten Dingen ausdrücken, was gerade für intelligente Systeme wichtig sein kann. (believes mybot (gesinnung bot1 feind)) Dies drückt aus, dass mybot glaubt, dass bot1 ein Feind ist. (interested joe (tokill,?x,?y,?z)) Dieses bedeutet, dass Joe daran interessiert ist, Tripel aus der tokill-relation zu empfangen. 12

13 Wichtig zu erwähnen ist auch, dass in KIF Prozeduren geschrieben werden können. Diese Prozeduren können andere Agenten dazu bringen, bestimmte Anweisungen auszuführen. (progn (fresh-line t) (print "Hallo") (fresh-line t) ) Dieses Stück Programmcode bringt einen Agenten dazu, Hallo zwischen zwei Zeilenvorschüben auszugeben. 3.6 KQML Allgemeines Die KQML-Gruppe wurde 1992 gegründet und ist ein Teil des KSE. KQML ist ein Protokoll für den Austausch von Informationen und Wissen und basiert auf der Sprechakttheorie. Es erlaubt beliebige Sprachen zur Darstellung des Nachrichteninhaltes und unterstützt sowohl synchrone als auch asynchrone Kommunikation. KQML hat eine Schichtenstruktur, die aus 3 Schichten besteht. Die innerste Schicht ist der Inhalt der Nachricht. Hierbei sind verschiedene Sprachen zur Darstellung des Inhalts möglich, wie z.b. KIF oder PROLOG. KQML ignoriert diese Schicht fast vollständig, es werden nur relevante Informationen zur Darstellung der Nachricht gesucht, wie das Ende des Inhalts. Die mittlere Schicht ist die Nachrichten Schicht. Sie beschreibt die Logik der Kommunikation. Hier wird die Nachricht selbst kodiert. Der Nachrichtentyp wird spezifiziert und es werden die möglichen Interaktionen bestimmt, die mit dem Agenten möglich sind. Die äußere Schicht, Kommunikationsschicht, beschreibt die Mechanik der Kommunikation. Sie enthält Daten wie Absender und Empfänger. Abbildung 5 KQML - Schichten 13

14 3.6.2 Semantik In KQML wird davon ausgegangen, dass jeder Agent eine virtuelle Wissensbasis verwaltet. Die Einträge in dieser sind unterteilt in Fakten (beliefs) und Ziele (goals). Die Fakten kodieren Informationen, die ein Agent über sich und seine Umwelt besitzt, Ziele zeigen den Zustand der Umwelt, den der Agent erreichen möchte. Die Agenten benutzen KQML, um über den Inhalt ihrer eigenen und anderen Wissensbasen zu kommunizieren.[7] Syntax Die Syntax von KQML ist Lisp-ähnlich und das Basisprotokoll ist folgendermaßen definiert: (KQML-performative :sender :receiver :language :ontology :content...) <word> <word> <word> <word> <expression> Die KQML-Performative sind festgeschriebene Ausdrücke und basieren auf den Sprechakt Performativen. Hiermit wird der Verwendungszweck der Nachricht ausgedrückt und festgelegt, welches Verhalten vom Empfänger der Nachricht erwartet wird. Man kann sie in 7 verschiedene Kategorien einteilen[2]: 1. Basis Query: (evaluate, ask-one, ask-all,...) 2. Multiresponse Query: (stream-in, stream-all, ) 3. Response: (reply, sorry, ) 4. Generic informational: (tell, achieve, cancel, untell, ) 5. Generator: (standby, ready, next, ) 6. Capability-definition: (advertise, subscribe, ) 7. Networking: (register, forward, ) Ich stelle nun 2 wichtige Performative vor: ask if: tell: Der Absender fragt, ob der Inhalt des content Feldes für den Empfänder wahr ist Der Sender teilt mit, dass der Inhalt des content Feldes in seinen Wissensbasis vorhanden ist Weitere können unter[7] nachgelesen werden. Im Schlüsselwort :content ist die eigentlich zu übermittelnde Nachricht gekapselt, die in der Sprache geschrieben ist, die in :language angegeben ist, wie z.b. KIF oder PROLOG und die Vokabeln benutzt, die in dem in :ontology angegebenen Vokabular definiert sind. 14

15 Zusätzlich zu den im Basisprotokoll beschriebenen Schlüsselwörtern, gibt es noch weitere mögliche Argumente, die zum Protokoll hinzugefügt werden können. Hier einige Beispiele: Encoding reply-to reply-by Gibt an, wie der Inhalt der Nachricht codiert wurde Gibt den Empfänger der Antwort an Deadline, bis wann der Empfänger geantwortet haben soll Eine einfache Information wird folgendermaßen weitergegeben: (inform : sender Bot1 : receiver Bot2 : language KIF : ontology Quake-World : content (AND (Feind A) (Feind B) ) ) Bot2 wird von Bot1 informiert, dass A und B Feinde sind. Betrachten wir nun ein Beispiel eines Dialogs: (ask-one : sender Melanie : receiver Sparkasse : language KIF : ontology money : content (interested melanie (money, kontonr,?money,)) ) Eine Antwort auf diese Anfrage könne so aussehen: (tell ) : sender Sparkasse : receiver Melanie : language KIF : ontogogy money : content (money kontonr 0) Es ist auch möglich, KQML Statements zu schachteln. In folgendem Beispiel kann Agent 1 Agent 2 nicht direkt erreichen, und kommuniziert über Agent 3 mit Agent 2: (tell :sender :receiver Agent1 Agent3 15

16 ) :language :ontology :content KQML KQML-Ontology (inform :sender Agent1 :receiver Agent2 :language KIF :ontology Blocks-World :content (AND (Block A) (Block B) (On A B) ) KQML ist also ein sehr flexibles Kommunikationsprotokoll, da man hierbei nicht an eine bestimmte Sprache zur Übermittlung von Wissen gebunden ist. 16

17 4. Adressaten In einem System mit vielen verschiedenen Agenten ist es wichtig sich über die unterschiedlichen Adressaten der Kommunikation klar zu werden. Es gibt 3 verschiedene Möglichkeiten der Kommunikation: Singlecast Multicast Broadcast Im Folgenden werde ich Näher auf diese Möglichkeiten eingehen und sie erklären. 4.1 Singlecast Es gibt die Möglichkeit einer one to one communication. Hierbei spricht ein Agent genau einen anderen an. Ein weiterer Fall ist die many to one communication, bei der eine Gruppe von Agenten einem einzelnen eine Nachricht schickt. Dieser muss evtl. die empfangenen Nachrichten dann noch in die richtige Reihenfolge bringen. Besteht in diesem Fall die Gruppe aus allen Agenten des Systems, so war dies eine all to one communication. Anders ausgedrückt wird bei Singlecast ein Agent direkt adressiert. 4.2 Multicast Von einer one to many communication spicht man, wenn ein Agent eine Gruppe von anderen Agenten anspricht. Es kann auch eine Gruppe von Agenten eine andere Gruppe ansprechen, das nennt man dann many to many communication. Wenn alle Agenten an eine bestimmte Gruppe eine Nachricht versenden, so heißt das all to many communication. Bei Multicast wird also immer eine bestimmte Empfängergruppe angesprochen, die an einer bestimmten Adresse den Kanal abhören 4.3 Broadcast Spricht ein Agent alle anderen Agenten im System an, so nennt man das auch one to all communication. Auch hier besteht wieder die Möglichkeit, das nicht nur einer alle anspricht, sondern auch eine Gruppe von Agenten allen anderen eine Nachricht zukommen lässt, many to all communication, oder alle Agenten an alle Nachrichten schicken, all to all communication. In diesen Fällen spricht man von Broadcast. Es werden also alle Agenten im System angesprochen, die den Kommunikationskanal abhören. 17

18 4.4 Vor und Nachteile Broadcast ist für die Agenten die einfachste Möglichkeit zu kommunizieren, da sie dabei die Adresse des Kommunikationspartner nicht kennen müssen. Allerdings ist in diesem Verfahren auch die Auslastung des Kommunikationskanals am größten, da jeder alle Nachrichten bekommt. Außerdem müssen die Agenten hierbei die für sie relevanten Nachrichten selber herausfiltern. Der Vorteil von Singlecast liegt darin, dass jeder Agent sicher sein kann, dass die bekommene Information auch wirklich für ihn gedacht ist, will man allerdings per Singlecast mehreren Agenten die gleiche Nachricht schicken, bedeutet das mehr Zeitaufwand die Nachricht jedes Mal wieder an nur einen zu schicken. Multicast ist also ein guter Mittelweg, da hierbei nur bestimmte Gruppen adressiert werden und es auch nicht ausgeschlossen ist, dass Agenten zu mehreren Gruppen gehören. Ein Beispiel, wo Multicast angewendet werden kann, und das sich auch auf die Aufgabe unserer Projektgruppe bezieht, ist die Modellierung eines Spiels, in dem 2 Mannschaften von Agenten gegeneinander antreten, wobei jede Mannschaft über ein Headset die Möglichkeit zur Kommunikation besitzt. Da man nicht möchte, dass die gegnerische Gruppe die eigenen Pläne mitbekommt, schickt man die Nachricht nur an Mitglieder der eigenen Gruppe. Diese kann man dann falls nötig noch mal in Untergruppen wie Angreifer und Verteidiger unterteilen, so dass man noch mal exakter mit den gewünschten Gruppenmitgliedern kommunizieren kann. 4.5 Reichweite Manchmal ist es auch sinnvoll, die Adressatengruppe daraufhin zu beschränken, in welcher Entfernung sich die Agenten zueinander befinden. So erreicht man mittels globaler Kommunikation alle Agenten im System, sei es durch Broad-, Multi-, oder Singlecast, während man bei der lokalen Kommunikation nur eine bestimmte Gruppe von Agenten erreichen kann, die sich in der Umgebung befinden, wobei die Umgebung noch definiert werden muss. So ist es je nach System sinnvoll einen lokalen Broadcast durchzuführen oder die nächsten x Nachbarn mit in die Kommunikation einzubeziehen. Ersteres ist sinnvoll, wenn z.b. möglichst real ein Haus modelliert wurde, in dem sich verschiedene Personen (Agenten) in verschiedenen Räumen befinden. Hier ist es zweckmäßig einen lokalen Broadcast durchzuführen, wenn eine Person etwas mitzuteilen hat, da alle im Raum anwesenden verstehen was gesagt wird, aber alle nicht im Raum befindlichen Personen das auch im realen Leben nicht verstehen können. Nur die nächsten x Nachbarn zu informieren macht dann Sinn, wenn z.b. die Kommunikation darin besteht eine vorgegebene Anzahl wie z.b. 3 Agenten für seine eigene Gruppe zu rekrutieren und am eigenen Standort zu versammeln. Bei diesem Beispiel ist es am besten, wenn man an die nächsten 3 Agenten eine Nachricht schickt mit der Aufforderung herzukommen. 18

19 5. Bezug zur Projektgruppe KIMAS Innerhalb der Projektgruppe besteht die Aufgabe, ein Multiagenten System zu entwickeln, in dem die Agenten ein Gebäude errichten, und Capture the Flag spielen, wobei auch die Umgebung kartographiert werden soll. Dabei ist es unerlässlich, dass die Agenten untereinander kommunizieren. So können sie sich beim Gebäudebau und innerhalb der eigenen Mannschaft beim Erobern der Flagge koordinieren. Zuerst muss entschieden werden, ob unsere Agenten auf direktem oder indirektem Wege miteinander kommunizieren sollen, wobei meiner Meinung nach bei der indirekten Kommunikation nur das Blackboard in Frage kommt, da Stigmergy für Capture the flag in einigen Fällen zu langsam sein kann, d.h. es kann möglich sein, dass nicht alle Agenten sofort auf eine wichtige Situation reagieren. So bleibt also von der indirekten Kommunikation noch das Blackboard Modell, wobei dabei entschieden werden muss, welche Struktur das Modell genau haben soll. Der Erfolg des Blackboard Modells hängt meiner Meinung nach von der Qualität der Kontrolleinheit ab, da diese die Informationen verwaltet. Wird die direkte Kommunikation gewählt, so muss man sich für eines der Kommunikationsprotokolle entscheiden. Würden wir hier mit KQML arbeiten, so müssen wir noch eine Sprache zum Wissensaustausch wählen. Hierbei kommen unter anderem PROLOG und KIF in Frage. KIF hat den Vorteil, dass wir Prozeduren schreiben können, und auch Glauben ausdrücken können, was in PROLOG nicht der Fall ist. Dann müssen wir uns auf ein Vokabular einigen, was alle Agenten im System verstehen und zuletzt ist noch wichtig, sich über die Reichweite und die Adressaten der Kommunikation klar zu werden. Es würde sich eine globale Reichweite für den Wissensaustausch anbieten, da die Agenten im realen Leben wahrscheinlich auch mit Funkgeräten o.ä. ausgestattet wären. Da bei Capture the Flag 2 Gruppen existieren ist es sinnvoll keinen Broadcast durchzuführen, da sonst auch die gegnerische Mannschaft an die eigenen Informationen kommen könnte. Also besteht hier die Möglichkeit für Multicast. 19

20 6. Quellenverzeichnis [1] Jaques Ferber: Multiagenten-Systeme, Eine Einführung in die Verteilte künstliche Ingelligenz, Addison Wesley, 1997 [2] Gerhard Weiss: Multiagent Systems - A Modern Approach to Distributed Artificial Intelligence, 1999 Massachusetts Institute of Technology [3] Andreas Goebels: Strukturbildung durch koordinierte und evolutionäre Partikelschwärme [4] Prof. U. Borghoff: Vorlesung Verteiltes Informationsmanagement [5] FIPA Homepage [6] Spezifikation von KIF [7] Spezifikation von KQML [8] Beispiel zu FIPA-ACL Kommunikation.pdf [9] Definition Ontologie [10] Abbildung des Nestes der Papierwespe 20

Melanie Kirchner

Melanie Kirchner Projektgruppe KIMAS Kommunikation in MAS 10.09.2003 Melanie Kirchner Projektgruppe KIMAS - Kommunikation in MAS 1/34 Übersicht Motivation Grundlagen Indirekte Kommunikation Direkte Kommunikation Adressaten

Mehr

Multiagentensysteme MAS

Multiagentensysteme MAS Seminar Agenten und Robotfußball Sommersemester 2003 Multiagentensysteme MAS Grundlagen und Begriffsbildung Thorsten Wilmes Linnebornstiege 2 48155 Münster wilmest@web.de Matr.-Nr.: 275298 Inhaltsverzeichnis

Mehr

COMMUNICATION AND COOPERATION COMMUNICATION SEMINAR: AGENTENSYSTEME Kim-Anh Tran Christian Urban

COMMUNICATION AND COOPERATION COMMUNICATION SEMINAR: AGENTENSYSTEME Kim-Anh Tran Christian Urban COMMUNICATION AND COOPERATION COMMUNICATION SEMINAR: AGENTENSYSTEME 25.05.2010 Kim-Anh Tran Christian Urban GLIEDERUNG Einführung Sprechakttheorie Agenten-Kommunikations-Sprachen Fragen Diskussion Mind

Mehr

KogSys Reading Club SS 2010

KogSys Reading Club SS 2010 KogSys Reading Club SS 2010 Grundlagen der Kommunikation unter Robotern Martin Sticht Sinn und Zweck Warum Kommunikation von Agenten? Kommunikation von Robotern/Agenten unterstützen das Lösen gemeinsamer

Mehr

Spezifikation von Handlungen von Agenten

Spezifikation von Handlungen von Agenten Spezifikation von Handlungen von Agenten dargestellt am Beispiel der Sprache LORA aus M. Wooldridge: Reasoning about Rational Agents Vortrag im Projektseminar Logiken für Multiagentensysteme Im WS 2003/04

Mehr

Aussagenlogik. 1 Einführung. Inhaltsverzeichnis. Zusammenfassung

Aussagenlogik. 1 Einführung. Inhaltsverzeichnis. Zusammenfassung Tobias Krähling email: Homepage: 13.10.2012 Version 1.2 Zusammenfassung Die Aussagenlogik ist sicherlich ein grundlegendes mathematisches Gerüst für weitere

Mehr

Ontologiesprachen. 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic

Ontologiesprachen. 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic Ontologiesprachen 1.Was ist eine Ontologie 2.Aufbau einer Ontologie 3.RDF 4.RDFSchema 5.DAML+OIL / OWL 6.Frame-Logic 1.Was ist eine Ontologie Der Begriff leitet sich vom griechischen onta (das Seiende)

Mehr

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was 1 In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was die wichtigsten Konzepte sind. Den Themenbereich XML

Mehr

/26

/26 7 8 3 3 7 2 8 2 8. /2 Sudoku 2 2 3 3 7 7 8 8 8 Füllen Sie die leeren Felder so aus, dass in jeder Zeile, in jeder Spalte und in jedem 3x3 Kästchen alle Zahlen von bis stehen.. 2/2 Warum? 7 8 3 3 7 2 8

Mehr

Künstliche Intelligenz Logische Agenten & Resolution

Künstliche Intelligenz Logische Agenten & Resolution Künstliche Intelligenz Logische Agenten & Resolution Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Inferenz-Algorithmus Wie könnte ein

Mehr

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 -

Programmiersprachen: Klassifizierung und Methoden. Programmier-Paradigmen. Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Klassifizierung und Methoden Programmier-Paradigmen Grundlagen der Programmierung 2 (1.C) - 1 - Programmiersprachen: Begriffe Syntax Beschreibung der Programme als Texte let xyz =

Mehr

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks Eine Untersuchung der Funktionen des Apache Wicket Webframeworks Seminararbeit von Olaf Matticzk 1 15.01.2016 (c) by synaix 2016 synaix...your business as a service. Agenda 1. Einleitung 2. Webanwendungen

Mehr

Systemarchitektur. Das Eisenbahnsystem. Theoretische Grundlagen zum Seminar im Grundstudium Sprachgesteuerte Geräte (Modelleisenbahn) Alexander Huber

Systemarchitektur. Das Eisenbahnsystem. Theoretische Grundlagen zum Seminar im Grundstudium Sprachgesteuerte Geräte (Modelleisenbahn) Alexander Huber Systemarchitektur Theoretische Grundlagen zum Seminar im Grundstudium Sprachgesteuerte Geräte (Modelleisenbahn) Alexander Huber 1 Das Eisenbahnsystem 2 1 Was ist ein Agent? Carl Hewitt, DAI-Workshop 1994:

Mehr

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016 HM I Tutorium 1 Lucas Kunz 27. Oktober 2016 Inhaltsverzeichnis 1 Theorie 2 1.1 Logische Verknüpfungen............................ 2 1.2 Quantoren.................................... 3 1.3 Mengen und ihre

Mehr

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 2 Mathematische Grundlagen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität

Mehr

Logic in a Nutshell. Christian Liguda

Logic in a Nutshell. Christian Liguda Logic in a Nutshell Christian Liguda Quelle: Kastens, Uwe und Büning, Hans K., Modellierung: Grundlagen und formale Methoden, 2009, Carl Hanser Verlag Übersicht Logik - Allgemein Aussagenlogik Modellierung

Mehr

An Overview of the Signal Clock Calculus

An Overview of the Signal Clock Calculus An Overview of the Signal Clock Calculus, Jennifer Möwert Inhaltsverzeichnis Synchrone Programmiersprachen Clock Calculus Synchrone Paradigmen SLTS Clocks SIGNAL Definitionen Endochrony Bäume, Jennifer

Mehr

Sudoku. Warum 6? Warum 6?

Sudoku. Warum 6? Warum 6? . / Sudoku Füllen Sie die leeren Felder so aus, dass in jeder Zeile, in jeder Spalte und in jedem x Kästchen alle Zahlen von bis stehen.. / Warum?. / Warum?. / Geschichte der Logik Syllogismen (I) Beginn

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

5. Grundlagen der Agentenkommunikation. Sozialer Agent. Drei Aspekte: Syntax, Semantik und Pragmatik. Agenten-Kommunikation

5. Grundlagen der Agentenkommunikation. Sozialer Agent. Drei Aspekte: Syntax, Semantik und Pragmatik. Agenten-Kommunikation 5. Grundlagen der Agentenkommunikation Sozialer Agent Kooperation Koordination Wettbewerb Interagiert mit anderen Agenten Kann in einer ACL kommunizieren Besitzt Repräsentation anderer Agenten, um so zukünftige

Mehr

Mathematische und logische Grundlagen der Linguistik. Kapitel 3: Grundbegriffe der Aussagenlogik

Mathematische und logische Grundlagen der Linguistik. Kapitel 3: Grundbegriffe der Aussagenlogik Mathematische und logische Grundlagen der Linguistik Kapitel 3: Grundbegriffe der Aussagenlogik Grundbegriffe der Aussagenlogik 1 Die Aussagenlogik ist ein Zweig der formalen Logik, der die Beziehungen

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Mathematische und logische Grundlagen der Linguistik. Mathematische und logische Grundlagen der Linguistik. Karl Heinz Wagner. Hier Titel eingeben 1

Mathematische und logische Grundlagen der Linguistik. Mathematische und logische Grundlagen der Linguistik. Karl Heinz Wagner. Hier Titel eingeben 1 Grundbegriffe der Aussagenlogik 1 Mathematische und logische Grundlagen der Linguistik Kapitel 3: Grundbegriffe der Aussagenlogik Die Aussagenlogik ist ein Zweig der formalen Logik, der die Beziehungen

Mehr

Abschnitt 3: Mathematische Grundlagen

Abschnitt 3: Mathematische Grundlagen Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 48 / 155 Überblick

Mehr

Abschnitt 3: Mathematische Grundlagen

Abschnitt 3: Mathematische Grundlagen Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 Mengen und Abbildungen 3.2 Induktion und Rekursion 3.3 Ausdrücke 3 Mathematische Grundlagen Einf. Progr. (WS 08/09) 102 Überblick 3.

Mehr

(Ausnahmebehandlung)

(Ausnahmebehandlung) 16. Exceptions (Ausnahmebehandlung) 16-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 16: Exceptions (Ausnahmebehandlung) Motivation Throw und Catch 16. Exceptions (Ausnahmebehandlung) 16-2

Mehr

Projektbericht Agententechnologie

Projektbericht Agententechnologie Projektbericht Agententechnologie Projekt Realisierung verteilter Agentensysteme im SoSe 2003 von Christian Poulter Inhaltsübersicht: 1. Einleitung 2. Projektziel / Szenario 3. Aufgaben des Marktagenten

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Institut für Informatik Prof. Dr. Bernhard Bauer Stephan Roser Viviane Schöbel Aufgabe 1: Wintersemester 07/08 Übungsblatt 6 15.01.08 Grundlagen verteilter Systeme Lösungsvorschlag

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Es können ganze Programmteile aufgenommen werden. Mithilfe von Funktionen kann man denselben

Mehr

Programme erstellen in Java

Programme erstellen in Java Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr

Programmsteuerung mit PHP - if/else, elseif,switch

Programmsteuerung mit PHP - if/else, elseif,switch Programmsteuerung mit PHP - if/else, elseif,switch Bei der Programmierung geht es meist vor allem darum festzulegen, welche Aktionen wie oft unter welchen Bedingungen ausgeführt werden sollen. Hierzu steht

Mehr

Intelligente Agenten

Intelligente Agenten Intelligente Agenten Melanie Kruse 22.06.2004 Seminar Komponentenorientierte Softwareentwicklung und Hypermedia FH Dortmund SS 2004 Was sind Agenten? Agentenforscher diskutieren seit längerem: jedoch keine

Mehr

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie Was ist Logik? Geschichte der Logik eng verknüpft mit Philosophie Begriff Logik wird im Alltag vielseitig verwendet Logik untersucht, wie man aus Aussagen andere Aussagen ableiten kann Beschränkung auf

Mehr

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................

Mehr

Kommunikation. 18.Juni 2009 Ingwar Peterson Guido Mörs. 18. Juni 2009 Kommunikation 1

Kommunikation. 18.Juni 2009 Ingwar Peterson Guido Mörs. 18. Juni 2009 Kommunikation 1 Kommunikation 18.Juni 2009 Ingwar Peterson Guido Mörs 18. Juni 2009 Kommunikation 1 Lost Update Agent 1 Agent 2 lesen lesen Variable 18. Juni 2009 Kommunikation 2 Lost Update Agent 1 Agent 2 (arbeitet

Mehr

Aussagenlogik. Aussagen und Aussagenverknüpfungen

Aussagenlogik. Aussagen und Aussagenverknüpfungen Aussagenlogik Aussagen und Aussagenverknüpfungen Aussagen sind Sätze, von denen sich sinnvollerweise sagen läßt, sie seien wahr oder falsch. Jede Aussage besitzt also einen von zwei möglichen Wahrheitswerten,

Mehr

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München

Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;

Mehr

Informatik I Information & Daten Repräsentation von Daten

Informatik I Information & Daten Repräsentation von Daten Informatik I Information & Daten Repräsentation von Daten G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Daten & Informationen Menschen sind an Informationen interessiert Computer verarbeiten

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Modellierung von Wissen

Modellierung von Wissen Martin LMU 9. Mai 2011 Schmutzige Kinder Eine Anzahl Kinder, manche haben eine schmutzige Stirn vom Spielen, manche nicht. Kein Kind kann seine eigene Stirn sehen und auch nicht befühlen. Kann ein Kind

Mehr

Interpreter - Gliederung

Interpreter - Gliederung Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache

Mehr

Spezifikation von Kommunikationssystemen

Spezifikation von Kommunikationssystemen 1 / 22 Spezifikation von Kommunikationssystemen 6. Basiskonstrukte von SDL Prof. Jochen Seitz Fachgebiet Kommunikationsnetze 3. Mai 2018 2 / 22 Übersicht 1 Darstellung eines Prozesses 2 Zeit in SDL 3 Variablen

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

1.1 Motivation. Theorie der Informatik. Theorie der Informatik. 1.1 Motivation. 1.2 Syntax. 1.3 Semantik. 1.4 Formeleigenschaften. 1.

1.1 Motivation. Theorie der Informatik. Theorie der Informatik. 1.1 Motivation. 1.2 Syntax. 1.3 Semantik. 1.4 Formeleigenschaften. 1. Theorie der Informatik 19. Februar 2014 1. Aussagenlogik I Theorie der Informatik 1. Aussagenlogik I Malte Helmert Gabriele Röger Universität Basel 19. Februar 2014 1.1 Motivation 1.2 Syntax 1.3 Semantik

Mehr

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt.

Aufgabe 1: Interprozesskommunikation In der Vorlesung wurden zentrale Aspekte von grundlegenden Kommunikationsmustern vorgestellt. Sommersemester 211 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 11 vom 2.6.211 bis 24.6.211 Aufgabe 1: Interprozesskommunikation In der Vorlesung

Mehr

Verifizierende Testverfahren

Verifizierende Testverfahren Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK Prädikatenlogik als Universalsprache Die Entwicklung der Logik hat ein zentrales Motiv: Logik als eine universelle, präzise Sprache THEORETISCHE INFORMATIK UND LOGIK 15. Vorlesung: Logisches Schließen

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Übersicht. Prädikatenlogik höherer Stufe. Syntax der Prädikatenlogik 1. Stufe (mit Gleichheit)

Übersicht. Prädikatenlogik höherer Stufe. Syntax der Prädikatenlogik 1. Stufe (mit Gleichheit) Übersicht I Künstliche Intelligenz II Problemlösen III Wissen und Schlussfolgern 7. Logische Agenten 8. Prädikatenlogik 1. Stufe 9. Schließen in der Prädikatenlogik 1. Stufe 10. Wissensrepräsentation IV

Mehr

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.

Mehr

Funk - Was ist das überhaupt?

Funk - Was ist das überhaupt? Funk - Was ist das überhaupt? Mit Hilfe von Funk können Geräte auch ohne Kabel miteinander kommunizieren. So auch der! Er kann zum Beispiel Zahlen oder Texte an einen anderen verschicken. Fragt eure Betreuer

Mehr

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Kapitel 1 Parallele Modelle Wie rechnet man parallel? PRAM- PRAM- DAG- R UND R Coles und Kapitel 1 Wie rechnet man parallel? Vorlesung Theorie Paralleler und Verteilter Systeme vom 11. April 2008 der Das DAG- Das PRAM- Das werkmodell Institut für Theoretische

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik Syntax & Semantik. Motivation. Motivation

Motivation. Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik Syntax & Semantik. Motivation. Motivation Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik & Frank Heitmann heitmann@informatik.uni-hamburg.de Mit der Aussagenlogik lassen sich einfache Verknüpfungen zwischen (atomaren) Gebilden ausdrücken

Mehr

b. Lehre des vernünftigen Schlussfolgerns (1. System von Regeln von Aristoteles ( v. Chr.); sprachliche Argumente

b. Lehre des vernünftigen Schlussfolgerns (1. System von Regeln von Aristoteles ( v. Chr.); sprachliche Argumente II. Zur Logik 1. Bemerkungen zur Logik a. Logisches Gebäude der Mathematik: wenige Axiome (sich nicht widersprechende Aussagen) bilden die Grundlage; darauf aufbauend Lehrsätze unter Berücksichtigung der

Mehr

Simulation als epistemologische Grundlage für intelligente Roboter

Simulation als epistemologische Grundlage für intelligente Roboter 1 Simulation als epistemologische Grundlage für intelligente Roboter Andreas Tolk The MITRE Corporation Umut Durak Deutsches Zentrum für Luft- und Raumfahrt e.v. (DLR) Public Release No. 17-0085 2017 The

Mehr

Zeit als Mittel der Reihenfolgebestimmung

Zeit als Mittel der Reihenfolgebestimmung Uhrensynchronisation Notwendigkeit von Uhrensynchronisation Zeit als Mittel der Reihenfolgebestimmung Probleme der Uhrensynchronisation Lamport Vektorduhren Synchronisation von physikalischen Uhren Grundlagen

Mehr

Vorkurs Mathematik. Prof. Udo Hebisch WS 2017/18

Vorkurs Mathematik. Prof. Udo Hebisch WS 2017/18 Vorkurs Mathematik Prof. Udo Hebisch WS 2017/18 1 1 Logik 2 1 Logik Unter einer Aussage versteht man in der Mathematik einen in einer natürlichen oder formalen Sprache formulierten Satz, für den eindeutig

Mehr

Grundlagen der Logik

Grundlagen der Logik Grundlagen der Logik Denken Menschen logisch? Selektionsaufgabe nach Watson (1966): Gegeben sind vier Karten von denen jede auf der einen Seite mit einem Buchstaben, auf der anderen Seite mit einer Zahl

Mehr

qfix ASCII-Protokoll

qfix ASCII-Protokoll www.qfix.de qfix ASCII-Protokoll Referenz qfix Dokument Nr. D100502R1 Inhaltsverzeichnis 1 Einleitung 3 1.1 Referenz................................... 3 2 qfix ASCII Protokoll 4 2.1 Verbindung und Zeichensatz.........................

Mehr

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Logische Agenten Claes Neuefeind Sprachliche Informationsverarbeitung Universität zu Köln 02. November 2011 Logische Agenten Wissensbasierte Agenten Eine Modellwelt Aussagen Logik

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

10.4 Konstante Objekte

10.4 Konstante Objekte 10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären

Mehr

Kapitel 1: Informationsverarbeitung durch Programme

Kapitel 1: Informationsverarbeitung durch Programme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2009 Kapitel 1: Informationsverarbeitung

Mehr

Interdisziplinäre fachdidaktische Übung: Sprache und Modelle. SS 2015: Grossmann, Jenko

Interdisziplinäre fachdidaktische Übung: Sprache und Modelle. SS 2015: Grossmann, Jenko Interdisziplinäre fachdidaktische Übung: Sprache und Modelle SS 2015: Grossmann, Jenko Einleitung Was ist ein Modell? Sprachlich orientierte Modelle Beispiele Wie entstehen Modelle? Zusammenhang Modell

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Klausur zu Mathematische Grundlagen BachelorStudiengänge der Informatik

Klausur zu Mathematische Grundlagen BachelorStudiengänge der Informatik Klausur zu Mathematische Grundlagen BachelorStudiengänge der Informatik SS 2016, 16.07.2016 Prof. Dr. Hans-Jürgen Steens Name: Vorname: Matrikelnummer: Die Klausur besteht aus 23 Aufgaben. Es sind maximal

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Logik in der Informatik Was ist Logik? 2 Logik in der Informatik Was ist Logik? Mathematisch? 3 Logik in der Informatik

Mehr

14 Zuweisungen und Zustand

14 Zuweisungen und Zustand 14 Zuweisungen und Zustand Bisher: funktionale / wertorientierte Programmierung (let ((new-set (set-insert old-set new-element)))... new-set... old-set...) alte und neue Version sind gleichzeitig verfügbar

Mehr

Fireboard Kommunikationsmodul

Fireboard Kommunikationsmodul Handbuch Fireboard Kommunikationsmodul Nutzungshinweise zum Fireboard Kommunikationsmodul www.fireboard.net Fireboard GmbH Fireboard Version 2.9.16 03.01.2016 Inhaltsverzeichnis 1 Einleitung... 3 2 Das

Mehr

Moderne Methoden der KI

Moderne Methoden der KI Moderne Methoden der KI Prof. Dr. sc. Hans-Dieter Burkhard Vorlesung Multi-Agenten-Systeme (MAS) MAS vs. Verteiltes Problemlösen Verteiltes Problemlösen: Gemeinsame Arbeit von Agenten an einem Problem

Mehr

Mathem.Grundlagen der Computerlinguistik I, WS 2004/05, H. Leiß 1

Mathem.Grundlagen der Computerlinguistik I, WS 2004/05, H. Leiß 1 Mathem.Grundlagen der Computerlinguistik I, WS 2004/05, H. Leiß 1 1 Vorbemerkungen Mathematische Begriffe und Argumentationsweisen sind in vielen Fällen nötig, wo man über abstrakte Objekte sprechen und

Mehr

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen

Einführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden

Mehr

Mathematik für Informatiker I

Mathematik für Informatiker I Mathematik für Informatiker I Mitschrift zur Vorlesung vom 19.10.2004 In diesem Kurs geht es um Mathematik und um Informatik. Es gibt sehr verschiedene Definitionen, aber für mich ist Mathematik die Wissenschaft

Mehr

3 Properties, Bindings und JavaFX-Collections

3 Properties, Bindings und JavaFX-Collections Properties, Bindings und JavaFX Collections 31 3 Properties, Bindings und JavaFX-Collections Dieses Kapitel beschäftigt sich mit wichtigem Basiswissen für das Verständnis der JavaFX Elemente. Nachdem wieder

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Sommersemester 2012 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck Lehrstuhl Software

Mehr

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.

Unterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht. Name Klasse Datum 1 Allgemeines Programme werden üblicherweise nicht als ein einziger, fortlaufender Programmcode verfasst, sondern mit geeigneten Mitteln unterteilt und somit strukturiert. Die Methodik

Mehr

Guten Abend! Wie geht es Euch?

Guten Abend! Wie geht es Euch? Guten Abend! Wie geht es Euch? Guten Abend! Wie geht es Dir? Kommunikationsmodelle. Ziel dabei ist es, die Zusammenhänge, Ebenen und Prozesse der Kommunikation möglichst einfach und in kleinerem Rahmen

Mehr

Tag 3. Funktionen. Num erfüllen, haben wir... ja, was nun eigentlich? Bei

Tag 3. Funktionen. Num erfüllen, haben wir... ja, was nun eigentlich? Bei Tag 3 Funktionen Heute werden wir den wichtigsten Typ (oder die wichtigste Klasse von Typen) in Haskell überhaupt genau unter die Lupe nehmen: Funktionen, die wir ansatzweise schon am letzten Tag kennengelernt

Mehr

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS

Mehr

1 Erste Schritte in Scheme

1 Erste Schritte in Scheme 1 Erste Schritte in Scheme Die Programmiersprache Scheme geboren 1975 Eltern: Gerald Jay Sussman and Guy Lewis Steele Jr. Ort: Massachusetts Institute of Technology aktuelle Beschreibung: R6RS (September

Mehr

Grundkurs Mathematik I

Grundkurs Mathematik I Prof. Dr. H. Brenner Osnabrück WS 2016/2017 Grundkurs Mathematik I Vorlesung 9 In theory, theory and praxis are the same, in praxis they aren t Die Multiplikation auf den natürlichen Zahlen Zur Definition

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

Mehr

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März

Mehr

Mehrsortige Strukturen

Mehrsortige Strukturen Was bisher geschah Modellierung von Daten durch Mengen (Individuenbereiche), häufig zusammengesetzt durch Mengenoperationen, Zusammenhängen zwischen Individuen durch Relationen (auch Eigenschaften) Funktionen

Mehr

... die Funktion Ñ Ò µ einer Klasse ÂÚÑ:

... die Funktion Ñ Ò µ einer Klasse ÂÚÑ: In der Klasse À Ø wird die Objekt-Methode Ø µ neu definiert. Achtung bei ËÙ mit der Reihenfolge der Argumente!... die Funktion Ñ Ò µ einer Klasse ÂÚÑ: ÔÙ Ø Ø ÚÓ Ñ Ò ËØÖ Ò Ö µ ß ÁÒ ØÖÙØ ÓÒ Ó Ø Ó µ ÁÒ ØÖÙØ

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 1. Aussagenlogik I Malte Helmert Gabriele Röger Universität Basel 19. Februar 2014 Motivation Aufgabe von letzter Vorlesungsstunde Worin besteht das Geheimnis Ihres langen Lebens?

Mehr

Da ist zunächst der Begriff der Menge.

Da ist zunächst der Begriff der Menge. 1 In diesem Abschnitt werden wir uns mit den theoretischen Grundlagen der relationalen Datenbanken beschäftigen. Hierzu werden wir uns die wichtigsten Konzepte, Ideen und Begriffe näher ansehen, damit

Mehr

Programmieren 1 C Überblick

Programmieren 1 C Überblick Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr

KEY AGREEMENT IN DYNAMIC PEER GROUPS

KEY AGREEMENT IN DYNAMIC PEER GROUPS KEY AGREEMENT IN DYNAMIC PEER GROUPS Seminar Kryptographische Protokolle SS 2009 Motivation Gruppenorientierte Anwendungen, Protokolle und Kommunikation treten in vielen Umgebungen auf: Netzwerk-Schicht:

Mehr

Ontologien und Ontologiesprachen

Ontologien und Ontologiesprachen Ontologien und Ontologiesprachen Semantische Datenintegration SoSe2005 Uni Bremen Yu Zhao Gliederung 1. Was ist Ontologie 2. Anwendungsgebiete 3. Ontologiesprachen 4. Entwicklung von Ontologien 5. Zusammenfassung

Mehr

2.4 Hash-Prüfsummen Hash-Funktion message digest Fingerprint kollisionsfrei Einweg-Funktion

2.4 Hash-Prüfsummen Hash-Funktion message digest Fingerprint kollisionsfrei Einweg-Funktion 2.4 Hash-Prüfsummen Mit einer Hash-Funktion wird von einer Nachricht eine Prüfsumme (Hash-Wert oder message digest) erstellt. Diese Prüfsumme besitzt immer die gleiche Länge unabhängig von der Länge der

Mehr

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik

Grundbegriffe aus Logik und Mengenlehre. Prädikatenlogik Grundbegriffe aus Logik und Mengenlehre Prädikatenlogik wohlverstandene Grundlagen, eine formale Sprache zur Beschreibung statischer und dynamischer Gesichtspunkte eines Unternehmens syntaktisch und semantisch

Mehr

Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein

Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein Ereignisse (Events) Asynchrones Versenden von Informationen Sender (Herausgeber) Empfänger (Abonnent) Dr. Beatrice Amrhein Überblick Definition eines Ereignisses Sender und Empfänger Einfache Ereignisse

Mehr

15 Zuweisungen und Zustand

15 Zuweisungen und Zustand 15 Zuweisungen und Zustand Bisher: funktionale / wertorientierte Programmierung (let ((new-set (set-insert old-set new-element)))... new-set... old-set...) alte und neue Version sind gleichzeitig verfügbar

Mehr

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen

Mehr