For Tuesday No reading (review chapter 9) Homework: Chapter 9, - - PowerPoint PPT Presentation

for tuesday
SMART_READER_LITE
LIVE PREVIEW

For Tuesday No reading (review chapter 9) Homework: Chapter 9, - - PowerPoint PPT Presentation

For Tuesday No reading (review chapter 9) Homework: Chapter 9, exercises 4 and 6 For exercise 9.6, remember that we can only use Generalized Modus Ponens with Horn sentences, so you must express everything in Horn sentences. In


slide-1
SLIDE 1

For Tuesday

  • No reading (review chapter 9)
  • Homework:

– Chapter 9, exercises 4 and 6

  • For exercise 9.6, remember that we can only use

Generalized Modus Ponens with Horn sentences, so you must express everything in Horn sentences. In this case, that IS possible, though you may need multiple logic sentences for some English sentences.

– Prolog Handout 3

slide-2
SLIDE 2

Exam 1

  • March 1
  • Take home due at the exam
  • Covers material through backward chaining

– no resolution, no Prolog

slide-3
SLIDE 3

Homework

  • Some students took French in spring 2001.
  • Every student who takes French passes it.
  • Only one student took Greek in spring 2001.
  • The best score in Greek is always higher than the best score in French.
  • Every person who buys a policy is smart.
  • No person buys an expensive policy.
  • There is an agent who sells policies only to people who are not insured.
  • There is a barber who shaves all men in town who do not shave themselves.
  • A person in the UK, each of whose parents is a UK citizen or a UK resident,

is a UK citizen by birth.

  • A person born outside the UK, one of whose parents is a UK citizen by birth,

is a UK citizen by descent.

  • Politicians can fool some of the people all of the time, and they can fool all
  • f the people some of the time, but they can’t fool all of the people all of the

time.

  • All Greeks speak the same language.
slide-4
SLIDE 4

Some List Predicates

  • member/2
  • append/3
slide-5
SLIDE 5

Try It

  • reverse(List,ReversedList)
  • evenlength(List)
  • oddlength(List)
slide-6
SLIDE 6

The Anonymous Variable

  • Some variables only appear once in a rule
  • Have no relationship with anything else
  • Can use _ for each such variable
slide-7
SLIDE 7

Arithmetic in Prolog

  • Basic arithmetic operators are provided for

by built-in procedures: +, -, *, /, mod, //

  • Note carefully:

?- X = 1 + 2. X = 1 + 2 ?- X is 1 + 2. X = 3

slide-8
SLIDE 8

Arithmetic Comparison

  • Comparison operators:

> < >= =< (note the order: NOT <=) =:= (equal values) =\= (not equal values)

slide-9
SLIDE 9

Arithmetic Examples

  • Retrieving people born 1950-1960:

?- born(Name, Year), Year >= 1950, Year =< 1960.

  • Difference between = and =:=

?- 1 + 2 =:= 2 + 1. yes ?- 1 + 2 = 2 + 1. no ?- 1 + A = B + 2. A = 2 B = 1

slide-10
SLIDE 10

Length of a List

  • Definition of length/2

length([], 0). length([_ | Tail], N) :- length(Tail, N1), N is 1 + N1.

  • Note: all loops must be implemented via

recursion

slide-11
SLIDE 11

Counting Loops

  • Definition of sum/3

sum(Begin, End, Sum) :- sum(Begin, End, Begin, Sum). sum(X, X, Y, Y). sum(Begin, End, Sum1, Sum) :- Begin < End, Next is Begin + 1, Sum2 is Sum1 + Next, sum(Next, End, Sum2, Sum).

slide-12
SLIDE 12

The Cut (!)

  • A way to prevent backtracking.
  • Used to simplify and to improve efficiency.
slide-13
SLIDE 13

Negation

  • Can’t say something is NOT true
  • Use a closed world assumption
  • Not simply means “I can’t prove that it is

true”

slide-14
SLIDE 14

Dynamic Predicates

  • A way to write self-modifying code, in

essence.

  • Typically just storing data using Prolog’s

built-in predicate database.

  • Dynamic predicates must be declared as

such.

slide-15
SLIDE 15

Using Dynamic Predicates

  • assert and variants
  • retract

