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.