29
Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto Giunchiglia, Rui Zhang and Vincenzo Maltese

Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Embed Size (px)

Citation preview

Page 1: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Logics for Data and KnowledgeRepresentation

Propositional Logic: Reasoning

Originally by Alessandro Agostini and Fausto GiunchigliaModified by Fausto Giunchiglia, Rui Zhang and Vincenzo Maltese

Page 2: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Outline Review of PL: Syntax and semantics Reasoning in PL

Typical tasks Calculus Problems with reasoning

Calculus using tableaux The DPLL Procedure for PSAT

Main steps The algorithm Examples

Observations about the DPLL Conclusions on PL

Pros and cons Examples

2

Page 3: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Summary about PL so far PROPOSITIONS

Propositional logic (PL) is the simplest logic which deals with propositions (no individuals, no quantifiers)

Propositions are something true or false SYNTAX

We need to provide a language, including the alphabet of symbols and formation rules to articulate complex formulas (sentences)

A propositional theory is formed by a set of PL formulas SEMANTICS

Providing semantics means providing a pair (M,⊨), namely a formal model satisfying the theory

A truth valuation ν is a mapping L {T, F} Logical implication () Normal Forms: CNF - DNF

3

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 4: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Reasoning Services Basic reasoning tasks for a PL-based system:

Model checking (EVAL) Satisfiability (SAT) reduced to model checking (we

choose an assignment first) Validity (VAL) reduced to model checking (try for all

possible assignments) Unsatisfiability (unSAT) reduced to model checking

(try for all possible assignments) Entailment (ENT) reduced to previous problems

NOTE: SAT/UNSAT/VAL on generic formulas can be reduced to SAT/UNSAT/VAL on CNF formulas

See for instance: http://www.satisfiability.org

4

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 5: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Reasoning in PL Reasoning in PL is the simplest case of reasoning

We use truth tables

In model checking we just verify a given assignment ν

In SAT we try with all possible assignments but we stop when we find the first one which makes the formula true.

5

Given ν(A) = T, ν(B) = F is the formula A B true? YES!

Is A B satisfiable? With ν(A)=T, ν(B)=F we have ν(A B) = FWith ν(A)=F, ν(B)=T we have ν(A B) = FWith ν(A)=T, ν(B)=T we have ν(A B) = T STOP!

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 6: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Calculus Semantic tableau is a decision

procedure to determine the satisfiability of finite sets of formulas.

There are rules for handling each of the logical connectives thus generating a truth tree.

A branch in the tree is closed if a contradiction is present along the path (i.e. of an atomic formula, e.g. B and B)

If all branches close, the proof is complete and the set of formulas are unsatisfiable, otherwise are satisfiable.

With refutation tableaux the objective is to show that the negation of a formula is unsatisfiable.

6

Γ = {(A B), B}

B

A B

A

B

closed

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 7: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Rules of the semantic tableaux Conjunctions lie on the same branch Disjunctions generate new branches The initial set of formulas are

considered in conjunction and are put in the same branch of the tree

() A B () A B --------- ---------

A A | B

B

() A A

--------- ---------

A A

7

(A B) B

B

A B

A

closed

B

(A B)

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 8: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

What is the problem in reasoning in PL? (I) Given a proposition P with n atomic formulas, we have 2n

possible assignments ν !

SAT is NP-complete

In the worst case reasoning time is exponential in n (in the case we test all possible assignments), but potentially less if we find a way to look for “good” assignments (if there is at least an assignment such that ν ⊨ P. We stop when we find it.)

NOTE: the worst case is when the formula is unsatisfiable

Testing validity (VAL) of a formula P is even harder, since we necessarily need to try ALL the assignments. We stop when we find a ν such that ν ⊭ P

8

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 9: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

What is the problem in reasoning in PL? (II) Reducing unSAT to SAT

Unsatisfiability is the opposite of SAT. We stop when we find an assignment ν such that ν ⊨ P.

SAT, VAL, unSAT are search problems

How complex is the task? Notice that what makes reasoning exponential are

disjunctions () because we need to test all possible options Trivially, in case of conjunctions () all the variables must be

true IMPORTANT: Often (when we do not use individuals or

quantifiers) we can reduce reasoning in complex logics to reasoning in PL

9

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 10: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

PSAT-Problem (Boolean SAT) Definition: PSAT = find ν such that ν ⊨ P (Satisfiability

problem)

Is PSAT decidable? YES, BUT EXPENSIVE!

Theorem [Cook,1971] PSAT is NP-completeThe theorem established a “limitative result” of PL (and Logic). A problem is NP-complete when it is very difficult to be computed!

DPLL (Davis-Putnam-Logemann-Loveland, 1962) It is the most widely used algorithm for PSAT It works on CNF formulas It can take from constant to exponential time

