SYSC5103 Software Agents RoboCup and BDI Architecture Fall 2006 Yousif Al Ridhawi Morvarid Sehatkar Walter Kung Gayathri Jayaraman.

Slides:



Advertisements
Similar presentations
Learning Procedural Planning Knowledge in Complex Environments Douglas Pearson March 2004.
Advertisements

OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
SELBO Agent Ivan Minov University of Plovdiv “Paisii Hilendarski“
Alternate Software Development Methodologies
Integrating the Computer Science Curriculum by Reusing Soccer Simulation Game Vadim Kyrylov, PhD Associate Professor Sarkeys Endowed Chair School of Business.
MotoHawk Training Model-Based Design of Embedded Systems.
Constructing the Future with Intelligent Agents Raju Pathmeswaran Dr Vian Ahmed Prof Ghassan Aouad.
Broker Pattern Pattern-Oriented Software Architecture (POSA 1)
Specifying Agent Interaction Protocols with AUML and OCL COSC 6341 Project Presentation Alexei Lapouchnian November 29, 2000.
Adding Organizations and Roles as Primitives to the JADE Framework NORMAS’08 Normative Multi Agent Systems, Matteo Baldoni 1, Valerio Genovese 1, Roberto.
Introduction To System Analysis and Design
KAIST CS780 Topics in Interactive Computer Graphics : Crowd Simulation A Task Definition Language for Virtual Agents WSCG’03 Spyros Vosinakis, Themis Panayiotopoulos.
JACK Intelligent Agents and Applications Hitesh Bhambhani CSE 6362, SPRING 2003 Dr. Lawrence B. Holder.
Introduction What is this ? What is this ? This project is a part of a scientific research in machine learning, whose objective is to develop a system,
Overview of Software Requirements
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
Describing Syntax and Semantics
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
RoboCup: The Robot World Cup Initiative Based on Wikipedia and presentations by Mariya Miteva, Kevin Lam, Paul Marlow.
Task decomposition, dynamic role assignment and low-bandwidth communication for real-time strategic teamwork Peter Stone, Manuela Veloso Presented by Radu.
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
January 13, 2012 Oscar Lin Steve Leung School of Computing and Information Systems Faculty of Science and Technology Athabasca University, Canada.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
Students: Nadia Goshmir, Yulia Koretsky Supervisor: Shai Rozenrauch Industrial Project Advanced Tool for Automatic Testing Final Presentation.
Introduction to Jadex programming Reza Saeedi
Software Engineering Muhammad Fahad Khan
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
CISC6795: Spring Object-Oriented Programming: Polymorphism.
2APL A Practical Agent Programming Language March 6, 2007 Cathy Yen.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Identify steps for understanding and solving the
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
SAS_08_ Architecture_Analysis_of_Evolving_Complex_Systems_of_Systems_Lindvall Architecture Analysis of Evolving Complex Systems of Systems Technical Presentation.
Building a Robocup team using Jason BDI framework Sean Bassett, Nancy Ho Woo, Laurence Smith, Carlos Valencia Software Agents November 30, 2006.
Description, Classes, Interfaces, Hierarchy, Specifics George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Introduction to AgentSpeak and Jason for Programming Multi-agent Systems (1) Dr Fuhua (Oscar) Lin SCIS Athabasca University June 19, 2009.
Computer Science Department UoC. Outline Project Teams Key Points description Suggested Task Delegation Files Needed & previous work.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Controlling Execution Programming Right from the Start with Visual Basic.NET 1/e 8.
Chapter 5: More on the Selection Structure Programming with Microsoft Visual Basic 2005, Third Edition.
Intelligent Agents RMIT Prof. Lin Padgham (leader) Ass. Prof. Michael Winikoff Ass. Prof James Harland Dr Lawrence Cavedon Dr Sebastian Sardina.
Geun-woo Kim ( 김근우 ) Bo-seung Kim ( 김보승 ) Jung-pil Yoon ( 윤정필 )
October 27, 2006 BDI Agents and AgentSpeak(L) Romelia Plesa PhD Candidate SITE, University of Ottawa.
Software Development COMP220/COMP285 Seb Coope Introducing Ant These slides are mainly based on “Java Development with Ant” - E. Hatcher & S.Loughran.
Capabilities, Plans, and Events Each capability is further broken down either into further capabilities or, eventually into the set of plans that provide.
Geoinformatics 2006 University of Texas at El Paso Evaluating BDI Agents to Integrate Resources Over Cyberinfrastructure Leonardo Salayandía The University.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Rational Agency CSMC Introduction to Artificial Intelligence January 8, 2004.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Cognitive Architectures and General Intelligent Systems Pay Langley 2006 Presentation : Suwang Jang.
MTA SZTAKI Department of Distributed Systems Hogyan mixeljünk össze webszolgáltatásokat, ontológiákat és ágenseket? Micsik András.
Introduction to RoboCup Michael Floyd November 3, 2010.
Intelligent Agents Chapter 2. How do you design an intelligent agent? Definition: An intelligent agent perceives its environment via sensors and acts.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Software Design Refinement Using Design Patterns
Instructor: Dr. Hany H. Ammar
Component-Based Agent Frameworks And SoccerBeans
Chapter 6 – Architectural Design
JavaScript CS 4640 Programming Languages for Web Applications
Chapter 5 Architectural Design.
Presentation transcript:

