SLIDE 19 Answer Set Programming
Answer Set Planning: Block World Domain
Typical ASP encoding: %Defining the time constants and objects time(0..length). block(a). block(b). block(c). %Defining fluents fluent(on(X,Y)):- block(X), block(Y),X!=Y. fluent(onTable(X)):- block(X). fluent(clear(X)):- block(X). ... %Defining actions action(stack(X,Y)):- block(X), block(Y), X!=Y. action(putdown(X)):- block(X). ... %Action effects & precondition :- not holds(clear(X), T), occ(pickup(X), T). holds(-onTable(X), T+1):- occ(pickup(X), T). holds(holding(X), T+1):- occ(pickup(X), T). .... %Planning holds(on(c,b), 0). holds(onTable(b), 0). ... 1 {occ(A,T) : action(A) } 1 :- time(T). goal(T) :- holds(on(a,b), T), holds(on(b,c), T), holds(onTable(c), T). :- not goal(length).
c b a Start c b a Goal
Tran Cao Son (NMSU) LP & NLP & Planning Dresden 2016 10 / 29