430 likes | 578 Views
Answer Set Programming (ASP): A new Paradigm for Knowledge Representation and Constraint Programming. Some slides are taken from Baral’s talk at AAAI-05. Intelligent Agent. Can acquire knowledge through various means such as learning from experience, observations, reading, etc., and
E N D
Answer Set Programming (ASP):A new Paradigm for Knowledge Representation and Constraint Programming Some slides are taken from Baral’s talk at AAAI-05
Intelligent 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.
To 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.
Inadequacy of first order logic • They are monotonic: More information one has, more consequences one gets. • Human communication is typically based on closed world assumption.
An Example Does tweety fly? fly(x) bird(x), not abnormal(x). bird(tweety). what if we know abnormal(tweety).
Answer 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 programs—normal 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.
Ground 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
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).
Semantics Informally, a stable modelMof a ground program Pis 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 Mand not Ci are also satisfied (not Cjis satisfied if Cjis not in M), thenA is in M. • Every A M can bederived from a rule by a non-circular reasoning.
Examples 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
Examples P4 = {a not b.; b not a.} Two stable models: {a} and {b}.
Examples 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.
Does 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
So, 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 reductofP 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
Stable 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.
Stable model Why a not a. has no stable model? • The empty set {} is not a stable model. (Why?) • If M={a} 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.
Constraints 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.
Generate-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
Generate-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.
Generate-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?
3-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).
3-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).
General 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).
Hamiltonian 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.
Hamiltonian 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.
Hamiltonian 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).
Hamiltonian 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.
Hamiltonian Cycle Don’t forget to say that every vertex must be reached. vertex(U), not reachable(U).
Extensions: 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 = { 0{a, b, not d}2 . } Is the head satisfied by interpretation {a,b}?
Cardinality constraint Generate all subsets of {a,b,c,d} such that whenever a is in it so is b: 0{a, b, c, d}4 . b a. As 4 is the max number of literals that may be satisfied, you may omit it for simplicity 0{a, b, c, d} .
Cardinality constraint Generate all subsets of {a,b,c,d} such that if a is not in it, then b is in it. 0{a, b, c, d} . b not a. Are they stable models? M1= {a,b,c} M2 = {b,c,d,e}
ASP 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)
The 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.
Smodels • Syntax largely borrowed from Prolog. a :- not b. b :- not a. :- a. • A number of language constructs for convenience
Conditional 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 1{setColor(v,red), setColor(v,blue), setColor(v,yellow)} 1.
N-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 colors=3 coloring.lp | smodels
Conditional 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.
Conditional 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).
Hamiltonian 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) }.
Represent 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.
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).
N-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 queens=8 queens.lp | smodels
Weight constraints We can replace cardinality by weights L {l1, = w1 …, lm = wm}U where each li is an atom or a not_atom. It’s satisfied when the sum of the satisfied li’’s is between L and U. When all wi = 1, it becomes a cardinality constraint.