SYSC5103 Software Agents RoboCup and BDI Architecture Fall 2006 Yousif Al Ridhawi Morvarid Sehatkar Walter Kung Gayathri Jayaraman

Multi-Agent System and BDI Architecture; Jason and AgentSpeak(L); RoboCup; Design and Implementation of Jason Environment; Design and Implementation of soccer player behavior; Performance Results; Evaluate Jason as a BDI Programming system; Outline

Multi-Agent System and BDI Architecture Multi-agent system is the sub field of artificial intelligence, which studies systems involving multiple agents and their coordination. When a group of agents in a multi-agent system share a common long-term goal, they can be said to form a team. The BDI architecture is being widely used in dynamic and complex scenarios where agents may need to act under incomplete and incorrect information about other agents and the environment where they are situated. The BDI model has some philosophical basis in the Belief-Desire-Intention theory of human practical reasoning.

Jason and AgentSpeak(L) Jason is a Java-based platform for the development of multi-agent systems Jason is one of the interpreter for an extended version of AgentSpeak(L). AgentSpeak(L) is the abstract languages based on BDI architecture. AgentSpeak(L) maintains a set of beliefs and a set of plans. The set of beliefs represents the information an agent presently has about the world A plan is a sequence of steps the agent needs to execute in order to handle some perceived event. A AgentSpeak(L) plan has –A head: triggering event –A context: predicate for the plan to be considered applicable. –A body: a sequence of basic actions –head : context <- body –e.g. “+e : true <- !g”

RoboCup Soccer Server –Provides a virtual field that simulates all movements of a ball and players. –Send field information to Clients via UDP/IP socket. Soccer Monitor –Display graphical representation of the game. –Initial kick-off command. Clients –client controls movements of one player by sending commands through UDP/IP socket to the server.

Design and Implementation of Jason Environment

Communication between threads Activity Chart Send "Init" Add Perception to Jason init() Process Perception. Generate actions RoboCUP Server Thread NewBrain(n) Thread SoccerPlayer Jason receive team side s e n d t e a m i n f o Send player visual info executeAction handle the actions Send actionsProcess actions

Issues and Lessons Learned Issue: Perceptions were added before the previous action could be completed. Solution  Introduced a time delay between an action and the next perception received. Open Issue: In multiplayer environment, multiple threads (one for each player) access the same environment methods resulting in socket overwrite. Recommendation (from Jomi Hubner)  Use of Agent Architecture class (for each agent) instead of using environment class (Work in Progress) Open Issue: Lack of good explanation of the APIs and examples in Jason documentation. Open Issue: Debugging the code using breakpoints.

State Diagram for Soccer Player Behavior

AgentSpeak(L) Code //BELIEFS checking(ball). //PLANS // If the ball is not visible. go to checking(ball) state +ball(null) : true <- -ball(null); -ball(Dist, Dir, DistChang, DirChng); turn(40); +checking(ball); -checking(goal). // If kickOff occurs. +kickOff <- ?ball(Dist, Dir, DistChang, DirChng); -ball(Dist, Dir, DistChang, DirChng). // The ball Dir is not correct, turn to match dir +ball(Dist, Dir, DistChang, DirChng) : not (Dir = 0) & not checking(goal) <- -ball(null); turn(Dir). // If ball is out of reach, run toward it. +ball(Dist, Dir, DistChang, DirChng) : Dist > 1 <- -ball(null); -checking(goal); -ball(Dist, Dir, DistChang, DirChng); dash(Dist * 25);.wait(kickOff). // REACHBALL: The ball Dir is correct and dist is okay. Search for the goal +ball(Dist, Dir, DistChng, DirChng) : Dist <= 1 <-+checking(goal); !kick(goal); -ball(null). // Sub Goal 1: see goal, then kick ball +!kick(goal): goal(GDist, GDir, GDistChng, GDirChng) & checking(goal) <- kick(100, GDir); -goal(GDist, GDir, GDistChng, GDirChng); -checking(goal). // Sub Goal 2: do not see goal, then search for goal +!kick(goal): goal(null) & checking(goal) <- turn(40). // if I see the goal, that means is not goal(null) +goal(GDist, GDir, GDistChng, GDirChng) <--goal(null). // vice versa +goal(null) <--goal(GDist, GDir, GDistChng, GDirChng).

