Horn Form A sentence is in Horn form if and only if …. It is a conjunction of atomic sentences on...

41
Horn Form A sentence is in Horn form if and only if …. It is a conjunction of atomic sentences on the left side, and a single atom on the right side i.e. P Q R X A B P Q R X

Transcript of Horn Form A sentence is in Horn form if and only if …. It is a conjunction of atomic sentences on...

Horn Form

A sentence is in Horn form if and only if ….

It is a conjunction of atomic sentences on the left side, and a single atom on the right side

i.e.

P Q R X

A B P Q R X

Overview

We plan to represent the world (or some subset thereof, ie our domain) in FOL, and to TELL this information into our Knowledge Base KB.

We will represent our problem (ie the statement we want to prove) in FOL. We will sometimes call the statement to be proved a goal.

So proving a statement is equivalent to seeing if the goal is in the KB, or if not in it, can be deduced (entailed) from it.

The simplest example

Suppose our KB consists of

PQR

A simple goal is … Q. Literally we are asking is it the case that Q is true. In this case, the answer is yes!

Another simple example

Suppose our KB consists of

PQR

Now suppose the goal is … P Q. We are literally asking is it the case that P is true and Q is true. In this case, the fact P Q is not in our KB. But we can infer it by using the And-Introduction rule.

A more interesting example

Suppose our KB consists of facts about containment General facts about containment

x,y,z in(x,y) in(y,z) enclosedby(x,z) x,y in(x,y) enclosedby(x,y)

Specific facts for our particular problem

• in(A,B) in(B,C) in(F,C)

A goal might bex enclosedby(B,x) (ie, is there any thing inside B?)

or x,y,z enclosedby(x,y) enclosedby(y,z)

A

BC

F

Note, “in” means directly inside with nothing in between, “encloses” means inside, possibly with other items in between.

Models I

A model is simply a “world” in which a sentence is true.

Consider the sentence P Q , given that P Means “is tall”.Q Means “is rich”.

We can now ask if the following interpretations of P Q are models…

“Bill Gates” is not a model of P Q “Eamonn Keogh” is not a model of P Q “Michael Jordan” is a model of P Q

Models II

If we have the sentence P Q, and

P Means “is astronaut”.Q Means “is female”.

Which of the following interpretations of P Q are models?

“Neil Armstrong”, “Eamonn Keogh”, “Sally Ride”, “Dolly Parton”, “Bill Clinton”, “Valentina Tereshkova”,

Models III

Models are important because they allow a simple definition of entailment.

A Knowledge Base KB entails a sentence if and only if, all models of KB are also models of .

For example the KB P Q

…can be said to entail the sentence P Q, since all models of P Q are also models of P Q.

In propositional logic, proof is easy I

Suppose we had P and P Q in our KB, and we have a goal of Q

We can always build a truth table with an entry for each symbol and each item from our KB

P Q P Q

FALSE FALSE TRUE

FALSE TRUE TRUE

TRUE FALSE FALSE

TRUE TRUE TRUE

P QP

Goal: Q?

We need to look at all rows where the statements in our KB are true…

In propositional logic, proof is easy I Suppose we had P and P Q in our KB, and we have a goal of Q

We can always build a truth table with an entry for each symbol and each item from our KB P Q P Q

FALSE FALSE TRUE

FALSE TRUE TRUE

TRUE FALSE FALSE

TRUE TRUE TRUE

P QP

Q?

We need to look at all rows where the statements in our KB are true. Since in every case where our KB statements are true, Q is also true, thus we have proved Q! (I.e our KB entails Q)

All models of {P Q , P} are also models of Q.

In FOL, proof is harder

Suppose we had P(A) and x P(x) Q(x) in our KB, and we have a goal of Q(A)

We can build a truth table but we cannot fill it in.

P(A) Q(A) x P(x) Q(x)

FALSE FALSE ?

FALSE TRUE ?

TRUE FALSE ?

TRUE TRUE ?

x P(x) Q(x) P(A)

Q(A)?

I.e. the general sentence never follows from any of these instances. How are we to know if the KB entails the sentence Q(A)?

In the next few slides we will look at some tools that will allow us to prove facts in First Order Logic

This tools are:

• Substitution • Universal Elimination• Existential Elimination• Existential Introduction

Substitution (Binding, Instantiation)

