CSCE 496/896

Topic Summary Assignment 2: 

Multiagent Systems and Societies of Agents

Questions and Answers

September 12, 2002 

 

Q1:  Will the performance of the agents suffer if new agents are added into an environment?

 

A1:  This depends.  If the multiagent system is well-designed, and “scalable”, then the performance may not suffer, or only suffer marginally.  This is a very important issue in multiagent systems as researchers are able to concurrent invoke thousands of agents at once.  Some systems are not scalable, and more agents mean worse performances.  Some systems are scalable and more agents do not result in worse performances.  Think about this:  a small company that sells a special product to a local community.  When the company now wants to go global, then it needs to re-design its operation in order to handle the increased number of customers: delivery, storage, management, production, raw material purchase, etc.  If you view customers as agents, and the company as the underlying multiagent infrastructure with resources and services, then you will see how the performance of the agents will suffer when there are too many agents in the environment.  For example, as a customer, you may have to wait for a long time to get your product!

 

Q2:  Can agents in different environments interact with each other?

 

A2:  This is what the class talked about: if we have a common, standard communication protocol, then agents from different environments can interact with each other.  Also, if we do not have a common, standard communication protocol, but yet we can still understand each other, then we can still interact.

 

Q3:  What is the difference between cooperation and collaboration among agents?

 

A3:  BEWARE: My answer here is not universally accepted.  Here is the difference:  Collaboration is a type of cooperation.  But a cooperation is not necessarily a collaboration.  In a collaboration, sometimes people use this distinction:  When agent A has skill S1, and agent B has skill S2, and they work together to solve a problem that requires both skills S1 and S2, we way that A and B collaborate.  Why?  Because neither agent can solve the problem by itself because of the difference in skills.  For cooperation, however, the agents may have the same set of skills. 

 

Q4:  What is the difference between cooperation and collaboration among agents?

 

A4:  BEWARE: My answer here is not universally accepted.  Here is the difference:  Collaboration is a type of cooperation.  But a cooperation is not necessarily a collaboration.  In a collaboration, sometimes people use this distinction:  When agent A has skill S1, and agent B has skill S2, and they work together to solve a problem that requires both skills S1 and S2, we way that A and B collaborate.  Why?  Because neither agent can solve the problem by itself because of the difference in skills.  For cooperation, however, the agents may have the same set of skills. 

 

Q5:  How would a Knowledge Interchange Format (KIF) breakdown an abstract idea like: the sky is blue?

 

A4:  Now, this question ventures into one of the most important research areas in Artificial Intelligence: Knowledge Representation.  In general, it is more difficult to represent abstract concepts than concepts such as a car with its components/parts.  The key for KIF is that it is a standard in which you can send information and functions.  I will not get into breaking down the abstract idea.

 

Q5:  Are direct contacts preferable to contract net for cooperation protocols?

 

A5:  It depends on the problem domain.  By the way, contract net is sort of a direct contact protocol.  The manager announces the task, and receives bids from the contractors.  There are direct contacts. 

 

Q6:  What is an ontology for a more complicated are of interest like our classroom?

 

A6:  Interesting question.  Once again, this is the knowledge representation of AI.  How much do you want to capture in your ontology?  How many things you want to include?   If I include too many things, then I have to consider to many things.  For example, if I have to calculate the air pressure, temperature, my height, the basket’s height, and so on to shoot a basketball, then I may run out of time before I shoot the basketball.  On the other hand, if I include too few things, then I may miss something of importance.  For example, if I want to buy a computer, and I am reckless, then I may just go out and get the first computer I find in the store, without checking other computers’ features and prices.  I may end up regretting for paying too much for too little.  So for our classroom, how do come up with an ontology?  First, what is your application?  Are you looking at only the humans?  Or furniture and multimedia gadgets in order to re-create the classroom environment at another place?  Or the air quality in order to measure contaminants in the classroom?  Or the noise level?  Or the ambiance?  And so on.  Then, you can determine what you need to consider for your application.  Finally, you can build your ontology.

 

Q7:  Do communication protocols need to be written by human designers or can agents write them?

 

