CSCE 475/896
Topic
Summary Assignment 3:
Distributed
Problem Solving and Planning
Questions
and Answers
September 26, 2002
Important Note: Important questions are denoted
with a ‘8’ symbol.
Important Note: As for the responses to the stupid
question, many of you failed to address the issue of “precision watering”. This is actually analogous to a real-world
practice currently gaining popularity in technology-aided farming—i.e., precision farming. In precision
farming, the land is divided into different parcels and each parcel is
fertilized, watered, soiled, and managed individually so that the farmer can
get the best of each parcel, and the decisions are supported by high-tech data
such as satellite images, on-field sensors, crop analysis, and so on. With many water sprinkler spout controls,
that means you can practice precision watering so that the area in your
backyard that needs more watering will get the water, and so on.
Important Note: Many of your critiques concern the
application of the three planning strategies:
(a) centralized planning for distributed plans (CPDP), (b) distributed
planning for centralized plan (DPCP), and (c) distributed planning for
distributed plans (DPDP). Here are some
real-world examples.
(a)
Consider
a manager of a team in charge of an advertisement project. The manager comes up with an overall plan on
how to carry out the various steps: problem specification, customer
interaction, budget negotiation, graphic design, consumer testing, etc. Each step is allocated a certain amount of
budget, resources, personnel, and time frame—essentially a subplan. Then the manager asks her subordinates to
carry out the subplans. So the various
subplans have their own subgoals and are distributed. (Trick: Do we see this as a centralized plan? Usually, we do not. A centralized plan usually does not deal
with synchronization and sequencing issues, for example. But distributed plans have to.) This is CPDP. In MAS, we use CPDP when a problem has many interdependencies and
each agent has full knowledge of what other agents’ knowledge, resources, and
capabilities. This implies that the
agents have to be quite static in their knowledge, resources, and capabilities
and it is possible for the leading agent to organize a plan. Thus, this also implies that the agents in
this setup have the least flexibility and autonomy among the three strategies.
(b)
Consider
a team of experts (engineers, scientists, and businessmen) to build a new
supercomputer. The centralized plan is
to build a new supercomputer with the available time frame and budget. The scientists will build a plan on the
design of the computer, the engineers will build a plan on the hardware
architecture and manufacturing and testing of the computer, and the businessmen
will build a financial plan to obtain sponsorships for the cost of the
process. Each group of specialists
contributes to a part of the overall plan.
This is DPCP. In MAS, we use
DPCP when the problem is complex, when the agents have diverse expertise and
local resources. The agents here have
more autonomy and intelligence than the agents in CPDP.
(c)
Consider
a department faculty (professors of different research agendas and professional
interests) in achieving their professional goals: some emphasize in research, some love to teach, some want to
build a good department, etc. But these
professors have to work together in committees, in projects, in designing
curriculum, and in many other activities.
Thus, basically, each professor is an agent planning for its own
plans. However, they work together to
satisfy different departmental goals, their own career goals, and so on. This is DPDP. In MAS, we use DPDP when there are many complex problems and
where the agents may have their different own goals to pursue as well as
different global goals to achieve. The
agents here have the most autonomy and intelligence among the three strategies.
8Q1:
Centralized
planning seems to be a good choice when there are many interdependencies, since
one agent can assign tasks to not overlap, but distributed planning is a good
choice when it is a very complicated plan.
What if a plan is very complex, but also has many
interdependencies? At what point does
the interdependencies cause distributed planning to under-perform centralized
planning?
A1: This is a difficult question to
answer. In general, centralized
planning is better when there are many interdependencies—otherwise, the agents
would have to go through many iterations just to settle the interdependencies
among themselves. A centralized planner
will be able to more authoritatively settle the interdependent issues. On the other hand, when a plan is
complicated such that it requires diverse expertise and resources, it might be
better to carry out distributed planning where each agent tackles one part of
the plan—a subplan—with its expertise and knowledge of resources. That way, it is easier for the agents to
abstract the planning tasks and come to agreements without having to worry
about the complicated details. To answer
the questions, first let us look at the following table. First of all, we assume that there are
either central plans or distributed plans.
|
|
Not Complicated |
Complicated |
|
Few Interdependencies |
Any |
Distributed Planning |
|
Many Interdependencies |
Centralized Planning |
Distributed Planning |
In my opinion, distributed planning is more
important to have in a problem where it is complicated and has many
interdependencies. My rationale is that
with distributed planning, the agents will be able to use their respective
expertise and knowledge to come up with subplans and can use abstraction to
address interdependencies. In addition,
distributed planning provides the highest flexibility, modularity, and
scalability as a problem solving strategy, compared to centralized
planning. So, when a problem is highly
complicated, go for distributed planning and then solve the interdependent
issues locally and distributedly.
8Q2:
One
of the benefits of result sharing is confidence. Could it happen that an agent A is only willing to share
or compare its results with an agent B instead of C (since A ‘thinks’
B is more reliable or competent agent compared to C)? Do we need to ensure fairness that all
agents should share their results to every other agent in the system? In other words, do we need to prevent
‘discrimination” among agents?
A2: Good question! First of all, yes, an agent A can make the decision not share its results with another agent B because of its perception of the other agent’s reliability or competence. The agent A may eventually allow B to share results as it learns from other agents about B’s improved reliability or competence. Now, if the system is made up of selfish agents, yes, then we may need to ensure fairness so that all agents share. This is designed to take away a degree of their autonomy for coherence. However, if the system is made up of cooperative agents, then we may actually want to promote discrimination among agents and let them practice their full autonomy. Why? This is intuitive. On a team, if a team member is very reliable and trustworthy, then we let the team member make the decision to whether to share. Let the team member process and think so the team does not have to. In a cooperative system, agents are motivated to cooperate when they can. So, if they do not want to share, then it must be for a legitimate reason. And that is good. That is the purpose of having a multiagent system: let the agents make their decisions locally. And the system as a whole exhibits a coherent behavior. For example, if we use the result sharing scenario, by being discriminative with valid reasons, then we can expect the agents to share only reliable results and thus prevent bad results from getting propagated throughout the system!
8Q3:
…
What will usually happen to an agent when its plan is always rejected by other
agents? Will that agent still maintain
its cooperativeness? Or, will it
[become] uncooperative?
A3: This depends on the design of the agent. Does the agent have learning capabilities? If yes, is it able to learn to build better plans from the rejections (and hopefully, the associated criticisms)? If the agent does not have such learning capabilities, then does the agent have a profiling system such that it knows that it cannot cooperate with a particular agent since they always have conflicting plans? If yes, then the agent may realize that it is not appropriate for it to cooperate with that particular agent, and thus it can concentrate on its activities with other agents. If the agent is designed to be always cooperative and without good “cooperative” instinct to generate good plans, then the agent will always try to cooperate futilely. This is a good point.
8Q4:
… an
agent can relax constraints at anytime if it needs to do so. However, [whenever’ a requirement is
changed, is not it possible that all partial solutions in the shared repository
will need to be updated or removed since a changed constraint may affect all
other solutions? Doesn’t this just
restart the entire procedure and put us back at the start? How do we know that something can be learned
from this? If nothing can be learned,
couldn’t this process repeat continually?
A4: Yes, a changed constraint will affect other solutions and this is what we usually call constraint propagation or truth maintenance. And the other partial solutions in the shared repository will need to be examined. Those no longer apply will be removed. Yes, sometimes this just restarts the entire procedure and puts us back at the start. But sometimes, we only have to backtrack just a few steps. Please refer to Chapter 4 of the textbook on algorithms for constraint satisfaction.
How do we know something can be learned from this? The agents can learn of course. A changed requirement that causes a lot of changes (ripple effects) in the system can be marked so that the agents will be more careful in making a commitment based on the requirement that (a) may changed often, or (b) may cause a lot of grief if changed. The decisions as a result of that requirement can be (a) deferred to make sure the changes in the requirement are already made, or (b) even performed first to ensure the best flexibility is guaranteed that requirement. If this is not done or designed well, yes, the system may oscillate continually and may not converge.
Q5:
How is task sharing for interdependent tasks accomplished? Or, is it usually simply a matter of good
result sharing in those cases? How will
interdependent tasks sharing differ for homogeneous and heterogeneous
systems? For that matter, which types
of results sharing are best suited for heterogeneous and homogeneous systems?
A5: Task sharing for interdependent tasks can be accomplished by good planning. For example, when an agent decomposes a problem into different subproblems (and consequent subtasks), the interdependent tasks can be identified: tasks that need to use the same resources, a pair of tasks in which one needs the result from the other to trigger its own activity, and so on. Ideally, if the agent can assign the interdependent tasks to a single agent, that would be great. But, when it is not possible to do so (especially when a single agent does not have the expertise to accomplish both the interdependent tasks), then planning is required where (a) synchronization is inserted, (b) timely communication is scheduled, (c) communication of results is scheduled, and (d) some social rules are imposed (such as “handshaking”, etc.). And then sharing can occur.
Interdependent tasks sharing will not differ much for homogeneous and heterogeneous systems. The underlying strategy is very similar. Think about why tasks are shared. In a heterogeneous system, maybe the reason is because an agent does not have the expertise to do both tasks. Then what is the reason in a homogeneous system? Maybe an agent does not have the time or resources to do both tasks. If that is the case, the sharing will be planned just like the above.
In general, homogeneous systems with the same problems for the agents are more suitable for results sharing, and heterogeneous systems are for tasks sharing. In a homogeneous system, since the capabilities of the agents are the same, shared repositories and negotiated search is a suitable approach. In a heterogeneous system, functionally accurate cooperation is suitable.
Q6:
What are ‘demand profiles’ in the context of Distributed Constrained
Heuristic Search and how do they effect the agents in their decisions?
A6: The ‘demand profiles’ in the context of DCHS are the measures of how demanding the constraints are. The more demanding a constraint, the more difficult it is to satisfy. And usually, the agents decide on the values for more demanding constraints first.
Q7:
Organizational Structuring seems to make sense as an idea, but when and
why should it be applied to real problems?
A7: Remember that organizational structuring is not flexible. The pattern-response rules are fixed. So, it is applied when the environment of the problems is relatively static and the agents are not very intelligent and not very flexible. It is applied to real problems because of its speed and because it is also easy to design and implement.
Q8:
When creating a system where agents are communicating to each other, how
do we know if too much communication is too much, and if too little is not
enough? … Is there some type of ratio
that can be calculated, or are adjustments done empirically?
A8: Good question. Usually, communication is too much when the agents are processing, sending, and receiving too many message and only use a few of them to make decisions. For example, if agent A sends ten messages to agent B about the current temperature at an interval of 15 minutes, and agent B only acts upon the last report (current temperature = 75F), then that means agent A has sent 9 useless messages. Hopefully, through this exercise, agent A learns that B will only act when the temperature is 75F and thus will from now on send a message to B when the temperature is 75F. That will save communication. Another scenario is that agent A receives many messages and derives its belief, desire, and intention states from the messages. However, if the agent can handle all these messages in time to carry out its intentions, then there is too much communication. Finally, if communication causes the agents to slow down, then it is too much.
Usually, communication is too little when (a) the agents make incorrect decisions due to outdated information, (b) the agents have to wait for information to be updated before carrying out activities, and (c) the agents do not coordinate their actions well.
Yes, there are different types of ratio and adjustments can be done empirically. And the ratios can be modeled using the above examples.