Substitution is a variable (or set of variables) paired with a term.

Example: SUBST{x/Harpo}is a substitution indicating that Harpo should be substituted for x.

Brother(x,Groucho) becomes Brother(Harpo,Groucho)

Example: SUBST{x/YoungestSonOF(Minnie)}is a substitution indicating that YoungestSonOF(Minnie)} should be substituted for x.

Brother(x,Groucho) becomes Brother(YoungestSonOF(Minnie),Groucho)

Universal Elimination(Universal Instantiation)

x SUBST({x/g, })

For any sentence , variable x, and term g.

Terms (A term is an expression that refers to an object).

Either• A symbol• A function application

Symbols can be constants: John, Mary, 17, 56 or variables: F_name, L_name, X, Y

Function applications are usually written as SomethingOf

MotherOf(John)AgeOf(Mary)EyeColorOf(MotherOf(John))

For example, from x loves(x, Beatles)We can use the substitution {x/Nick} to infer

loves(Nick, Beatles)

Or can use the substitution {x/MotherOf(Joe) } to infer

loves(MotherOf(Joe) , Beatles)

Existential Elimination(Existential Instantiation)

x SUBST({x/k, })

For any sentence , variable x, and constant term k. Where k does not already exist in our KB

Terms (A term is an expression that refers to an object).

Either• A symbol• A function application

Symbols can be constants: John, Mary, 17, 56 or variables: F_name, L_name, X, Y

Function applications are usually written as SomethingOf

MotherOf(John)AgeOf(Mary)EyeColorOf(MotherOf(John))

For example from x President(x, USA)

We can use substitution SUBST{x/someoldwhiteguy} to infer

President(someoldwhiteguy, USA)

Later on, if we happen to learn the president is Bush we can assign

someoldwhiteguy = Bush

Existential Introduction

x SUBST({g/x, })

For any sentence , term g that occurs in and x that does not occur in .

For example from President(Bush, USA)

We can inferx President(x, USA)

We can now take these new tools

• Universal Elimination• Existential Elimination• Existential Introduction

Combined with some tools we have already defined

To prove facts in First Order Logic

A sample proof in FOLBob is a buffalo Buffalo(Bob)Pat is a pig Pig(Pat)Buffaloes outrun pigs x,y Buffalo(x) Pig(y) Faster(x,y)

Can Bob outrun Pat? Faster(Bob,Pat)?

A sample proof in FOLBuffalo(Bob)Pig(Pat)x,y Buffalo(x) Pig(y) Faster(x,y)

Buffalo(Bob) Pig(Pat)

1. We can use And Introduction to add the following to our database…Buffalo(Bob) Pig(Pat)

Can Bob outrun Pat?Faster(Bob,Pat)?

A sample proof in FOL

1. We can use And Introduction to add the following to our database…Buffalo(Bob) Pig(Pat)

2. We can do Universal Elimination to get… {x/Bob, y/Pat} Buffalo(Bob) Pig(Pat) Faster(Bob, Pat)

Buffalo(Bob)Pig(Pat)x,y Buffalo(x) Pig(y) Faster(x,y)

Buffalo(Bob) Pig(Pat)Buffalo(Bob) Pig(Pat) Faster(Bob, Pat)

Can Bob outrun Pat?Faster(Bob,Pat)?

A sample proof in FOL

1. We can use And Introduction to add the following to our database…Buffalo(Bob) Pig(Pat)

2. We can do Universal Elimination to get… {x/Bob, y/Pat} Buffalo(Bob) Pig(Pat) Faster(Bob, Pat)

3. We then use Modus Ponens to derive Faster(Bob, Pat)

Buffalo(Bob)Pig(Pat)x,y Buffalo(x) Pig(y) Faster(x,y)

Buffalo(Bob) Pig(Pat)Buffalo(Bob) Pig(Pat) Faster(Bob, Pat)Faster(Bob, Pat)

Can Bob outrun Pat?Faster(Bob,Pat)?

The need for a better proof mechanism

This idea works, but…

It seriously slows down when the KB gets larger, because the number of possible substitutions grows exponentially.

One possible solution is to reduce the number of operators…This leads us to Generalized Modus Ponens (GMP).

The proof mechanism we have just seen can be imagined as search.

The operators are inference rules (Existential Introduction, Universal Elimination, etc)