A7:  This is an interesting question.  Normally, human designers specify the communication protocols.  But, there is research in “learning to cooperate”, “learning the communication mechanisms”.  Agents may have a set of communication protocols available to them and they may learn to use a particular for each particular neighbor.  Having agents write communication protocols is still a pretty new field.  These days, the trend is to come up with a universally acceptable standard protocol like DAML (Reading #2).

 

Q8:  Can an agent acquire or lose capabilities?

 

A8:  In general, the answer is yes.  First, let us talk about “functionality”.  When an agent learns from another agent about a particular solution for a particular problem, it acquires a new “functionality” of sort.  When an agent loses all its resource required for a particular task, then it loses that “functionality”.  For example, you know how to kick a soccer ball, but if you do not have a soccer ball, you lose that functionality of kicking a soccer ball.  But you still have the capability.  Now, in real-world applications, agents do lose capabilities and acquire capabilities.  An agent may lose its communication capability after its radio transmitter is out of order.  An agent may gain additional “remote sensing” capability when a satellite finally shows up in the hemisphere where it can receives the satellite’s signal.  The changes in capabilities can be broadcast by the agent to others.  Or in the case of communication, if other agents fail to communicate with the agent, then they can conclude that the agent has communication failure.

 

Q9:  In the scenario of cross system communication (from one MAS to another MAS), how will the protocols handle the message exchanges?  They might be using completely different languages.

 

A9:  Then it will be difficult for the two systems to communicate.  From a practical point of view, this is not a good design.  There should be a common language between the two systems.  From a theoretical point of view, they can still communicate if each MAS can learn each other’s language: code breaking or learning by examples.  From a philosophical point of view, if two humans can communicate without a common language, then two different MAS should be able to in the future as well.  Yes, two humans with different languages are able to communicate through other visual cues without a common language.  How do we do that in software?  Well, if A does not understand what B is talking about, may be A can observe what B is doing and learn to attach what B is talking about to what it is doing.

 

Q10:  How can a system figure out how much redundancy is necessary, as opposed to simplicity? How can the system find a balance?

 

A10:  This is difficult to do.  From the agents’ point of view, hopefully, they have enough redundancy to assure what they do is cost-efficient: spend just the right amount of resources for successful tasks.  So, cost-efficiency is one criterion.  Also, I may consider the risk factor:  How likely is agent A going to solve the problem well?  Should I ask agent B to solve the problem as well?  Is the problem important?  Maybe I should just ask one agent to solve the problem and if it fails, I will still have a chance to fix it, and it will not cost me too much.  A balance is found based on the utility.  A system wants to gain utility from its actions.  And utility can be based solely on cost-efficiency, or fairness, or timeliness, etc.

 

Q11:  Why does a non-antagonistic agent participate in cooperative operation has to maintain a model of the other agents since it just does the tasks asked by other agent (to achieve the common goal of the society)?

 

A11:  But what if the agent receives requests from 4 other agents and it can only do one of them at a time? Which request should the agent do?  Keep in mind the mentality here:  dynamic and uncertain environment.  I may be a non-antagonistic agent that is willing to help, but I have limited resources (time and energy) and if there are many agents asking me to help, then I must make a decision.  How do I make a decision?  Well, if you are a close friend, then I will help.  If you didn’t help me last time, then I will probably decline to help you this time.  So, now, I am using a model, a profile of my friends the agents.

 

Q12:  Can multiagent systems be learning environments for the agents?

 

A12:  Yes.  Remember that agents are embedded within an environment, and no agents can live without an environment.  Agents can learn from each other, and also can learn from the environment.  If agent A performs action T, and observes result K, then it can learn “if I do T, I get K.”  But then the next time around, it performs action T, and observes result J.  Now since this new observation conflicts with what it has learned, it may investigate and find out, “Uh huh!  When I performed T this time, agent B also performed  action U, so I have to take that into account …” and so on.

 

Q13:  Is it only poor design that could make a system fail to carry out its objectives?

 

A13:  Philosophically speaking, yes.  If you cannot make a system that is robust, then it is a poor design.  But practically speaking, there are several reasons why a good design may still fail to carry out its objectives.  First, it is sometimes impossible to think of all possible scenarios that could cause a system to fail.  When you factor in users, it is even more difficult.  For example, there was a case several years back about a bicyclist who sued the bicycle manufacturer for him getting hit by a vehicle while riding in the dark without a taillight.  Second, constraints.  In engineering, for example, sometimes a designer has to come up with a design based on the resources he/she has.  It is still a good design.  Third, technology.  For example, the IRS’s tax form handling system was based on the 1900s and thus only recorded the last two digits of a year.  Whey did they do it that way in the first place?  The decision was made at that time based on (1) the assumption that the software would not last until the year 2000, and (2) the fact that by reducing two digits, it could save a lot of space.  And that time it was a good design.  But who would have thought that the software actually lasted until the year 2000 and beyond?  So, as a result, they had to waste resources to fix the Y2K problem.  In relation to multiagent systems, since we are dealing with dynamic and uncertain environments, it is even more likely for a system to fail to exhibit coherent behaviors even though the agents are well-designed.

 

Q14:  I have a question regarding three broad categories related to multiagent systems.  The three I consider are communication, coordination and intelligence (of the entire system).  First of all, is there another category that I should have included?  In general, if you could guarantee optimal performance in a single category, which of the three (or more) would you choose?

 

A14:  This is a tough question.  First, is there another category other than communication, coordination, and system intelligence?  Yes.  That is, I consider learning as one important part of a truly autonomous, adaptive multiagent system.  A multiagent that has a good communication infrastructure, has good coordination, and exhibits so-called intelligent behavior may not be able to learn.  (Note that my definition of intelligence requires learning, but this is not universally shared.)  There are also other application issues such as implementation, maintenance, flexibility, security, scalability, and so on.

 

Now, if I could guarantee optimal performance in a single category, which of the three (or more) would I choose?  In a swarm, agents are not intelligent, and they may have no coordination and little communication, but together, the swarm can exhibit intelligent behaviors: to build a nest, to move higher ground when there is flood, to transport food, and so on.  So, I prefer intelligence.  Ultimately, it comes down to getting things done, to solve problems.  If the system has the best communication technology, the best coordination approach, and yet still does not have intelligence, then how are we going to say that the system works? 

 

However, after saying all that, it is possible for certain applications to value communication and coordination more than intelligence.  Multiagent systems that collect data, monitor data, analyze data, and report to human experts for critical decision making.  Now, I would prefer the communication to be perfect (no noise, no loss, fast, high bandwidth), and prefer the agents being able to fuse data together, to filter out noisy data, to organize data, to mine data, and so on.