




Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Notes; Class: Distributed Software Develop; Subject: Computer Science; University: University of San Francisco (CA); Term: Spring 2005;
Typology: Study notes
1 / 8
This page cannot be seen from the preview
Don't miss anything!





Chris Brooks Department of Computer Science University of San Francisco ?? Department of Computer Science — University of San Francisco – p.1/
What is an agent? What are MAS/DAI problems? Communication languages Coordination Contract Net Distributed Planning Societies of agents ?? Department of Computer Science — University of San Francisco – p.2/
Distributed AI (more often called Multiagent Systems these days) is the study of how multiple agents can and do interact with each other. May include both human or computational agents. May be a closed or an open system Agents may be cooperative or self-interested. ?? Department of Computer Science — University of San Francisco – p.3/
Autonomy Adaptation Goal-directed behavior Has “beliefs” and “intentions” Proactive Situated within an environment ?? Department of Computer Science — University of San Francisco – p.4/
Autonomy is a quality often attributed to agents. An autonomous agent is able to rely on its percepts and past experience to make decisions, rather than asking a human for help. This is a thorny area - most agents will not have complete autonomy. When might we not want an agent to have complete autonomy? Challenge: Designing an agent that can reason about its own autonomy and know when to ask for help.
We can also think of agents as a programming paradigm. The next logical step after objects. “Objects do it for free, agents do it for money.” of actions, agents are actors. receivers Objects are label than objective It’s less useful to think of agent as an description. subjective as a Agency is a useful abstraction for us as programmers. Allows us to think about a program at a higher level. Treat something as an agent if that helps to understand, predict, or explain its behavior. Thermostats as agents
Why bother with all this? We already know how to write programs. programs open-ended Agents tend to be Difficult to specify in advance what they should do in all cases. they were intelligent. as if It’s helpful to talk about them “The robot wants to find the power supply.” “The server believes that the client has reset.” This assigning of mental states to programs is called the intentional stance. ?? Department of Computer Science — University of San Francisco – p.7/
Treating a program as an agent lets us work with it at the knowledge level We can program in terms of what an agent ’knows’ or ’wants’ or is ’trying to achieve’ We need a software layer that gives us this flexibility. See the AI class for more on building this layer. This can help us: Manage complexity in our own programs Interact with other programs whose internal operations are opaque to us. ?? Department of Computer Science — University of San Francisco – p.8/
So a DAI or MAS problem involves a number of agents interacting with each other. Why not construct a centralized system? Complexity Geographic or temporal separation of components Separate ownership Dynamic or changing system ?? Department of Computer Science — University of San Francisco – p.9/
Coordinating Mars rovers multiple orbiting satellites Scheduling Robots in factories Power generation and distribution Troop movement and deployment Financial markets P2P networks etc ?? Department of Computer Science — University of San Francisco – p.10/
Working with agents at the knowledge level creates the need for a communication language and protocol at this level. Built on top of lower-level protocols: HTTP, SOAP, etc. Goal: describe a sequence of messages declaratively. What is said, rather than the format of the message.
We can distinguish between several layers at which communication must be specified. Method: this refers to the underlying layer that will be used to transport messages. TCP, HTTP, RMI, UDP, etc. Syntax: this refers to the way in which a message is structured.
of a message, meaning Semantics: This refers to the usually as related to other messages. RDF, OWL, ontologies. Pragmatics: This refers to the way that a message is used as part of a larger protocol or dialogue.
(request A) :name (agent-identifier :sender B)) :name (agent-identifier (set :receiver :content B) :name (agent-identifier "((action 19))))" 12 (loc box017 (deliver fipa-sl :language fipa-request :protocol order567) :reply-with (agree B) :name (agent-identifier :sender A)) :name (agent-identifier (set :receiver :content B) :name (agent-identifier "((action 19))) 12 (loc box017 (deliver low))" order567 (priority order567 :in-reply-to fipa-sl) :language fipa-request :protocol ?? Department of Computer Science — University of San Francisco – p.19/
Uses a lisp-style syntax. Like most protocols, wrappers exist in most high-level languages. The message is structured as a set of key-value pairs in a list, rather than a fixed size and order. The language in which the content is represented is independent of KQML or FIPA ACL. Treated as a string to be interpreted. Might be a logical representation, XML/RDF, SOAP, or executable code. ?? Department of Computer Science — University of San Francisco – p.20/
The development of languages for agent communication has received a great deal of research attention (and funding!) Issues: How many performatives are needed? How rich does communication have to be? How can agents exchange knowledge (ontologies) stored in different formats? What level of interaction is needed in a general agent language? What tradeoffs exist between generality and expressivity? Can domain-specific needs be removed from an ACL? ?? Department of Computer Science — University of San Francisco – p.21/
Coordination turns out to be one of the most fundamental problems in MAS. Coordination can occur because: Agents must work together to solve some larger problem. There is the possibility of conflict There is the possibility of shared goals. ?? Department of Computer Science — University of San Francisco – p.22/
Organizational structure Little communication needed Agents do not need to know about the entire population Structure must be agreed on in advance Can be brittle, or inefficient.
Negotiation mechanisms More communication needed Agents do not have to be cooperative Challenges: designing a negotiation protocol that is fair and efficient.
Markets and auctions Can deal with relatively large numbers of agents. Agents can be self-interested Under certain conditions, efficient outcomes are reached. If those conditions are not met, outcomes are less predictable. Can include NP-hard problems, which limits the size of the population. Potential expressivity problems. ?? Department of Computer Science — University of San Francisco – p.25/
Social norms/laws Designed for Internet-level population sizes Rules are defined for how one “should act.” Violators are (ideally) discouraged from behaving poorly. Challenge: enforcement. ?? Department of Computer Science — University of San Francisco – p.26/
We’ll start with cooperative environments. Distribution due to spatial/geographic reasons or complexity. Agents are assumed to tell the truth, and act to achieve a global goal. ?? Department of Computer Science — University of San Francisco – p.27/
Contract Net is one of the oldest and most widely-used coordination mechanisms. Simple, easy to implement. Works best in cooperative environments, but can be used in self-interested environments. Used to allocate tasks. Who will agree to do what? ?? Department of Computer Science — University of San Francisco – p.28/
manager Begin with an agent known as the Allocates tasks contractors A set of agents act as Potentially perform these tasks The manager announces a task to (a subset of) the contractors (a request performative) Any agent who can complete the task responds with a bid. (a reply, or bid) Manager evaluates all bids and assigns the task. (a tell performative) to accomplish this task. commitment Awardee now has a It may further contract this task out.
A set of cameras located around campus can track people Cameras each have an area they can see. A camera is tracking a person. As the person leaves its line of sight, it announces a bid to continue tracking. The first agent to reply wins the contract and continues tracking. Since all agents are cooperative, the ’bidding’ is quite simple.
Solution 1: Submit plans to a centralized coordinator. Doesn’t scale Agents may not be willing to share more information than is needed. Solution 2: broadcast top-level constraints to each other. This allows agents to detect whether there is a top-level conflict. Plans will either be totally serialized or totally parallel. ?? Department of Computer Science — University of San Francisco – p.37/
A better solution: Detect whether there is: No problem: all possible interactions may be interleaved. No solution: plans must be serialized. Some solution: We then ’step down a level’ in the plans and force agents to commit to particular alternatives. Tradeoff: Deeper level requires more communication and interleaving (an exponential problem), but produces finer-grained coordination. ?? Department of Computer Science — University of San Francisco – p.38/
Contract net and distributed planning work for tens of agents. How can we govern environments with thousands (or more) agents? agent societies These are often referred to as Still a research area Inspiration drawn from human society, Internet-scale protocols. ?? Department of Computer Science — University of San Francisco – p.39/
Research in this area can be divided into descriptive and proscriptive domains: descriptive: “Given a structure or behavior on the world, what is the outcome?” Proscriptive: “If a structure or behavior is enforced, what outcomes result?” There is also a vigorous debate about whether participants in an Internet-level agent society should be treated as self-interested, cooperative, or a mix of the two. Cooperation potentially allows for more beneficial outcomes, if participants can be trusted. Many of the same issues as P2P systems arise. ?? Department of Computer Science — University of San Francisco – p.40/
The agent society approach can be used to construct teams of agents, each with very simple behavior, who can collectively solve a difficult task. Ant algorithms Problem: Explore an unknown area and locate high-resource areas
Avoid obstacles. If you are not holding a resource, wander randomly. If you sense ’pheromones’, weight random selection towards them. If you find resources, pick them up and begin dropping pheromones. Follow a beacon back home.. If you make it home, drop the resource. Over time, pheromone paths are built up between the home and the resource.
Achieving macro-level behavior from microlevel rules. How do you guarantee outcomes? Is there an efficient way to synthesize these sorts of rules? Imposition of social norms or laws What outcomes can be guaranteed for a given set of norms or laws? What language is necessary to describe norms or laws? Mechanisms for trust and reputation How can noncompliance be enforced? ?? Department of Computer Science — University of San Francisco – p.43/
Multiagent problems arise due to spatial, privacy or scaling constraints. General languages for declarative communication are needed in open systems. Coordination is a fundamental problem Contract net Distributed planning Ant Algorithms ?? Department of Computer Science — University of San Francisco – p.44/
Lying liars and the lies they tell. or, What to do when agents are out for themselves. Applying economics to coordination and allocation problems. ?? Department of Computer Science — University of San Francisco – p.45/