The states are set of sentences (The KB itself)

The goal test is to see if a state contains the query sentence.

Generalized Modus Ponens Combines And-Introduction, Universal-Elimination, and Modus Ponens

For atomic sentences p1’, p2’, and q, where there is a substitution such that SUBST({/ pi’ }) = SUBST({/ pi})

p1’, p2’,…pn’ (p1 p2… pn q )

SUBST({/q})

Example: p1’ = Faster(Bob,Pat) p2’ = Faster(Pat,Steve)

p1 p2 q = Faster(x,y) Faster(y,z) Faster(x,z) SUBST({/q}) = SUBST({x/Bob, y/Pat, z/Steve })

Then using GMP we can conclude Faster(Bob,Steve)

Note that GMP only works for a KB of definite clauses (Exactly one positive literal): either a single atom or (conjunction of atomic sentences) atomic sentenceSentences in this form are known as horn clauses.Note also that all sentences are assumed to be universally qualified

Generalized Modus Ponens Combines And-Introduction, Universal-Elimination, and Modus Ponens

For atomic sentences p1’, p2’, and q, where there is a substitution such that SUBST({/ pi’ }) = SUBST({/ pi})

p1’, p2’ (p1 p2 q )

SUBST({/q})

Example: p1’ = Faster(Bob,Pat) p2’ = Faster(Pat,Steve)

p1 p2 q = Faster(x,y) Faster(y,z) Faster(x,z) SUBST({/q}) = SUBST({x/Bob, y/Pat, z/Steve })

Then using GMP we can conclude Faster(Bob,Steve)

Faster(Bob,Pat) Faster(Pat,Steve) Faster(Bob,Steve)

Forward ChainingProofs start with the given axioms/premises in KB, deriving new sentences using GMP until

the goal/query sentence is derived. This defines a forward chaining inference procedure

because it moves "forward" from the KB to the goal.

Example: KB = All cats like fish, cats eat everything they like, and Ziggy is a cat. In FOL, KB =

1. x cat(x) likes(x, Fish) 2. x y (cat(x) likes(x,y)) eats(x,y) 3. cat(Ziggy)

Goal query: Does Ziggy eat fish? Proof:

4. Use GMP with (1) and (3) to derive: 4. likes(Ziggy, Fish)

5. Use GMP with (3), (4) and (2) to derive eats(Ziggy, Fish)

6. So, Yes, Ziggy eats fish.

Backward ChainingBackward-chaining deduction using GMP is complete for KBs containing only Horn clauses. Proofs start with the goal query, find implications that would allow you to prove it, and then prove each of the antecedents in the implication, continuing to work "backwards" until we get to the axioms, which we know are true.

Example: Does Ziggy eat fish? To prove eats(Ziggy, Fish), first see if this is known from one of the axioms directly. Here it is not known, so see if there is a Horn clause that has the consequent (i.e., right-hand side) of the implication matching the goal. Here,

Proof:1.Goal matches RHS of Horn clause (2), so try and prove new sub-goals cat(Ziggy) and likes(Ziggy, Fish) that correspond to the LHS of (2) 2.cat(Ziggy) matches axiom (3), so we've "solved" that sub-goal 3.likes(Ziggy, Fish) matches the RHS of (1), so try and prove cat(Ziggy) 4.cat(Ziggy) matches (as it did earlier) axiom (3), so we've solved this sub-goal 5.There are no unsolved sub-goals, so we're done. Yes, Ziggy eats fish.

1. x cat(x) likes(x, Fish) 2. x y (cat(x) likes(x,y)) eats(x,y) 3. cat(Ziggy)

We have seen that we can use Generalized Modus Ponens (GMP) combined with search to see if a fact is entailed from a Knowledge Base.

Unfortunately, there are some facts that we cannot prove using GMP

Suppose we have in our KB GoToSchool(Joe) GoToSchool(Sue) GoToSchool(Joe) GoToSchool(Sue)

And we want to know if GoToSchool(Sue)

Although humans can look at such a KB and immediately see that GoToSchool(Sue) is true, GMP cannot entail that fact!!

So GMP is not complete.

Is there any complete inference procedure for FOL?

Yes! It is called resolution refutation (or just resolution).

• It is complete.• It is sound.• It is optimally efficient. • It works for KB in any format unlike GMP which only works for KBs in Horn clause format (although we generally have to reorganize the format).

