[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 'prodigy-sussman



The code description is the right one...

Rao

ps: The reason it is called an anomaly is that it is a problem where if you 
achieve one of the subgoals, then to achieve the second one you have to 
undo the first one.. (suppose you do on b, c first-you just put B on top of 
C giving B,C,A stack. To get the second goal on A,B, we need to destroy 
this stack to get to A. Similarly, if you do on A,B first, you will take C 
off A, put it on B. Now to do on B,C, you have to take A off B and put B on 
C--which undoes on-A-B. So there is no way of working on one subgoal first 
and then the other subgoal. Historically the first planner--called the 
STRIPS planner--could solve only those problems for which the subgoals can 
be achieved serially without undoing the previous one--if there are n 
subgoals, atleast one of the n! subgoal serializations must be serializable 
this way. Sussman anomaly problem was created to show that these planners 
are incomplete... they can't solve all problems.

Interestingly, if you add the subgoal On(C,Table) to the sussman anomaly 
problme--which increases the subgoals to 3, but essentially is just 
elaborating the properties of the goal state--the problem is then 
serializable. THis kind of shows that a more complete specification of the 
goal state can make a problem easier to solve

Rao


At 11:00 AM 11/11/2001 -0700, you wrote:
>Hi Rao,
>
>   Thanks for your solution. Now my h1 works correctly! I'm testing task 1
>('prodigy-sussman), I found out your description of 'prodigy-sussman does
>not match with the code that you gave us.
>
>In your description, you have:
>"The problem is: A is on C, C is on Table, B is on table, A and B are clear"
>
>In the code, it says:
>"(on-table a) (on-table b) (on c a) (clear b) (clear c)" in :init of :domain
>'prodigy-sussman.
>
>   So which one should we follow? Thanks, and sorry to keep bothering.
>
>Luis