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

Slides:



Advertisements
Similar presentations
First-Order Logic Chapter 8.
Advertisements

Big Ideas in Cmput366. Search Blind Search State space representation Iterative deepening Heuristic Search A*, f(n)=g(n)+h(n), admissible heuristics Local.
Midwestern State University Department of Computer Science Dr. Ranette Halverson CMPS 2433 – CHAPTER 4 GRAPHS 1.
Answer Set Programming Overview Dr. Rogelio Dávila Pérez Profesor-Investigador División de Posgrado Universidad Autónoma de Guadalajara
Logic CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
Logic.
CPSC 422, Lecture 21Slide 1 Intelligent Systems (AI-2) Computer Science cpsc422, Lecture 21 Mar, 4, 2015 Slide credit: some slides adapted from Stuart.
Knowledge Representation and Reasoning (KR): A vibrant subfield of AI Jia You.
Cs774 (Prasad)L7Negation1 Negation by Failure
Programming with Constraints Jia-Huai You. Subject of Study Constraint Programming (CP) studies the computational models, languages, and systems for solving.
Answer Set Programming vs CSP: Power of Constraint Propagation Compared Jia-Huai You ( 犹嘉槐 ) University of Alberta Canada.
Logic in general Logics are formal languages for representing information such that conclusions can be drawn Syntax defines the sentences in the language.
1 Programming with Constraints Jia-Huai You Constraint programming languages - based on non-monotonic logic - Answer set programming (ASP) Knowledge Representation.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
CS 561, Sessions Knowledge and reasoning – second part Knowledge representation Logic and representation Propositional (Boolean) logic Normal forms.
CPSC 322, Lecture 12Slide 1 CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12 (Textbook Chpt ) January, 29, 2010.
CS 460, Sessions Knowledge and reasoning – second part Knowledge representation Logic and representation Propositional (Boolean) logic Normal forms.
Inference and Resolution for Problem Solving
Logical Agents Chapter 7. Why Do We Need Logic? Problem-solving agents were very inflexible: hard code every possible state. Search is almost always exponential.
Knowledge in intelligent systems So far, we’ve used relatively specialized, naïve agents. How can we build agents that incorporate knowledge and a memory?
ASP vs. Prolog like programming ASP is adequate for: –NP-complete problems –situation where the whole program is relevant for the problem at hands èIf.
Logical Agents Chapter 7 Feb 26, Knowledge and Reasoning Knowledge of action outcome enables problem solving –a reflex agent can only find way from.
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
KNOWLEDGE REPRESENTATION, REASONING AND DECLARATIVE PROBLEM SOLVING Chitta Baral Arizona State University Tempe, AZ
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
Learning by Answer Sets Chiaki Sakama Wakayama University, Japan Presented at AAAI Spring Symposium on Answer Set Programming, March 2001.
1 Knowledge Based Systems (CM0377) Lecture 4 (Last modified 5th February 2001)
‘In which we introduce a logic that is sufficent for building knowledge- based agents!’
Steffen Staab Advanced Data Modeling 1 of 32 WeST Häufungspunkte Bifurkation: x n+1 = r x n (1-x n ) Startwert x 0 = 0,25.
1 Logical Agents CS 171/271 (Chapter 7) Some text and images in these slides were drawn from Russel & Norvig’s published material.
Lparse Programs Revisited: Semantics and Representation of Aggregates Guohua Liu and Jia-Huai You University of Alberta Canada.
CSC 172 P, NP, Etc. “Computer Science is a science of abstraction – creating the right model for thinking about a problem and devising the appropriate.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
S P Vimal, Department of CSIS, BITS, Pilani
LDK R Logics for Data and Knowledge Representation PL of Classes.
CS 4100 Artificial Intelligence Prof. C. Hafner Class Notes Jan 17, 2012.
1 Logical Agents CS 171/271 (Chapter 7) Some text and images in these slides were drawn from Russel & Norvig’s published material.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
1 Chapter 34: NP-Completeness. 2 About this Tutorial What is NP ? How to check if a problem is in NP ? Cook-Levin Theorem Showing one of the most difficult.
Logical Agents Chapter 7. Outline Knowledge-based agents Logic in general Propositional (Boolean) logic Equivalence, validity, satisfiability.
CPSC 422, Lecture 21Slide 1 Intelligent Systems (AI-2) Computer Science cpsc422, Lecture 21 Oct, 30, 2015 Slide credit: some slides adapted from Stuart.
Inverse Entailment in Nonmonotonic Logic Programs Chiaki Sakama Wakayama University, Japan.
© Copyright 2008 STI INNSBRUCK Intelligent Systems Propositional Logic.
1 Reasoning with Infinite stable models Piero A. Bonatti presented by Axel Polleres (IJCAI 2001,
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
NPC.
CSC 413/513: Intro to Algorithms
Logics for Data and Knowledge Representation ClassL (part 1): syntax and semantics.
CSE 421 Algorithms Richard Anderson Lecture 27 NP-Completeness Proofs.
Answer Set Programming: A new Paradigm for Knowledge Representation and Constraint Programming Russell and Norvig 10.7 Lecture Notes for Cmput 366 (Some.
Logics for Data and Knowledge Representation ClassL (part 1): syntax and semantics.
Artificial Intelligence Logical Agents Chapter 7.
Logical Agents. Outline Knowledge-based agents Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability.
The Theory of NP-Completeness
More NP-Complete and NP-hard Problems
Richard Anderson Lecture 26 NP-Completeness
Knowledge and reasoning – second part
Richard Anderson Lecture 26 NP-Completeness
Logics for Data and Knowledge Representation
Logic: Top-down proof procedure and Datalog
NP-Complete Problems.
Knowledge and reasoning – second part
Back to “Serious” Topics…
The Theory of NP-Completeness
Instructor: Aaron Roth
Lecture 24 Classical NP-hard Problems
Answer Set Programming
Representations & Reasoning Systems (RRS) (2.2)
Logical Agents Prof. Dr. Widodo Budiharto 2018
Presentation transcript:

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  B 1, …, B m, not C 1, …, not C n where A, B j s and C k s 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 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  B 1, …, B m, not C 1, …, not C n. if B i are satisfied in M and not C i are also satisfied (not C j is satisfied if C j is not in M), then A is in M. Every A  M can be derived 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 reduct of P w.r.t. M = {h  b 1, …, b m | h  b 1, …, b m, not c 1, …, not c n is in P and no c i 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:  B 1, …, B m, not C 1, …, not C n. It says no stable model may contain all B j s and none of C j s. This can actually be encoded by a rule, where f is a new symbol: f  not f, B 1, …, B m, not C 1, …, not C n.

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 v 0, 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(v 0,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 {a 1, …, a m, not b 1, …, not b k }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 {l 1, = w 1 …, l m = w m }U where each l i is an atom or a not_atom. It’s satisfied when the sum of the satisfied l i’ ’s is between L and U. When all w i = 1, it becomes a cardinality constraint.