[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