Title: Answer Set Programming (ASP): A new Paradigm for Knowledge Representation and Constraint Programming
1Answer Set Programming (ASP)A new Paradigm for
Knowledge Representation and Constraint
Programming
-
- Some slides are taken from Barals talk at AAAI-05
2Intelligent Agent
- Can acquire knowledge through various means such
as learning from experience, observations,
reading, etc., and - Can reason with this knowledge to make plans,
explain observations, achieve goals, etc.
3To learn knowledge and to reason with it
- we need to know how to represent knowledge in a
computer readable format. - We need languages and corresponding methodologies
to represent various kinds of knowledge.
4Inadequacy of first order logic
- They are monotonic More information one has,
more consequences one gets. - Human communication is typically based on closed
world assumption. -
5An Example
- Does tweety fly?
- fly(x) ? bird(x), not abnormal(x).
- bird(tweety).
-
- what if we know
-
- abnormal(tweety).
6Answer Set Programming (ASP)
- Key idea A problem is solved by representing it
by a logic program whose stable models (also
called answer sets) correspond to solutions to
the problem. - The most popular form of programsnormal logic
programs, consisting of rules of the form -
- A ? B1, , Bm, not C1, , not Cn
- where A, Bjs and Cks are atoms in propositional
logic - not Ci is called a default negation.
-
7Ground vs Non-Ground
- A function-free program can be grounded
- p(X) ? q(X), not s(X) . Function-free
- p(X) ? q(f(X)), not s(X). Not function-free
8- Suppose we have constants a,b,c in our program,
the rule - p(X) ? q(X), not s(X).
- is a compact representation of three ground rules
- p(a) ? q(a), not s(a).
- p(b) ? q(b), not s(b).
- p(c) ? q(c), not s(c).
9Semantics
- Informally, a stable model M of a ground program
P is a set of ground atoms such that - Every rule is satisfied, i.e., for any rule in P
- A ? B1, , Bm, not C1, , not Cn.
- if Bi are satisfied in M and not Ci are also
satisfied (not Cj is satisfied if Cj is not in
M), then A is in M. - Every A ? M can be derived from a rule by a
non-circular reasoning.
10Examples
- P1 a ? a.
- M a is not a stable model (the
derivation of a - is based on a circular reasoning),
- but M is
- P2 a ? not b.
- a is the only stable model
- P3 a ? not a.
- It has no stable model
-
11Examples
- P4 a ? not b. b ? not a.
- Two stable models a and b.
12Examples
- P4 a ? not b. b ? not a.
- Two stable models a and b.
- P5 a ? not b. b ? not a. a ? not a.
- a is the only stable model.
13Does tweety fly?
- fly(X) ? bird(X), not ab(X).
- ab(X) ? penguin(X).
- bird(X) ? penguin(X).
- bird(tweety).
- - One stable model which contains fly(tweety).
- But if we add
- penguin(tweety).
- We can no longer conclude fly(tweety)
- fly(tweety) is false w.r.t. the only stable model
14So, what exactly is a stable model of a normal
program
- Idea you guess a set of atoms and verify it is
indeed exactly the set of atoms that can be
derived - The reduct of P w.r.t. M
- h ? b1, , bm
- h ? b1, , bm, not c1, , not
cn is in P - and no ci is in M
- M is a stable model of P iff M is the least
model of
15Stable model
- For a normal program without negation (typically
called positive program), its least model is the
set of its atomic consequences. - P
- a ? not b.
- b ? not a.
- M a is a stable model, since is
- a ?.
- its set of (atomic) consequences is precisely M
itself.
16Stable model
- Why
- a ? not a.
- has no stable model?
- The empty set is not a stable model. (Why?)
- If Ma were a stable model, the reduct of
program wrt a is the empty set, whose set of
(atomic) consequences is also empty, not the same
as M.
17Constraints for disallowing
- The head of a rule may be empty
- ? B1, , Bm, not C1, , not Cn.
- It says no stable model may contain all Bjs and
none of Cjs. - This can actually be encoded by a rule, where f
is a new symbol - f ? not f, B1, , Bm, not C1, , not Cn.
18Generate-and-constrain first generate
- To specify both possibilities a is in a solution
or not, we can use a dummy a - a ? not a.
- a ? not a.
- Two stable models a, a the latter
represents that a is not in solution
19Generate-and-constrain first generate
- To specify all subsets of a,b,c, we can write
- a ? not a. b ? not b. c ? not
c. - a ? not a. b ? not b. c ? not
c. - Eight stable models each corresponding to a
subset, e.g. a, b,c represents that a is in
it, but not b, nor c.
20Generate-and-constrain then constrain
- Any subset of a,b,c such that a and b cannot be
together. - a ? not a. b ? not b. c ? not
c. - a ? not a. b ? not b. c ? not
c. - ? a ,b.
- What if we want to say whenever a is in a stable
model, so is b?
213-colorability
- Whether 3 colors, say red, blue, and yellow, are
sufficient to color a map - A map is represented by a graph, with facts about
nodes and arc as given, e.g, - vertex(a).
- vertex(b).
- arc(a,b).
-
223-colorability
- Every vertex must be colored with exactly one
color - color(V,r) ? vertex(V), not color(V,b), not
color(V,y). - color(V,b) ? vertex(V), not color(V,r), not
color(V,y). - color(V,y) ? vertex(V), not color(V,b), not
color(V,r). - No adjacent vertices may be colored with the same
color - ? vertex(V), vertex(U), arc(V,U),col(C),
color(V,C), - color(U,C).
- Of course, we need to say what colors are
- col(r). col(b). col(y).
-
23General colorability
- A different encoding (more general but subtler)
- color(V,C) ? node(V), col(C), not
otherColor(V,C). - otherColor(V,C) ? node(V), col(C), not
color(V,C). -
- ? node(V), col(C1), col(C2), color(V,C1),
color(V,C2), C1? C2. - ? node(V), col(C), not color(V,C).
- ? node(V), node(U), V ? U, arc(V,U), col(C ),
color(V,C), color(U,C).
24Hamiltonian Cycle
- Given a set of facts defining the vertices and
edges of a directed graph and a starting vertex
v0, find a path that visits every vertex exactly
once.
25Hamiltonian Cycle
- Any edge could be on such a path. We use in(U,V)
to represent that edge(U,V) is on such a path. -
- in(U,V) ? edge(U,V), not out(U,V).
- out(U,V) ? edge(U,V), not in(U,V).
- out(U,V) is a dummy representing edge(U,V) is not
on such a path.
26Hamiltonian Cycle
- A path must be chained to form a sequence over
the edges on it - reachable(V) ? in(v0,V).
- reachable(V) ? reachable(U), in(U,V).
27Hamiltonian Cycle
- A vertex cannot be visited more than once.
- This can be defined as no more than one edge on
such a path that goes into any vertex (similarly
out of such an edge) - ? edge(U,V),in(U,V), edge(W,V)in(W,V), U ? W.
- ? edge(U,V),in(U,V), edge(U,W),in(U,W), V ?
W. -
-
-
28Hamiltonian Cycle
- Dont forget to say that every vertex must be
reached. -
- ? vertex(U), not reachable(U).
29Extensions Cardinality constraint
- A cardinality constraint is of form
- L a1, , am, not b1, , not bk U
- The constraint is satisfied by an interpretation
I (a set of atoms) if the cardinality of the
subset of the literals satisfied by I is between
integers L and U, inclusive. - A cardinality constraint can be used anywhere in
a rule. - E.g. P 0a, b, not d2 ?.
- Is the head satisfied by interpretation
a,b? -
-
30Cardinality constraint
- Generate all subsets of a,b,c,d such that
whenever a is in it so is b - 0a, b, c, d4 ?.
- b ? a.
- As 4 is the max number of literals that may be
satisfied, you may omit it for simplicity - 0a, b, c, d ?.
31Cardinality constraint
- Generate all subsets of a,b,c,d such that if a
is not in it, then b is in it. -
- 0a, b, c, d ?.
- b ? not a.
-
- Are they stable models?
- M1 a,b,c M2 b,c,d,e
32ASP Systems
- Smodels (Helsinki Univ. of Tech.)
- DLV (Vienna Univ. of Tech.)
- ASSAT (HK Univ. of Sci. and Tech.)
- Cmodel (U. of Texas at Austin)
- Clasp (Universitat Potsdam)
33The Smodels System
- An efficient system for computing answer sets of
normal programs (later exteneded to disjunctive
programs). - Consists of two parts
- Lparse ground a program
- Smodels compute the stable models of the
grounded program, based on DPLL.
34Smodels
- Syntax largely borrowed from Prolog.
- a - not b.
- b - not a.
- - a.
- A number of language constructs for convenience
35Conditional Literals in Smodels
- A short hand to express a set. It takes the form
- l d
- where l is an atom and d a domain predicate.
- E.g. Set a vertex v to exactly one color among
- red, blue and yellow
- 1 setColor(v,C) color(C)1.
- color(red). color(blue). color(yellow).
- is equivalent to
- 1setColor(v,red), setColor(v,blue),
setColor(v,yellow) 1.
36N-colorability
- every vertex is colored with exactly one color.
- 1 setColor(V,C) col(C) 1 - vertex(V).
- facts representing colors
- col(1..colors).
- no adjacent vertices are colored with the same
color - - vertex(V), vertex(U), arc(V,U), col(C ), U !
V, setColor(V,C), setColor(U,C). - Typical command line
- lparse -c colors3 coloring.lp smodels
37Conditional literals in Smodels
- Example
- 1 p(I,J) d(I,J) 1.
- d(I,J) - d(I),d(J).
- d(1..2).
- The first rule above is equivalent to
- 1 p(1,1),p(1,2),p(2,1),p(2,2) 1.
38Conditional literals in Smodels
- Note the difference with the following program
- 1 p(I,J) d(I) 1 - d(J).
- d(1..2).
- The first rule above is equivalent to
- 1 p(I,1) d(I) 1 - d(1).
- 1 p(I,2) d(I) 1 - d(2).
- which are equivalent to
- 1 p(1,1),p(2,1) 1 - d(1).
- 1 p(1,2),p(2,2) 1 - d(2).
-
39Hamiltonian Cycle Revisited
- Any subset of edges can be on such a path
- in(U,V) ? edge(U,V), not out(U,V).
- out(U,V) ? edge(U,V), not in(U,V).
- Now can be programmed as
- 0 in(U,V) edge(U,V) .
40Represent knowledge about Wumpus World
- There is exactly one wumpus in all rooms
- 1 at(I,J,wumpus) room(I,J) 1.
- room(I,J) - col(I), row(J).
- For a 4 by 4 grid, this is equivalent to exactly
one atom being true in the set of 16 - 1 at(1,1,wumpus), at(1,2,wumpus),. 1.
-
41- One or more adjacent rooms has a pit if breeze at
current room - 1 at(Ni,Nj,pit) adjacent(I,J,Ni,Nj) -
- room(I,J),
- sensor(I,J,none,breeze).
42N-queens problem
- hide.
- show q(X,Y).
- d(1..queens).
- 1 q(X,Y)d(Y) 1 - d(X).
- - d(X), d(Y), d(X1), q(X,Y), q(X1,Y), X1 ! X.
- - d(X), d(Y), d(Y1), q(X,Y), q(X,Y1), Y1 ! Y.
- - d(X), d(Y), d(X1), d(Y1), q(X,Y), q(X1,Y1),
- X ! X1, Y ! Y1, abs(X - X1) abs(Y - Y1).
- - d(X), not hasq(X).
- hasq(X) - d(X), d(Y), q(X,Y).
- Typical command line
- lparse -c queens8 queens.lp smodels
43Weight constraints
- We can replace cardinality by weights
- L l1, w1 , lm wm U
- where each li is an atom or a not_atom. Its
satisfied when the sum of the satisfied lis is
between L and U. - When all wi 1, it becomes a cardinality
constraint.