– Fails if there is no clause to retract

  • retractall

– Doesn’t fail if no clauses

slide-16
SLIDE 16

Program 2

slide-17
SLIDE 17

Resolution

  • Propositional version.

{a  b, ¬b  c} |- a  c OR {¬a b, b  c} |- ¬a  c Reasoning by cases OR transitivity of implication

  • First-order form

– For two literals pj and qk in two clauses

  • p1  ... pj ...  pm
  • q1  ... qk ...  qn

such that q=UNIFY(pj , ¬qk), derive SUBST(q, p1...pj-1pj+1...pmq1...qk-1 qk+1...qn)

slide-18
SLIDE 18

Implication form

  • Can also be viewed in implicational form

where all negated literals are in a conjunctive antecedent and all positive literals in a disjunctive conclusion. ¬p1...¬pmq1...qn  p1...  pm  q1 ... qn

slide-19
SLIDE 19

Conjunctive Normal Form (CNF)

  • For resolution to apply, all sentences must be

in conjunctive normal form, a conjunction of disjunctions of literals

(a1  ... am)  (b1  ...  bn)  .....  (x1  ...  xv)

  • Representable by a set of clauses (disjunctions
  • f literals)
  • Also representable as a set of implications

(INF).

slide-20
SLIDE 20

Example

Initial CNF INF P(x)  Q(x) ¬P(x)  Q(x) P(x)  Q(x) ¬P(x)  R(x) P(x)  R(x) True  P(x)  R(x) Q(x)  S(x) ¬Q(x)  S(x) Q(x)  S(x) R(x)  S(x) ¬R(x)  S(x) R(x)  S(x)

slide-21
SLIDE 21

Resolution Proofs

  • INF (CNF) is more expressive than Horn

clauses.

  • Resolution is simply a generalization of

modus ponens.

  • As with modus ponens, chains of resolution

steps can be used to construct proofs.

  • Factoring removes redundant literals from

clauses

– S(A)  S(A) -> S(A)

slide-22
SLIDE 22

Sample Proof

P(w)  Q(w) Q(y)  S(y) {y/w} P(w)  S(w) True  P(x)  R(x) {w/x} True  S(x)  R(x) R(z)  S(z) {x/A, z/A} True  S(A)

slide-23
SLIDE 23

Refutation Proofs

  • Unfortunately, resolution proofs in this form

are still incomplete.

  • For example, it cannot prove any tautology

(e.g. P¬P) from the empty KB since there are no clauses to resolve.

  • Therefore, use proof by contradiction

(refutation, reductio ad absurdum). Assume the negation of the theorem P and try to derive a contradiction (False, the empty clause).

– (KB  ¬P  False)  KB  P

slide-24
SLIDE 24

Sample Proof

P(w)  Q(w) Q(y)  S(y) {y/w} P(w)  S(w) True  P(x)  R(x) {w/x} True  S(x)  R(x) R(z)  S(z) {z/x} S(A)  False True  S(x) {x/A} False

slide-25
SLIDE 25

Resolution Theorem Proving

  • Convert sentences in the KB to CNF

(clausal form)

  • Take the negation of the proposed theorem

(query), convert it to CNF, and add it to the KB.

  • Repeatedly apply the resolution rule to

derive new clauses.

  • If the empty clause (False) is eventually

derived, stop and conclude that the proposed theorem is true.

slide-26
SLIDE 26

Conversion to Clausal Form

  • Eliminate implications and biconditionals by

rewriting them.

p  q -> ¬p  q p  q -> (¬p  q)  (p  ¬q)

  • Move ¬ inward to only be a part of literals by

using deMorgan's laws and quantifier rules.

¬(p  q) -> ¬p  ¬q ¬(p  q) -> ¬p ¬q ¬"x p -> $x ¬p ¬$x p -> "x ¬p ¬¬p

  • >

p

slide-27
SLIDE 27

Conversion continued

  • Standardize variables to avoid use of the

same variable name by two different quantifiers.

"x P(x)  $x P(x) -> "x1 P(x1)  $x2 P(x2)

  • Move quantifiers left while maintaining
  • rder. Renaming above guarantees this is a

truth-preserving transformation.

