For Monday - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

For Monday

Description:

Arithmetic in Prolog. Basic arithmetic operators are provided for by built-in procedures: ... xv) Representable by a set of clauses (disjunctions of literals) ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 30
Provided by: maryelai
Category:
Tags: monday | provided

less

Transcript and Presenter's Notes

Title: For Monday


1
For Monday
  • Read chapter 10, sections 1-3
  • Prolog handout 4
  • Consider advanced topics youre interested in
    well discuss the second half of the course.

2
Try It
  • reverse(List,ReversedList)
  • evenlength(List)
  • oddlength(List)

3
The Anonymous Variable
  • Some variables only appear once in a rule
  • Have no relationship with anything else
  • Can use _ for each such variable

4
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

5
Arithmetic Comparison
  • Comparison operators gt lt gt lt (note the
    order NOT lt) (equal values) \ (not
    equal values)

6
Arithmetic Examples
  • Retrieving people born 1950-1960 ?- born(Name,
    Year), Year gt 1950, Year lt 1960.
  • Difference between and ?- 1 2 2
    1. yes ?- 1 2 2 1. no ?- 1 A B
    2. A 2 B 1

7
Length of a List
  • Definition of length/2length(, 0).length(_
    Tail, N) - length(Tail, N1), N is 1 N1.
  • Note all loops must be implemented via recursion

8
Counting Loops
  • Definition of sum/3sum(Begin, End, Sum)
    - sum(Begin, End, Begin, Sum).sum(X, X, Y,
    Y).sum(Begin, End, Sum1, Sum) - Begin lt
    End, Next is Begin 1, Sum2 is Sum1
    Next, sum(Next, End, Sum2, Sum).

9
Negation
  • Cant say something is NOT true
  • Use a closed world assumption
  • Not simply means I cant prove that it is true

10
And much more . . .
11
Resolution
  • Propositional version.
  • a Ú b, b Ú c - a Ú c OR aÞ b, b Þ c - a
    Þ c
  • Reasoning by cases OR transitivity of
    implication
  • Firstorder form
  • For two literals pj and qk in two clauses
  • p1 Ú ... pj ... Ú pm
  • q1 Ú ... qk ... Ú qn
  • such that qUNIFY(pj , qk), derive
  • SUBST(q, p1Ú...pj1Úpj1...ÚpmÚq1Ú...qk1
    qk1...Úqn)

12
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

13
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
    of literals)
  • Also representable as a set of implications
    (INF).

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

15
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) -gt S(A)

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

17
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

18
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

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

20
Conversion to Clausal Form
  • Eliminate implications and biconditionals by
    rewriting them.
  • p Þ q -gt p Ú q
  • p Û q gt (p Ú q) Ù (p Ú q)
  • Move inward to only be a part of literals by
    using deMorgan's laws and quantifier rules.
  • (p Ú q) -gt p Ù q
  • (p Ù q) -gt p Úq
  • "x p -gt x p
  • x p -gt "x p
  • p -gt p

21
Conversion continued
  • Standardize variables to avoid use of the same
    variable name by two different quantifiers.
  • "x P(x) Ú x P(x) -gt "x1 P(x1) Ú x2 P(x2)
  • Move quantifiers left while maintaining order.
    Renaming above guarantees this is a
    truthpreserving transformation.
  • "x1 P(x1) Ú x2 P(x2) -gt "x1 x2 (P(x1) Ú P(x2))

22
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)) -gt P(C1) Ù Q(C1)
  • If it is within the scope of n universally
    quantified variables, then replace it with a
    unique nary function over these universally
    quantified variables.
  • "x1x2(P(x1) Ú P(x2)) -gt "x1 (P(x1) Ú P(f1(x1)))
  • "x(Person(x) Þ y(Heart(y) Ù Has(x,y))) -gt
  • "x(Person(x) Þ Heart(HeartOf(x)) Ù
    Has(x,HeartOf(x)))
  • Afterwards, all variables can be assumed to be
    universally quantified, so remove all quantifiers.

23
Conversion continued
  • Distribute Ù over Ú to convert to conjunctions of
    clauses
  • (aÙb) Ú c -gt (aÚc) Ù (bÚc)
  • (aÙb) Ú (cÙd) -gt (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 -gt (a Ú b Ú c)
  • (a Ù b) Ù c -gt (a Ù b Ù c)
  • Convert clauses to implications if desired for
    readability
  • (a Ú b Ú c Ú d) -gt a Ù b Þ c Ú d

24
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))))
  • "xyz((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))))
  • (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))))

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

26
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?

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

28
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

29
Resolution Proof
Write a Comment
User Comments (0)
About PowerShow.com