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.