"x1 P(x1)  $x2 P(x2) -> "x1 $x2 (P(x1)  P(x2))

slide-28
SLIDE 28

Conversion continued

  • Skolemize: Remove existential quantifiers by replacing

each existentially quantified variable with a Skolem constant or Skolem function as appropriate.

– If an existential variable is not within the scope of any universally quantified variable, then replace every instance of the variable with the same unique constant that does not appear anywhere else. $x (P(x)  Q(x)) -> P(C1)  Q(C1) – If it is within the scope of n universally quantified variables, then replace it with a unique n-ary function over these universally quantified variables. "x1$x2(P(x1)  P(x2)) -> "x1 (P(x1)  P(f1(x1))) "x(Person(x)  $y(Heart(y)  Has(x,y))) -> "x(Person(x)  Heart(HeartOf(x))  Has(x,HeartOf(x))) – Afterwards, all variables can be assumed to be universally quantified, so remove all quantifiers.

slide-29
SLIDE 29

Conversion continued

  • Distribute  over  to convert to conjunctions of

clauses

(ab)  c -> (ac)  (bc) (ab)  (cd) -> (ac)  (bc)  (ad)  (bd) – Can exponentially expand size of sentence.

  • Flatten nested conjunctions and disjunctions to get

final CNF

(a  b)  c -> (a  b  c) (a  b)  c -> (a  b  c)

  • Convert clauses to implications if desired for

readability

(¬a  ¬b  c  d) -> a  b  c  d

slide-30
SLIDE 30

Sample Clause Conversion

"x((Prof(x)  Student(x))  ($y(Class(y)  Has(x,y))  $y(Book(y)  Has(x,y)))) "x(¬(Prof(x)  Student(x))  ($y(Class(y)  Has(x,y))  $y(Book(y)  Has(x,y)))) "x((¬Prof(x)  ¬Student(x))  ($y(Class(y)  Has(x,y))  $y(Book(y)  Has(x,y)))) "x((¬Prof(x)  ¬Student(x))  ($y(Class(y)  Has(x,y))  $z(Book(z)  Has(x,z)))) "x$y$z((¬Prof(x)¬Student(x)) ((Class(y)  Has(x,y))  (Book(z)  Has(x,z)))) (¬Prof(x)¬Student(x)) (Class(f(x))  Has(x,f(x))  Book(g(x))  Has(x,g(x))))

slide-31
SLIDE 31

Clause Conversion

(¬Prof(x)¬Student(x)) (Class(f(x))  Has(x,f(x))  Book(g(x))  Has(x,g(x)))) (¬Prof(x)  Class(f(x)))  (¬Prof(x)  Has(x,f(x)))  (¬Prof(x)  Book(g(x)))  (¬Prof(x)  Has(x,g(x)))  (¬Student(x)  Class(f(x)))  (¬Student(x)  Has(x,f(x)))  (¬Student(x)  Book(g(x)))  (¬Student(x)  Has(x,g(x))))

slide-32
SLIDE 32

Sample Resolution Problem

  • Jack owns a dog.
  • Every dog owner is an animal lover.
  • No animal lover kills an animal.
  • Either Jack or Curiosity killed Tuna the cat.
  • Did Curiosity kill the cat?
slide-33
SLIDE 33

In Logic Form

A) $x Dog(x)  Owns(Jack,x) B) "x ($y Dog(y)  Owns(x,y))  AnimalLover(x)) C) "x AnimalLover(x)  ("y Animal(y)  ¬Kills(x,y)) D) Kills(Jack,Tuna)  Kills(Cursiosity,Tuna) E) Cat(Tuna) F) "x(Cat(x)  Animal(x)) Query: Kills(Curiosity,Tuna)

slide-34
SLIDE 34

In Normal Form

A1) Dog(D) A2) Owns(Jack,D) B) Dog(y)  Owns(x,y)  AnimalLover(x) C) AnimalLover(x)  Animal(y)  Kills(x,y)  False D) Kills(Jack,Tuna)  Kills(Curiosity,Tuna) E) Cat(Tuna) F) Cat(x)  Animal(x) Query: Kills(Curiosity,Tuna)  False

slide-35
SLIDE 35

Resolution Proof