10

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 11: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

CNFSAT-Problem Definition: CNFSAT = find ν s.t. ν ⊨ P, with P in CNF

Is CNFSAT decidable? YES, BUT STILL EXPENSIVE!

Like PSAT, CNFSAT is NP-complete.

Converting a formula in CNF It is always possible to convert a generic formula in

CNF, but in exponential time (polynomial in most of the cases).

It causes an exponential blow up in the length of the formula.

11

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 12: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

The DPLL Procedure DPLL employs a backtracking search to explore the

space of propositional variables truth-valuations of a proposition P in CNF, looking for a satisfying truth-valuation of P

DPLL solves the CNFSAT-Problem by searching a truth-assignment that satisfies all clauses θi in the input proposition P = θ1 … θn

The basic intuition behind DPLL is that we can save time if we first test for some assignments before others

12

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 13: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL Procedure: Main Steps1. It identifies all literal in the input proposition P

2. It assigns a truth-value to each variable to satisfy them

3. It simplifies P by removing all clauses in P which become true under the truth-assignments at step 2 and all literals in P that become false from the remaining clauses (this may generate empty clauses)

4. It recursively checks if the simplified proposition obtained in step 3 is satisfiable; if this is the case then P is satisfiable, otherwise the same recursive checking is done assuming the opposite truth value (*).

13

B ¬C (B ¬A C) (¬ B D)

B ¬C (B ¬A C) (¬ B D) ν(B) = T; ν(C) = F

D

D YES, it is satisfiable for ν(D) = T. NOTE: ν(A) can be T/F

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 14: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL algorithm Input: a proposition P in CNF Output: true if "P satisfiable" or false if "P unsatisfiable"

boolean function DPLL(P) {

if consistent(P) then return true;

if hasEmptyClause(P) then return false;

foreach unit clause C in P do

P = unit-propagate(C, P);

foreach pure-literal L in P do

P = pure-literal-assign(L, P);

L = choose-literal(P);

return DPLL(P L) OR DPLL(P L);

}

14

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 15: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL algorithm Input: a proposition P in CNF Output: true if "P satisfiable" or false if "P unsatisfiable"

boolean function DPLL(P) {

if consistent(P) then return true;

if hasEmptyClause(P) then return false;

foreach unit clause C in P do

P = unit-propagate(C, P);

foreach pure-literal L in P do

P = pure-literal-assign(L, P);

L = choose-literal(P);

return DPLL(P L) OR DPLL(P L);

}

15

It tests the formula P for consistency, namely it does not contain contradictions (e.g. A A) and all clauses are unit clauses.

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 16: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL algorithm Input: a proposition P in CNF Output: true if "P satisfiable" or false if "P unsatisfiable"

boolean function DPLL(P) {

if consistent(P) then return true;

if hasEmptyClause(P) then return false;

foreach unit clause C in P do

P = unit-propagate(C, P);

foreach pure-literal L in P do

P = pure-literal-assign(L, P);

L = choose-literal(P);

return DPLL(P L) OR DPLL(P L);

}

16

An empty clause does not contain literals.

It can be due to previous iterations of the algorithm where some simplifications has been done.If any of them exists then P is unsatisfiable.

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 17: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL algorithm Input: a proposition P in CNF Output: true if "P satisfiable" or false if "P unsatisfiable"

boolean function DPLL(P) {

if consistent(P) then return true;

if hasEmptyClause(P) then return false;

foreach unit clause C in P do

P = unit-propagate(C, P);

foreach pure-literal L in P do

P = pure-literal-assign(L, P);

L = choose-literal(P);

return DPLL(P L) OR DPLL(P L);

}

17

(a) It assigns the right truth value to each literal (true for positives and false for negatives).(b) It simplifies P by removing all clauses in P which become true under the truth-assignment and all literals in P that become false from the remaining clauses.

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 18: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL algorithm Input: a proposition P in CNF Output: true if "P satisfiable" or false if "P unsatisfiable"

boolean function DPLL(P) {

if consistent(P) then return true;

if hasEmptyClause(P) then return false;

foreach unit clause C in P do

P = unit-propagate(C, P);

foreach pure-literal L in P do

P = pure-literal-assign(L, P);

L = choose-literal(P);

return DPLL(P L) OR DPLL(P L);

}

18

For all literals which appear pure in the formula (i.e. with only one polarity) assign the corresponding value:

- true if positive literal- false if negative

Not all DPLL versions perform this step.

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 19: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL algorithm Input: a proposition P in CNF Output: true if "P satisfiable" or false if "P unsatisfiable"

