Agents & Agent-Based Programming

Slides:



Advertisements
Similar presentations
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Advertisements

Some questions o What are the appropriate control philosophies for Complex Manufacturing systems? Why????Holonic Manufacturing system o Is Object -Oriented.
Agents in the previous examples Agents are just 3D objects in virtual worlds Agents are not independent thread. No agent architecture. ……
Lecture 1: Introduction Slides adapted from Sobah Abbas Petersen
Agent Mediated Grid Services in e-Learning Chun Yan, Miao School of Computer Engineering Nanyang Technological University (NTU) Singapore April,
Experiences with an Architecture for Intelligent Reactive Agents By R. Peter Bonasso, R. James Firby, Erann Gat, David Kortenkamp, David P Miller, Marc.
Intelligent Agents revisited.
CS 6100 MultiAgent Systems Lecture 1: Introduction Slides adapted from Sobah Abbas Petersen (with permission)
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
The Need of Unmanned Systems
Architectural Design.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE Massimo Poesio Intelligent agents.
NetLogo Dr. Feng Gu. NetLogo NetLogo is a programmable modeling environment for simulating natural and social phenomena, authored by Uri Wilensky in 1999.
Agent architectures Smarter software for astronomers Alasdair Allan University of Exeter, Exeter, U.K.
Agent-Oriented Software Engineering CSC532 Xiaomei Huang.
Lecture 9: Chapter 9 Architectural Design
Bridges To Computing General Information:  This document was created for use in the "Bridges to Computing" project of Brooklyn College.  You are invited.
Fundamentals of Information Systems, Third Edition2 Principles and Learning Objectives Artificial intelligence systems form a broad and diverse set of.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
NAVEEN AGENT BASED SOFTWARE DEVELOPMENT. WHAT IS AN AGENT? A computer system capable of flexible, autonomous (problem-solving) action, situated in dynamic,
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
Agents & Agent-Based Programming. Outline I.References II."Agents" defined. III.Agent-Based Programming Paradigm IV.Motivations V.Putting it all together.
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
Bio-Networking: Biology Inspired Approach for Development of Adaptive Network Applications 21 May 2005Ognen Paunovski Bio-Networking: Biology Inspired.
Bridges To Computing General Information:  This document was created for use in the "Bridges to Computing" project of Brooklyn College.  You are invited.
Introduction of Intelligent Agents
Instructional Objective  Define an agent  Define an Intelligent agent  Define a Rational agent  Discuss different types of environment  Explain classes.
Welcome and Introduction to the Course MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
Agent Overview. Topics Agent and its characteristics Architectures Agent Management.
Artificial Intelligence: Research and Collaborative Possibilities a presentation by: Dr. Ernest L. McDuffie, Assistant Professor Department of Computer.
Intelligent Agents Chapter 2. How do you design an intelligent agent? Definition: An intelligent agent perceives its environment via sensors and acts.
Done by Fazlun Satya Saradhi. INTRODUCTION The main concept is to use different types of agent models which would help create a better dynamic and adaptive.
AUSF Agent based User Simulation Framework Om Narayan.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Pepper modifying Sommerville's Book slides
Database Systems: Design, Implementation, and Management Tenth Edition
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Object-Orientated Programming
Fundamentals of Information Systems, Sixth Edition
CHAPTER 1 Introduction BIC 3337 EXPERT SYSTEM.
Object-Oriented Analysis and Design
Unified Modeling Language
System Design and Modeling
CS101 Introduction to Computing Lecture 19 Programming Languages
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
CS 5110/6110 MultiAgent Systems
Bioagents and Biorobots David Kadleček, Michal Petrus, Pavel Nahodil
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Intelligent Agents Chapter 2.
© James D. Skrentny from notes by C. Dyer, et. al.
LECTURE 1: INTRODUCTION
A BRIEF INTRODUCTION TO UNIX OPERATING SYSTEM
Course Instructor: knza ch
Introduction to Multi-Agent Systems
Chapter 20 Object-Oriented Analysis and Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Object oriented analysis and design
What is Concurrent Programming?
CS240: Advanced Programming Concepts
Agent Based Modeling (ABM)
LECTURE 1: INTRODUCTION
Decision Support Systems
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
LECTURE 1: INTRODUCTION
Chapter 22 Object-Oriented Systems Analysis and Design and UML
LECTURE 1: INTRODUCTION
An Introduction to Multiagent Systems
From Use Cases to Implementation
Information system analysis and design
Presentation transcript:

Agents & Agent-Based Programming CIS 3.5, Lecture 4.1

Outline References "Agents" defined. Agent-Based Programming Paradigm Motivations Putting it all together Computer & Software Agents Software Agents - Disambiguation Agent Components Types of Agents Multi-agent system Properties of multi-agent systems Introduction to NetLogo

References Russell, Stuart J.; Norvig, Peter (2003), Artificial Intelligence: A Modern Approach (2nd ed.), Upper Saddle River, New Jersey: Prentice Hall, ISBN 0-13-790395-2, http://aima.cs.berkeley.edu/ , chpt. 2 Stan Franklin and Art Graesser (1996); Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents; Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996 An Introduction to Multiagent Systems, by Michael Wooldridge, John Wiley & Sons, Ltd (2002).

"Agents" Defined What an "agent" is depends on the context of the domain. Real estate agent. Secret agent. Chemical agent. The common component in almost all cases is that an "agent" is something that "acts" autonomously (independently) usually on behalf of some other entity. Agent is derived from the Latin agere (to do).

Agent "Paradigm" The term "agent-based programming" describes a paradigm (an abstraction, idea, or a concept) similar to OOP (which uses terms such as methods, functions, and objects). The concept of an agent provides a convenient and powerful way to describe an entity that is capable of acting with a certain degree of autonomy in order to accomplish tasks on behalf of its user. Four key notions distinguish agents from arbitrary programs: persistence autonomy reaction to the environment goal-orientation