Time Comparison Jason Implementation vs Krislet Time(ms) for first goal in each Trial Run KrisletSoccerPlayer

BDI Programming System Requirements The programming language has to be expressive –Able to describe the agent behavior without regarding how agent is implemented. Reasoning of system has to be flexible –Able to decide, moment by moment, which action to perform in the furtherance of its goals. Has to be responsive to the environment –Interpreter must be fast. –Must have correct response to all situations.

Expressive: AgentSpeak(L) describe agent using abstract notions. // FOUND BALL: The ball Dir is correct and dist is okay. Search for the goal +ball(Dist, Dir, DistChng, DirChng) : Dist <= 1 <- +checking(goal); !kick(goal); -ball(null). // Kick if the agent see the goal. +!kick(goal): goal(GDist, GDir, GDistChng, GDirChng) & checking(goal) <- kick(100, GDir); -goal(GDist, GDir, GDistChng, GDirChng); -checking(goal); +checking(ball). // Turn if the agent do not see the goal. +!kick(goal): goal(null) & checking(goal) <- turn(40).

Flexibility : Deliberate to Select Achievable Option. // Option 1: If the ball is in range, kick the ball +ball(Dist, Dir, DistChng, DirChng) : Dist <= 1 <- +checking(goal); !kick(goal); -ball(null). // Option 2: If the ball is in range, find goal +ball(Dist, Dir, DistChng, DirChng) : Dist <= 1 <- +checking(goal); !check(goal); -ball(null). // SubGoal 1: Kick ball to goal +!kick(goal): goal(GDist, GDir, GDistChng, GDirChng) & checking(goal) <- kick(100, GDir); -goal(GDist, GDir, GDistChng, GDirChng); -checking(goal). // SubGoal 2: Check the goal location +!check(goal): goal(null) & checking(goal) <- turn(40). The following perceptions are added –+ball(0.5, 0, 0, 0) –+goal(null) There are two options that could be triggered. –Option 1 has an unachievable sub goal (!kick(goal)) which required the goal location is known. –Option 2 has achievable sub-goal. (!check(goal)). The interpreter should pick option 2. However, Jason pick option 1 and generate the following error. –[ test1] Found a goal for which there is no applicable plan: –+!kick(goal) +ball(Dist,Dir,DistChng,DirChng)[source(percept )] : (Dist <= 1) <- !kick(goal); -ball(null). : {Dist=1, Dir=0, DirChng=0, DistChng=0} –[test1] No fail event was generated for +!kick(goal)

Flexibility (cont’) // REACHBALL: The ball Dir is correct and dist is okay. Search for the goal +ball(Dist, Dir, DistChng, DirChng) : Dist <= 1 <- +checking(goal); !kick(goal); -ball(null). // SubGoal 1: kick ball to goal +!kick(goal): goal(GDist, GDir, GDistChng, GDirChng) & checking(goal) <- kick(100, GDir); -goal(GDist, GDir, GDistChng, GDirChng); -checking(goal). // SubGoal 2: check goal location +!kick(goal): goal(null) & checking(goal) <- turn(40). Jason was successful in picking the achievable plan if the condition is specified in the context part of the plan.

Responsive to the Environment // If ball is out of reach, run toward it. +ball(Dist, Dir, DistChang, DirChng) : Dist > 1 <- -ball(null); -ball(Dist, Dir, DistChang, DirChng); dash(Dist * 25). Jason handled goal as event. When event occurs, it triggers plans. Advantage: responds quickly to the environment. It behaves like reflex action. Disadvantage: there is no check whether the goal is accomplished or not. Jason does not respond to incomplete goal. RobuCupJason Send Perception Action ProcessingSend Command Before Kick-Off ball(20, 10, 0, 0) dash(500) Dash(500) and failed ball(20, 10, 0, 0) No response to the old perception

Conclusions Successfully implement soccer player in RoboCUP using BDI development framework. Noticeable performance difference in terms of speed between the Java code implementation of Krislet and the Jason version; Agent Speak(L) can express agent behavior using abstract notions; Jason BDI reasoning engine is not flexible with the option deliberation; Jason has no verification whether the goal has been accomplished;

Backup slide: Jason Environment

Backup slide: An interpretation cycle of an AgentSpeak(L) program