1 / 43

Some slides are taken from Baral’s talk at AAAI-05

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

cameo
Download Presentation

Some slides are taken from Baral’s talk at AAAI-05

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Answer Set Programming (ASP):A new Paradigm for Knowledge Representation and Constraint Programming Some slides are taken from Baral’s talk at AAAI-05

  2. 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.

  3. 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.

  4. 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.

  5. An Example Does tweety fly? fly(x)  bird(x), not abnormal(x). bird(tweety). what if we know abnormal(tweety).

  6. 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.

  7. 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

  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).

  9. 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.

  10. 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

  11. Examples P4 = {a  not b.; b  not a.} Two stable models: {a} and {b}.

  12. 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.

  13. 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

  14. 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

  15. 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.

  16. 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.

  17. 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.

  18. 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

  19. 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.

  20. 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?

  21. 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).

  22. 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).

  23. 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).

  24. 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.

  25. 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.

  26. 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).

  27. 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.

  28. Hamiltonian Cycle Don’t forget to say that every vertex must be reached.  vertex(U), not reachable(U).

  29. 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}?

  30. 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} .

  31. 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}

  32. 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)

  33. 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.

  34. Smodels • Syntax largely borrowed from Prolog. a :- not b. b :- not a. :- a. • A number of language constructs for convenience

  35. 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.

  36. 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

  37. 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.

  38. 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).

  39. 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) }.

  40. 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.

  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).

  42. 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

  43. 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.

More Related