1. 算法过程:
//S 是Source,G是目标空间状态
STRIPS(S,G){
IF (S = G) Then 直接返回S;
ELSE
DIFF == difference between S and G
Loop1:
IF empty(DIFF) Then 直接返回失败;
ELSE
D == POP(DIFF);
OPER == operators(D);
/* Put all operators reducing D in OPER */
Loop2:
IF empty(OPER) Then jump Loop1;
ELSE
OP == POP(OPER);
PC == PRECOND(OP);
S1 == STRIPS(S,PC);
IF S1 == FAIL Then jump Loop2;
ELSE
S2 == PERFORM(OP,S1);
S3 == STRIPS(S2,G);
IF S3 == Fail Then jump Loop2;
Return S3;
}
未完,待续。例子很精彩。