CSCE 475/896

Topic Summary Assignment 4: 

Search Algorithms for Agents

Questions and Answers

October 3, 2002 

 

Important Note:  Important questions are denoted with a ‘8’ symbol.

 

Important Note:  For the responses to the stupid question, most of you did not mention the issue of an exhaustive search, and map-making.  The exhaustive search is a way to go through every city corner systematically until you find the building.  The map-making part is to make sure that you record your past experiences (in a memory that you can access) so that your next decision (which street to take, for example) can be based on.

 

Important Note:  Some of you criticized that the real-world situations to apply the three classes of search algorithms were not clearly explained.  Here are some real-world examples.

 

(a)    Constraint Satisfaction:  An intelligent meeting scheduler.  This software takes as input the weekly schedules of all members of a team in a company.  Whenever there is a meeting to be scheduled, this software will look at every member’s schedule and attempt to find a meeting time that will satisfy all constraints.  If not, it will try to find a meeting time that will have the least number of conflicts and try to relax the constraints for those members whose schedules conflict with this proposed meeting time.  Our department, our own Dr. Chouiery, has built a TA assignment scheduler.  This scheduler takes as input the preferences, course loads, course schedules, year in school, ITA qualifications, recommendations, TA evaluations, and so on and tries to assign a TA to each class.  That is constraint satisfaction.

(b)    Path-Finding:  A self-diagnostic system aboard a space shuttle.  There is a mal-function.  The goal is to find out why.   So the goal state is the reason for this mal-function.  The system starts performing tests on every possible reasons for the mal-function: the engine, the mechanics, the hydraulics, the electrical systems, the control systems, etc.  Sometimes, it will go down a path and realize that it is not the cause.  Thus, it will backtrack and continue on.  This is path-finding.  A travel agent.  Your goal is to get to City Y from City X.  You give the agent your specifications: dates, budget, etc.  The travel agent searches the airlines and online websites for the best service (get to City Y fast, on-time, and cheap, for example).  That is path-finding.

(c)    Two-Player Games:  Unlike the above two categories, algorithms in this group are not usually implemented as programs.  However, these algorithms are practiced in real-world applications whenever one needs to figure out what to do when it considers what the opponent might do.  In business, micro-economics, law, psychology, and so on, two-players games and the associated game theories are used.  Of course, in chess programs and some of the more advanced computer games, two-player game strategies are also used.

 

Q1:  In the robot example of moving target search … if the target T actively avoids the problem solving robot/agent PS, can PS “influence” or “persuade” T to be cooperative (i.e., to try to reach PS)?  If yes, under what circumstances?

 

A1:  First of all, what is the role of the target?  Is the role of the target to avoid being found?  In the moving target search, I believe that the role of the target is rather passive.  If it changes its state, it will propagate the changes to the PS.  If that is the case, then T does not need to be persuaded.


Now, if T tries to avoid PS, and PS tries to reach T, then the two agents are playing a game.  If that is the case, then PS cannot persuade T.  Of course, PS can implicitly perform some actions that will cause T to move in a direction that PS want—misdirection, for example. 

 

Q2:  When we design an agent to solve, for example, a path-finding problem, do we have to program every suitable algorithm (in this case, the Learning Real-time A*, the Real-time A*, the Moving Target Search Algorithm, etc.) into the agent?  Or, will the agent eventually learn to create its own efficient algorithms?

 

A2:  In many systems, researchers have used hybrid approaches.  In this case, they would implement all the algorithms.  Depending on the description of a problem, the agent picks the correct algorithm.  The agent can also learn from its experience—how much time does the agent spend to solve the problem, how many states visited, how many messages communicated, etc.—to eventually match different algorithms to different problems.

 

Q3:  When we talk about real-time multiagent search, we say it is more efficient because agents share experiences.  I do not agree on this.  Multiagent search saves time because more computational power and storage are involved.  But it couldn’t reduce the number of nodes visited in a search tree.

 

A3:  Think about it this way.  Let suppose that we want to buy a house-warming present for your friend.  There are many options.  You search for the best option by asking other friends and by searching your own memory.  And then you buy your friend a big-screen TV.  Your friend says to you, “Oh, sorry.  John has already bought me a big-screen TV for the house-warming party.”  Then what do you do?  You return the big-screen TV to the store, and try to find another present for your friend.  This is search.  However, if you had asked your friend about what he or she wanted (or what he or she didn’t have), then you would have not had to go through the trouble of buying the big-screen TV and returning it later.  So, here, a multiagent search saves time, but also reduces the number of options an agent will have to examine.  Remember, in a multiagent system, some agents may know what other agents do not know.  So, by finding what the other agents know, an agent can very effectively prune its own search space—and thus reducing the number of nodes visited in a search tree.  Humans do this all the time. 

 

Q4:  Assuming that the goal states are all known, can RTBS be used in situations with multiple goal states?  Would this require starting multiple searches from the initial state, each looking for a specific goal state? Or would it be too horribly inefficient to be worthwhile?

 

A4:  Interesting question!  First, my question is this:  is the problem solved once one of the goal states is reached? 

 

If yes, here is the response.  Yes, RTBS can be used in situations with multiple goal states.  This would not require starting multiple searches from the initial state.  One single search from the initial state is enough.  The goal states can each move towards the initial state.  One of them will meet up with the initial state sooner or later.  And thus, the problem is solved.  If you have a parallel algorithm to do this, or a distributed system to do this, it would be quite efficient.

 

If no, here is the response.  Yes, RTBS can be used in situations with multiple goal states.  This would require starting multiple searchers from the initial state since all the goal states must be reached.  In this case, then since it is necessary to do so, it is no longer a matter of inefficiency.

8 Q5:  How does the h*(i) function work in practice?  Estimating optimality seems like a difficult and potentially risky problem unto ifself.

 

A5:  In practice, h*(i) function is sometimes determined by computing the similarity between the current state and the goal state.  If they are similar, then the distance between the two are small.  This is not always true (for example, a person standing next to the exit, in the maze, but locked by a wall that denies his/her access to the exit), but it can be a good estimate (for example, tic-tac-toe).  Here we actually are not trying to estimate optimality.  The goal of heuristic search (as described in Readings #10) is to get the goal state without having to traverse too much of the search space, and with a path that is optimal enough.  Sometimes, if you overestimate your h*(i) function (a far-from-goal state is mistaken as a near-to-goal state), then your search becomes too aggressive and you may end up doing quite a bit of backtracking and jumping from branch to branch.  Sometimes, if you underestimate your h*(i) function (a near-to-goal state is mistaken as a far-from-goal state), then your search becomes too conservative and you may end up traversing many more nodes than necessary.

 

In Chess, experts score each board diagram with a “goodness” score.  In this case, a “good board diagram” is assumed to likely to lead to a winning goal state.  So, the experts do not have to worry about the actual distance between the current board diagram and the winning board diagram (too many winning goal states!).