Suppose our KB consists the following sentences P Q P RQ R

And the goal is to prove R S

We negate the goal, so R S becomes (R S)

R S (by De Morgan’s law)

R , S (And-Elimination)

Now we add R , S to our knowledge base and look for a contradiction.

How resolution refutation works IHow resolution refutation works I

P Q P RQ RRS

How resolution refutation works IIHow resolution refutation works II P Q P RQ RRS

Q P P R

Q R

P Q

Q R

R R

R R Contradiction!

That's all there is to resolution for propositional logic, for first order logic we just have to put the KB in the right format, otherwise it works the same.

SUBST{y/w}

SUBST{w/x}

SUBST{x/A, z/A}

In order for resolution to work for FOL, the KB must be in Conjunctive Normal Form (CNF)

Conjunctive Normal Form: The KB is a conjunction of disjunctions

We will address the problem of translating an arbitrary KB into CNF in the next few slides.

P(w) Q(w) P(x) R(x) Q(y) S(y) R(z) S(z)

P(w) Q(w) Q(y) S(y)

The Goal is S(A), so negate it and add it to the KB

P(w) S(w) S(w) P(w) P(x) R(x)

S(x) R(x) R(z) S(z)

S(A) S(A)

S(A) S(A)

P(w) Q(w) P(x) R(x) Q(y) S(y) R(z) S(z)S(A)

Now lets look for a contradiction…

Contradiction!

We have seen that we can do resolution when the KB is in CNF.But most KB are not is that format.

Theorem: We can convert any KB to CNF

• Eliminate Implications• Move inwards• Standardize Variables• Move Quantifiers left• Skolemize {Eliminate Existential Quantifiers, Drop Universal Quantifiers }

• Distribute over • Flatten nested conjunctions and disjunctions.

Note that we must do the steps in order!

Gloss over!

Eliminate Implications

Change all implication sentences to disjunctions

So A B becomes A B

C D becomes C D

etc

Gloss over!

Move inwards

Negation is only allow on atom, not whole sentences.

So (A B) becomes A B (A B) becomes A B

x P becomes x P x P becomes x P

P becomes P

Gloss over!

Standardize Variables

Make sure that you are not using the same variable name twice in a single sentence (unless you really meant to).

So ( x P(x) ) ( x Q(x) )

becomes

( x P(x) ) ( z Q(z) )

Gloss over!

Move Quantifiers left

Move all quantifiers left, but keep them in order!

So x P(x) y Q(y)

becomes

x y P(x) Q(y)

Gloss over!

Skolemize {Eliminate Existential Quantifiers, Drop Universal Quantifiers }

Existential quantifiers can be eliminated by the introduction of a new constant that does not appear elsewhere in the database.

x P(x) Q(x) becomes P(A) Q(A) SUBST{x/A}

One possible complication occurs if we also have Universal quantifiers… Consider

x person(x) y heart(y) has(x,y)Becomes by SUBST{y/H}

x person(x) heart(H) has(x,H)!!!

Instead we have to create a new (Skolem) function to map from a person to their heart F(x)

x person(x) heart(F(x)) has(x,F(x))

Drop Universal Quantifiers

Gloss over!

Distribute over

(A B) C becomes (A C) (A B)

Just like distribution in arithmetic

(5 + 4) * 6 becomes (5 * 6 ) + (4 * 6 )

Gloss over!

Flatten nested conjunctions and disjunctions.

(A B) C becomes (A B C)

(A B) C becomes (A B C)Gloss over!

Done!!• Eliminate Implications• Move inwards• Standardize Variables• Move Quantifiers left• Skolemize {Eliminate Existential Quantifiers, Drop Universal Quantifiers }

• Distribute over • Flatten nested conjunctions and disjunctions.

Once we have done all the above steps, our KB is in CNF. We can now do resolution refutation.

There is still an element of search, we have to decide which pairs of sentences to resolve, and which substitutions we should use. The goal is simply to find a contradiction.

There are many heuristics for the search (Our textbook lists Unit preference, Set of support, Input resolution )

Bad News

• Even with all the heuristics resolution is exponential in general.

• Resolution is complete, but only semidecidable.

If our KB implies A (or it implies A), resolution will find the proof in finite time. But if the KB does not implies A (or A), resolution will simply run forever.