Example

Example: Putting on a pair of shoes

Init()Init()

Goal(RightShoeOnLeftShoeOn)Goal(RightShoeOn \wedge LeftShoeOn)


Action(RightShoe,PRECOND: RightSockOn,EFFECT: RightShoeOn) Action(\textcolor{pink}{RightShoe}, \text{PRECOND: }RightSockOn, \text{EFFECT: }RightShoeOn) 

Action(RightSock,EFFECT: RightSockOn) Action(\textcolor{pink}{RightSock}, \text{EFFECT: }RightSockOn) 


Action(LeftShoe,PRECOND: LeftSockOn,EFFECT: LeftShoeOn) Action(\textcolor{pink}{LeftShoe}, \text{PRECOND: }LeftSockOn, \text{EFFECT: }LeftShoeOn) 

Action(LeftSock,EFFECT: LeftSockOn)Action(\textcolor{pink}{LeftSock}, \text{EFFECT: }LeftSockOn)

Partial-order planner would come up seperately with:

[RightSock,RightShoe][RightSock, RightShoe] for goal RightShoeOnRightShoeOn

[LeftSock,LeftShoe][LeftSock, LeftShoe] for goal LeftShoeOnLeftShoeOn

Then these sequences would be combined to construct a final plan.

Every action sequence that maintains the partial order is a solution.

"Every linearisation of a partial-order solution is a total-order solution whose execution from the initial state will reach a goal state."

Solution by POP

Actions

Orderings

Links

Open preconditions