boolean function DPLL(P) {

if consistent(P) then return true;

if hasEmptyClause(P) then return false;

foreach unit clause C in P do

P = unit-propagate(C, P);

foreach pure-literal L in P do

P = pure-literal-assign(L, P);

L = choose-literal(P);

return DPLL(P L) OR DPLL(P L);

}

19

The splitting rule:

Select a variable whose value is not assigned yet.

Recursively call DPLL for the cases in which the literal is true or false.

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 20: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL Procedure: Example 1P = A ∧ (A ∨ ¬A) ∧ B

There are still variables and clauses to analyze, go ahead P does not contain empty clauses, go ahead It assigns the right truth-value to A and B: ν(A) = T, ν(B) = T It simplifies P by removing all clauses in P which become true

under ν(A) = T and ν(B) = T

This causes the removal of all the clauses in P It simplifies P by removing all literals in the clauses of P that

become false from the remaining clauses: nothing to remove It assigns values to pure literals. nothing to assign All variables are assigned: it returns true

20

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 21: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL Procedure: Example 2P = C ∧ (A ∨ ¬A) ∧ B There are still variables and clauses to analyze, go ahead P does not contain empty clauses, go ahead It assigns the right truth-value to C and B: ν(C) = T, ν(B) = T It simplifies P by removing all clauses in P which become true

under ν(C) = T and ν(B) = T.

P is then simplified to (A ∨ ¬A) It simplifies P by removing all literals in the clauses of P that

become false from the remaining clauses: nothing to remove It assigns values to pure literals: nothing to assign It selects A and applies the splitting rule by calling DPLL on

A ∧ (A ∨ ¬A) AND ¬A ∧ (A ∨ ¬A)which are both true (the first call is enough). It returns true

21

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 22: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

DPLL Procedure: Example 3P = A ∧ ¬B ∧ (¬A ∨ B) There are still variables and clauses to analyze, go ahead P does not contain empty clauses, go ahead It assigns the right truth-value to A and B

ν(A) = T, ν(B) = F It simplifies P by removing all clauses in P which become true

under ν(A) = T and ν(B) = F.

P is simplified to (¬A ∨ B) It simplifies P by removing all literals in the clauses of P that

become false from the remaining clauses: the last clause becomes empty

It assigns values to pure literals: nothing to assign All variables are assigned but there is an empty clause: it returns

false

22

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 23: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

The branching literal The branching literal is the literal considered in the

backtracking step (the one chosen for the splitting rule)

The DPLL algorithm (and corresponding efficiency) highly depends on the choice of the branching literal

DPLL as a family of algorithms: One for each possible way of choosing the branching

literal The running time can be constant or exponential

depending on the choice of the branching literals Researches mainly focus on smart choices for the

branching literal

23

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 24: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Final observations on the DPLL There are several versions of the DPLL. We presented one.

Finding solutions to propositional logic formulas is an NP-complete problem

A DPLL SAT solver: works on formulas in CNF employs a systematic backtracking search procedure to

explore the (exponentially-sized) space of variable assignments looking for satisfying assignments

Modern SAT solvers (developed in the last ten years) come in two flavors: "conflict-driven" and "look-ahead“ approaches

24

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 25: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Using DPLL for reasoning tasks Model checking Does ν satisfy P? (ν ⊨ P?)

Check if ν(P) = true

Satisfiability Is there any ν such that ν ⊨ P?

Check that DPLL(P) succeeds and returns a ν

Unsatisfiability Is it true that there are no ν satisfying P?

Check that DPLL(P) fails

Validity Is P a tautology? (true for all ν)

Check that DPLL(P) fails

NOTE: typical DPLL implementations take two parameters: the proposition P and a model ν. Therefore, in case of model checking the real call would be DPLL(P, ν) and check that it succeeds

25

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 26: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Pros and Cons of PLPROS PL is declarative: the

syntax captures facts PL allows disjunctive

(partial) and negated knowledge (unlike most databases)

PSAT is fundamental in important applications

26

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

CONS PL has limited expressive

power (yet useful in lots of applications) No enumerations No qualifiers (exists, for

all) No instances

Page 27: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Example (KB)Consider the following propositions:

AreaManager → Manager TopManager → Manager

Manager → Employee TopManager(John)

Since we cannot reason on instances, we can’t deduce the following:

Manager(John), Employee(John)

27

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 28: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Example (KB)Consider the following:

AreaManager(x) → Manager(x) Manager(x) → Employee(x)

TopManager(x) → Manager(x) TopManager(John)

They are not propositions because of the variables.

28

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS

Page 29: Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto

Example (DB)If we codify it as a database:

- No negations

- No disjunctions

the reasoning is polynomial.

29

REVIEW :: REASONING IN PL :: THE DPLL PROCEDURE :: OBSERVATIONS :: CONCLUSIONS