peer-to-peer and agent-based computing Agents & Multi-Agent Systems: Introduction Agents and Multi-agent Systems (MAS) • Software agents are programs with unique features such as: – Autonomy (no/little human input or interference) – Proactiveness (act in an anticipatory fashion, i.e., before things happen) – “Social skills” (agents communicate) • A MAS has many autonomous entities (the agents) interacting with one other to achieve – Conflicting goals (competition) or – Joint goals (cooperation) Inevitable conclusions: • not every program is a software agent • not every IT/e-business solution requires a MAS peer-to-peer and agent-based computing 2 Agents, MASs & AI • Classical Artificial Intelligence (AI) concentrates on modelling single agents: – A single, stand-alone expert system – A single, stand-alone natural language processing system – A single, stand-alone robot that learns – ... • Work on agents & MASs investigate scenarios in which various agents communicate: – Individual agents do not have to be clever… – The “intelligence” may only arise in the agents’ collective behaviour, as in, for instance, an ant colony peer-to-peer and agent-based computing 3 The goal of this part of the course is… Introduce aspects of agents and MAS: 1. Case studies and technologies (platforms, languages) 2. Communication languages and protocols 3. Auctions and voting mechanisms 4. Negotiation 5. Game theory peer-to-peer and agent-based computing 4 Agent-Oriented Programming • Computer science has a number of goals: – Develop human-oriented, ubiquitous systems, – Interconnect disparate elements, – Create systems to make autonomous and intelligent decisions about delegated tasks. • Programming has progressed through: – sub-routines, procedures and functions, – abstract data types, and objects – to agents peer-to-peer and agent-based computing 5 Agents in e-Commerce Software agents can be delegated tasks such as: • Information retrieval • Finding the cheapest/best supplier • Maintaining a company’s stock of components • Buying and selling in an energy market • Management & coordination of business processes peer-to-peer and agent-based computing 6 Agents in e-Science Software agents can be delegated tasks such as: • Finding an appropriate computational resource • Distributing results of scientific experiments • Negotiating the provision of a high-demand tool • Management & coordination of scientific processes peer-to-peer and agent-based computing 7 How to build agents & MASs… • How do we build software agents to carry out the tasks delegated to them? – How do we build agents that can interact with others in order to do what they were told to… – We may not have control as to how the other agents “out there” will behave! • How do we engineer a MAS consisting of many independent components that interact? – How do we address features from individual agents as well as global properties of the group of agents? – Do we write each agent individually? There may be 100’s of them! • Let’s make this discussion more concrete: – Scenario: “agentifying” Microsoft’s Outlook… peer-to-peer and agent-based computing 8 How to build agents & MASs… (Cont’d) • Microsoft’s Outlook offers means for people to share their diaries: – A person can organise a meeting and invite other people to attend it • An invitation can either be accepted or refused – If refused the person who is trying to organise the meeting will need to try again, and tell everyone who has accepted that the meeting will be changed, etc. – This is a tedious process which can take a long time! • Would it not be better if the people who could not attend suggested a time that would suit them? – This task could, however, be delegated to a program! • How would you program this? peer-to-peer and agent-based computing 9 How to build agents & MASs… (Cont’d) • We would want the following to happen: Can we meet at 2PM tomorrow? Sorry, I can’t. What about 3PM? Failing that, would Monday be any good? Dead easy: • A program provides communication between running copies of Outlook • Which language? • This program exchanges messages • Which kinds of messages are permitted and in which order? • Can we ensure the “dialogue” always terminates? • Which setup? Peer-to-peer? Client-server? • Will we allow “foreign” agents to join in? peer-to-peer and agent-based computing 10 How to build agents & MASs… (Cont’d) • However, the solution should scale up: peer-to-peer and agent-based computing 11 The Agent Concept • • • • • What is an agent? Agent characteristics Agents and other things Environment characteristics The “intentional stance” peer-to-peer and agent-based computing 12 What is an Agent? • Main point: – Agents act independently, controlling their internal state • Agents are capable of autonomous action in some environment within which they “live” – Agent’s actions may affect/change the environment – Environment, on its turn, is the input to the agent peer-to-peer and agent-based computing 13 The Environment Environments are: • The physical or virtual space within which the agent works • Examples: – A program controlling a door mechanism – A program roaming the Web for cheap flights to Dublin peer-to-peer and agent-based computing 14 Agents: reactivity • If the environment is fixed and – Only the agent can cause the environment to change – The effects of the actions are stable then the system may execute blindly. – E.g., a thermostat and a heater • However, realistic environments are not like that: – Other factors influence the environment – The effects of actions may be unstable – E.g., agents in a network of computers • Interesting environments are dynamic peer-to-peer and agent-based computing 15 Agents: reactivity (Cont’d) • Software for dynamic environments is hard to build! – It must expect the unexpected & possibility of failure • Reactive system: – Maintains an on-going interaction with its environment – Responds to significant changes in time for the response to be useful (no point in responding 3 hours later…) • Given a stimulus, agents respond with a designated response: – Programming by events outwith the agent’s control – If the environment is very diverse then we cannot foresee all possible events… – Therein lies the challenge and beauty of agent design peer-to-peer and agent-based computing 16 Agents: goal-directed behaviour • Agents monitor and react to environment… • On top of that, we want our agents to achieve the goals we delegated to them: – E.g., a shop-bot should text us with a deal on tickets • This feature of agents is called proactiveness: – When left on its own, an agent that has programmed goals, will strive to achieve them – It is part of its design to actively pursue its goals peer-to-peer and agent-based computing 17 Agents: social ability • A lonely agent is a contradiction: – Many agents can achieve something bigger than each of them can do in isolation… • The world is a large multi-agent environment: – People, Java programs, Web services, etc. – The actions and goals of other agents must be taken into account when we are designing our agents – Some goals can only be achieved with the cooperation of other agents; other goals may lead to competition! • Agents should be endowed with social abilities: – The ability to interact with other agents meaningfully – Direct or indirect communication (message-passing) – Terms of a cooperation can be negotiated and agreed peer-to-peer and agent-based computing 18 Agents: other features Agents may also possess – Mobility: the ability to move around machines – Veracity: they will not knowingly provide false information – Benevolence: they will, if possible, do what is asked – Rationality: an agent will act towards achieving its goals, and not act to make these goals unachievable – Learning/adaptation skills: agents improve their performance from experience peer-to-peer and agent-based computing 19 Reading List • An Introduction to Multi-Agent Systems, M. Wooldridge, John Wiley & Sons, 2008 • Is it an agent or just a program? S. Franklin and A. Graesser, available on-line at http://www.msci.memphis.edu/~franklin/AgentProg.html • Artificial Intelligence: A Modern Approach (2nd Ed.), S. Russell and P. Norvig, Prentice-Hall, 2003. • Multi-Agent Systems: A Modern Approach to Distributed Artificial Intelligence, G. Weiss (editor), MIT Press, 1999. • Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence, J. Ferber, AddisonWesley, 1999. peer-to-peer and agent-based computing 20