CSE 571 LECTURE NOTES FOR OCTOBER 20TH, 2003

Aleks Yasnogorodskiy

October 2003

CSE 571 Lecture Notes

Review

• Domain and Observations.

• Domain:

– a causes f if p_{1}, ... p_{m}, ¬q_{1}, ... ¬q_{n} – a causes ¬g if p_{1}, ... p_{m}, ¬q_{1}, ... ¬q_{n}

• Observations:

– initially f.

– initially ¬g.

Translation to AnsProlog.

• Domain:

– holds(f, res(a,s)) ← holds(p_{1}, s),...,holds(p_{m}, s), ¬holds(q_{1}, s),...,¬holds(q_{n}, s).

– ab(f, a, S) ← holds(p_{1}, s),...,holds(p_{m}, s), ¬holds(q_{1}, s),...,¬holds(q_{n}, s).

– ¬holds(g, res(a,s)) ← holds(p_{1}, s),...,holds(p_{m}, s), ¬holds(q_{1}, s),...,¬holds(q_{n}, s).

– ab(g, a, S) ← holds(p_{1}, s),...,holds(p_{m}, s), ¬holds(q_{1},

s),...,¬holds(q_{n}, s).

• Observations: – holds(f, s_{0}).

– ¬holds(g, s_{0}).

Inertia Rules:

• holds(F, res(A, S)) ← holds(F, S), not ab(F, A, S).

• ¬holds(F, res(A, S)) ← ¬holds(F, S), not ab(F, A, S). Splitting.

• holds(F, s_{0}) ← not ¬holds(F, s_{0}).

• ¬holds(F, s_{0}) ← not holds(F, s_{0}).

– This type of setup is perfect for splitting.

– This will be complete.

• Examples – ¬alive after shoot.

– ¬holds(alive, res(shoot, s_{0})).

– :- not ¬holds(alive, res(shoot, s_{0})).

• Enumeration.

– Write observations as constraints. This will eliminate inconsistant answer sets. This will also give you more facts.

Planning.

• Find x_{1}...x_{n} such that (D,O) entail goal after x_{1}...x_{n}.

• O is complete - for every fluent we know exactly if that fluent is true or false.

• Actions a_{1}, ... a_{n} enumerate action occurances.

• 1{ occurs(A,T) : action(A) }1 :- time(T).

• For each time T, only one action occurs.

• What happens if B can not occur right after A? Easy to encode:

• :- occurs(A,T), occurs(B, T+1).

Things to Think About.

• Why doesn’t this planning work if we have incomplete information?

• Read Chapter 5 for more discussion on planning.

• Read the book for discussions of static constraints (at(Track, X), in(Y, Track) ⇒ at(Y,X).