Motivations Five trends in the history of computing have led to the development of agent-based and multi-agent systems: ubiquity interconnectivity intelligence delegation human-orientation

Ubiquity Computing devices are everywhere Computational power (i.e., hardware) has become small and relatively inexpensive. Computing devices do all sorts of things Many devices are hidden inside other devices (embedded computing). How do we design systems that might run anywhere, on anything? Can we think about the behaviors we want rather then the program we need to write.

Interconnectivity The rise of the internet and network-based systems has led to the idea that most computational devices do not run alone—they connect to a wide range of other types of computational devices in order to perform tasks collaboratively (also called distributed and concurrent or parallel systems) How do we design systems that can be executed on multiple processors/computers? Can we conceive of a system as a series of interacting devices rather then as a single system?

Intelligence As computers become more sophisticated, so must the software that operates them. What does "intelligence" mean in the context of computing? What do you believe makes a computer/ computational device intelligent? We can think about systems that can react to "unpredictable" events in its operating environment as intelligent.

Delegation Computers do things for us, often without our intervention (traffic lights, power grids/plants). Giving control to a computer is called “delegation”; are you comfortable with that? (3-mile Island) What kinds of tasks are you comfortable delegating to a computer? tasks that involve safety (flying, driving) spending money (bidding on eBay) Combat operations (robot warriors)

Human Orientation Most computer systems are designed to interact with humans. Even if a human delegates tasks to a computer, there is still interaction before and after the task is completed. How do we design systems that can interface effectively with a wide range of human users? What kinds of human features do we need to construct/model in a system in order to increase its usefulness? language? emotion? reasoning? decision making?

Putting it all together… We come up with a desire for computational devices that can interact with each other to complete tasks. By that, we mean they might: Compete -> perhaps for scarce resources. Cooperate -> perhaps to accomplish tasks together that one cannot do alone. Negotiate -> perhaps to manage the sharing or trading of resources.

"Computer Agent" “An agent is a computer system that is capable of independent (autonomous) action on behalf of its user or owner (figuring out what needs to be done to satisfy design objectives, rather than constantly being told what to do in detail).” (Wooldridge) An Agent "is an autonomous entity which observes and acts upon an environment and directs its activity towards achieving goals." Russell & Norvig 2003,

Computer Agent - Disambiguation Unlike arbitrary programs, agents: react to their environment, are autonomous, exhibit goal-orientation and persistence. Unlike objects which are defined in terms of methods and attributes, an agent is defined in terms of its behavior. NOTE: A "software agent" usually implies a program, a "computer agent" can be a hardware/software combination, and an "intelligent agent", can be anything (including people/groups of people).

A Software Agent is "anything that can be viewed as perceiving its environment through sensors and acting upon that environment through effectors". (Stuart Russell & Peter Norvig, 2003) "a system that is situated in an environment, and which is capable of perceiving its environment and acting in it to satisfy some objectives." (Michael Wooldridge, 2002)

Components of a Software Agent Sensors Actuators/Effectors Reasoning (maybe be very simple) Learning (optional, defines an "intelligent agent")

Types of Agents Simple reflex agents -> If condition then action. Model-based reflex agents -> A model-based reflex agent keeps track of the current state of the world using an internal model. It then chooses an action in the same way as the reflex agent.

Types of Intelligent Agents Goal-based agents Goal-based agents are model-based agents which store information regarding situations that are desirable. This allows the agent a way to choose among multiple possibilities, selecting the one which reaches a goal state. Learning agents Learning has an advantage that it allows the agents to initially operate in unknown environments and to become more competent than its initial knowledge alone might allow.

Multi-Agent System “A multi-agent system is one that consists of a number of agents which interact with one another. In the most general case, agents will be acting on behalf of users with different goals and motivations. To interact successfully, they will require the ability to cooperate, coordinate and negotiate with each other, much as people do.” (Wooldridge)

Multi-Agent System (MAS) is... an environment in which many (well, two or more) agents exist and interact.

Properties of multi-agent systems Individual agents are self-interested they have their own goals there may be team rewards for a group of agents achieving a goal together Cooperation is not governed, It is emergent (if it happens at all) versus “distributed systems”, where goals are only group-based cooperation is engineered to be inherent in the system

Agent Based Programming… Why? Are there advantages to using Agent-Based programming? Yes! Dealing with complexity: Some problems are so complex that they are basically impossible to model as a single program. Examples: Weather, Internet, Travel Systems Emergent Behavior: Some types of behavior are very difficult to program in directly but can result as a side effect of agents pursuing very simple goals.

Key Research Areas Agent design (micro level): how do we design individual agents to operate effectively? Society Design (macro level): how do we design groups of agents, or societies, to operate effectively? Hive Intelligence (abstract level): Can simple agents, working together, effectively demonstrate high level reasoning abilities.

NetLogo (1) NetLogo is a programmable modeling environment for simulating natural and social phenomena.. NetLogo is particularly well suited for modeling complex systems developing over time. Modelers can give instructions to hundreds or thousands of "agents" all operating independently. This makes it possible to explore the connection between the micro-level behavior of individuals and the macro-level patterns that emerge from the interaction of many individuals.

NetLogo (2) NetLogo lets students open existing simulations exploring their behavior under various conditions. It is also an authoring environment (text-based IDE) which enables developers to create their own models. NetLogo is simple enough that students and teachers can easily run simulations or even build their own. And, it is advanced enough to serve as a powerful tool for researchers in many fields. NetLogo has extensive documentation and tutorials. It also comes with a Models Library, which is a large collection of pre-written simulations that can be used and modified.