Towards Building Blocks for Agent-Oriented Programming Standardizing Interpreters, Environments and Tools
Total Page:16
File Type:pdf, Size:1020Kb
Towards Building Blocks for Agent-Oriented Programming Standardizing Interpreters, Environments and Tools Doctoral Thesis (Dissertation) to be awarded the degree of Doctor rerum naturalium (Dr. rer. nat) submitted by Tristan Behrens from Osterode am Harz approved by Faculty of Mathematics/Computer Science and Mechanical Engineering Clausthal University of Technology Date of oral examination: February 1st 2012 Chief reviewer: Prof. Dr. rer. nat. habil. J¨urgenDix Reviewer: Prof. Dr. rer. nat. J¨org P. M¨uller External reviewer: Prof. Dr. Cees Witteveen 2 \Das Bedenklichste ist, dass wir noch nicht denken; immer noch nicht, ob- gleich der Weltzustand fortgesetzt bedenklicher wird. Dieser Vorgang scheint freilich eher zu fordern, dass der Mensch handelt und zwar ohne Verzug, statt in Konferenzen und auf Kongressen zu reden und sich im bloßen Vorstellen dessen zu bewegen, was sein sollte und wie es gemacht werden m¨usste.Somit fehlt es am Handeln und keineswegs am Denken." Martin Heidegger, Was heißt Denken? 5 Abstract The main concern of this thesis is multi-agent programming, which is preoccupied with the question how to practically distribute intelligence?, and thus belongs to the artificial intelligence branch of computer science. To be more precise, the focus of this thesis lies on BDI-based multi-agent programming. This means programming agents that have mental states (beliefs, desires and intentions) and capabilities (deliberation and means- end reasoning): A situation that resembles human cognition on an abstract level. We contribute to two aspects arising in this research field. The first one is the idea of using standardization in order to support modularity and reusability. That is, identifying components that can be extracted, shared and reused. The second one is heterogeneity: Establishing multi-agent systems that are populated by agents which are implemented by means of different programming paradigms. That is, a state of affairs which is built up in order to exploit complementary functionalities and capabilities, while sharing a single environment. The main contributions of this thesis are (standardized) interfaces for interpreters, environments and tools. Interpreters are considered to encapsulate individual agents as objects and schedule/facilitate their evolution. Environments represent an external state and define how agents connect to and access sensory and effectoric capabilities for querying and updating that state. Tools are considered to be pieces of software that are capable of querying and evaluating both the internal state of agents and of environments in order to fulfill a distinct and useful purpose. This thesis contains a formalization that reflects our approach, followed by several practical applications of the very formalization. 7 Zusammenfassung Das Hauptinteresse dieser Arbeit, die sich mit der Frage Wie verteilt man Intelligenz? auseinander setzt, gilt der Entwicklung von Multiagentensystemen. Damit befindet man sich in der Informatik im Zweig der K¨unstlichen Intelligenz. Genauer gesagt liegt das Hauptaugenmerk dieser Arbeit auf der BDI-basierten Entwicklung von Multiagenten- systemen. Dort werden Agenten programmiert, die sich durch einen mentalen Zus- tand (beliefs, desires, intentions) und mentale F¨ahigkeiten (deliberation und means- end-reasoning) auszeichnen, wobei beides den menschlichen Geistesf¨ahigkeiten auf einer abstrakten Ebene ¨ahnelt. Es wird ein Beitrag zu zwei wichtigen Kernfragen des erw¨ahnten Forschungsbereiches geleistet. Die erste betrifft die Idee der Standardisierung zur F¨orderung von Modu- larit¨atund Wiederverwendbarkeit. Dies wird interpretiert als die Identifikation von Komponenten die extrahiert, geteilt und wiederverwendet werden k¨onnen. Die zweite Kernfrage betrifft die Heterogenit¨at,die mit Multiagentensystemen gleichzusetzen ist, in welchen eine Umgebung von verschiedenen Agenten bev¨olkert wird, die wiederum mit Hilfe von verschiedenen Programmierparadigmen entwickelt worden sind. Dies dient der Ausnutzung komplement¨arerFunktionalit¨atenund F¨ahigkeiten. Die Hauptbeitr¨agesind (standardisierte) Schnittstellen f¨urInterpreter, Umgebun- gen und Werkzeuge. Interpreter kapseln Agenten in Form von Objekten und pla- nen/erm¨oglichen deren Evolution. Umgebungen repr¨asentieren einen externen Zustand und definieren, wie Agenten diesen ¨uber Sensoren und Aktuatoren wahrnehmen und manipulieren k¨onnen. Werkzeuge schließlich sind Softwarekomponenten, welche in der Lage sind sowohl den internen Zustand von Agenten als auch den der Umgebung zu inspizieren und das Ergebnis einem sinnvollen Zweck zuzuf¨uhren.Diese Arbeit beinhal- tet einen formalen Ansatz, der durch mehrere praktische Anwendungsbeispiele erg¨anzt wird. 9 Contents Preface 15 1. Introduction 17 2. Preliminaries 21 2.1. Introduction to Agents { Motivation and History . 21 2.2. Formalization of Single-Agent Systems . 24 2.3. Agent Programming and BDI agents . 26 2.4. MAS Example: The Multi-Agent Programming Competition . 28 2.5. State of the Art of AOP and Problems . 30 2.6. Summary . 32 3. BDI-Based Agent-Oriented Programming and Platform Comparison 33 3.1. 2APL{ A Practical Agent Programming Language . 34 3.1.1. Agent Program Syntax and Semantics . 34 3.1.2. Deliberation Cycle . 39 3.1.3. MAS Syntax and Semantics . 40 3.1.4. 2APL Environments . 40 3.2. Goal { A Programming Language for Rational Agents . 41 3.2.1. Agent Program Syntax and Semantics . 42 3.2.2. Deliberation Cycle . 44 3.2.3. MAS Syntax and Semantics . 45 3.2.4. Goal Environments . 45 3.3. Jason { An AgentSpeak Implementation . 46 3.3.1. Agent Program Syntax and Semantics . 47 3.3.2. Deliberation Cycle . 50 3.3.3. MAS Syntax and Semantics . 51 3.3.4. Jason Environments . 51 3.4. Comparison . 53 3.5. Summary . 56 4. Formalizations 57 4.1. Knowledge Representation Language . 58 4.2. Mental States and Mental States Dynamics . 61 4.3. Abstract Agent Architecture . 64 4.4. Situatedness { Single-Agent Systems . 64 4.5. Multi-Agent Systems . 66 11 Contents 4.6. Conceptual Separation . 67 4.7. Heterogeneity . 69 4.8. Thorough Infrastructure . 71 4.9. Summary . 72 5. Equivalence Notions 73 5.1. About Traces and Agent Equivalence . 73 5.1.1. Percepts Equivalence . 75 5.1.2. External Actions Equivalence . 75 5.1.3. Black Box Equivalence . 76 5.1.4. Mental State Actions Equivalence . 76 5.2. Equivalence Notions for 2APL, GOAL and Jason . 77 5.2.1. Agent Programs and Agent States . 78 5.2.2. Mental-State Trace Equivalence . 80 5.2.3. Generic Agent States and Agent Runs . 82 5.2.4. Agent State and Agent Run Similarity . 83 5.3. Summary . 84 6. APLEIS: An Environment Interface Standard for Agent-Oriented Program- ming 85 6.1. Interface Principles and Interface Meta-Model . 86 6.2. Using Listeners . 91 6.3. Interface Intermediate Language . 92 6.4. Agents/Entities System . 94 6.4.1. Managing the Agents-Entities-Relation . 95 6.4.2. Entity Types . 96 6.4.3. Acting . 96 6.4.4. Perceiving . 97 6.5. Environment Management System . 98 6.6. Environment Querying Interface . 101 6.7. Miscellaneous Statements about the Implementation . 101 6.8. Summary . 102 7. Potential Fields and MASs 103 7.1. Motivation, Problem Description and Approach . 104 7.2. Navigating with the Potential Fields Method . 105 7.3. Path Based Potential Fields . 107 7.3.1. Geometry Based Approach . 107 7.3.2. Image Processing Approach . 110 7.4. Implementation and Comparison . 113 7.5. Summary and Related Work . 115 8. EISMASSim for the Multi-Agent Programming Contest 117 8.1. General Environment Interface . 119 12 Contents 8.2. Agents on Mars . 121 8.3. Actions and Percepts for the Mars-Scenario . 124 8.4. Statistics . 126 8.5. Summary . 127 9. APLTK: A Toolkit for Agent-Oriented Programming 129 9.1. Principles . 129 9.2. Infrastructure . 130 9.3. Interpreter . 132 9.3.1. Data Structures . 132 9.3.2. Interpreter Interface . 133 9.4. Tool Interface . 135 9.5. Core Implementation . 136 9.6. Summary . 136 10.Adapting 2APL, Goal and Jason 139 10.1. Adapting and Extending 2APL . 140 10.1.1. EIS Compatibility . 140 10.1.2. APLTK Compatibility . 143 10.2. Adapting and Extending Goal ........................ 144 10.2.1. EIS Compatibility . 144 10.2.2. APLTK Compatibility . 149 10.3. Adapting and Extending Jason ........................ 150 10.3.1. EIS Compatibility . 150 10.3.2. APLTK Compatibility . 151 10.4. Summary . 152 11.Agents Computing Fibonacci Numbers 153 11.1. Set Up . 153 11.2. Agent Programs . 154 11.3. Agent Runs and Similarity . 155 11.4. Performance Results . 158 11.5. Summary . 158 12.Summary, Conclusions, Possible Future Work and Acknowledgements 161 12.1. Possible Future Work . 162 12.2. Acknowledgements . 162 A. APL Syntax Definitions and Environments 165 A.1. 2APL Agent Files . 166 A.1.1. MAS-Files . 166 A.1.2. Agent files . 166 A.2. Goal ...................................... 168 A.2.1. MAS-Files . ..