Download presentation
Presentation is loading. Please wait.
1
Horn Clauses and Unification
Propositional Logic Clauses Resolution Predicate Logic Horn Clauses Unification Resolution of Horn Clauses CSE S. Tanimoto Horn Clauses and Unification
2
CSE 341 -- S. Tanimoto Horn Clauses and Unification
Propositional Logic If the butler had a motive and the butler was alone with the victim then the butler is guilty. Define our atomic formulas: P: The butler had a motive. Q: The butler was alone. R: The butler is guilty. Express the compound formula: (P & Q) -> R CSE S. Tanimoto Horn Clauses and Unification
3
CSE 341 -- S. Tanimoto Horn Clauses and Unification
Clause Form Any boolean formula can be put into conjunctive normal form (CNF). If not Y then X and not Z. Y or (X & not Z) (Y or X & (Y or not Z) (X V Y) & (Y V ~Z) clauses: (X V Y), (Y V ~Z) X, Y, and ~Z are called literals. Each clause is a disjunction of literals. A formula in CNF is a conjunction of clauses. For our example with the butler, we get the following clause: ~ P V ~ Q V R CSE S. Tanimoto Horn Clauses and Unification
4
CSE 341 -- S. Tanimoto Horn Clauses and Unification
Resolution Resolution is a way to make a new clause from two existing clauses. If the two original clauses were true, then the new one is, too. The two existing clauses must be compatible, in order to use resolution. There must exist some literal in one clause that occurs negated in the other clause. Example: Clause 1: A V ~ B V C Clause 2: B V D These are compatible, because the literal ~B in Clause 1 occurs negated (as B) in Clause 2. These two clauses have a unique resolvent, since there is only one complementary literal, B. The resolvent is formed by disjoining (i.e., combining with "V" all the literals of clause 1 and clause 2 except the ones involving B. This results in A V C V D. CSE S. Tanimoto Horn Clauses and Unification
5
CSE 341 -- S. Tanimoto Horn Clauses and Unification
Predicate Logic “Every Macintosh computer uses electricity.” (all x) (Macintosh(x) implies UsesElectricity(x)) variables: x, y, z, etc. constants: a, b, c, etc. function symbols: f, g, etc. Predicate symbols: P, Q, Macintosh, UsesElectricity quantifiers: all, exists Logical connectives: not, implies, and, or. ~, ->, &, V. CSE S. Tanimoto Horn Clauses and Unification
6
CSE 341 -- S. Tanimoto Horn Clauses and Unification
Clause Form (all x) (Macintosh(x) -> UsesElectricity(x) UsesElectricity(x) V Not Macintosh(x). Clause form for predicate calculus expressions is similar to that for propositional calculus expressions. To achieve clause form, several steps may be required. a. Rewrite X -> Y expressions as ~ X V Y. b. Reduce scopes of negation. c. Using strict rules, eliminate quantifiers. If the scope of a universal quantifier is the whole formula, then drop the quantifier, the quantification will be implicit. Using Skolem constants and or Skolem functions, remove any existential quantifiers. d. Convert to conjunctive normal form CSE S. Tanimoto Horn Clauses and Unification
7
CSE 341 -- S. Tanimoto Horn Clauses and Unification
Horn clause: at most one unnegated literal (X V Y) is not a Horn clause. (Y V ~Z) is a Horn clause. “If X is the mother of Y and Y is a parent of Z, then X is a grandmother of Z.” (m(X,Y) & p(Y, Z)) -> g(X,Z). grandmother(X, Z) provided mother(X, Y) and parent (Y, Z) g(X,Z) :- m(X,Y), p(Y,Z). ; Edinburgh Prolog syntax grandmother(X, Z) : % head mother(X, Y), % subgoal 1 parent(Y, Z) % subgoal 2 CSE S. Tanimoto Horn Clauses and Unification
8
How Does Matching Work in Prolog?
Literals are matched using a method called unification. The scope of a variable in Prolog is a single clause. Unification involves substituting “terms” for variables. CSE S. Tanimoto Horn Clauses and Unification
9
Unification of Literals
A substitution is a set of term/variable pairs. { f(a)/x, b/y, z/w } A unifier for a pair of literals is a substitution that when applied to both literals, makes them identical. P(x, a), P(f(a), y) have the unifier { f(a)/x, a/y } P(x), P(y) have the unifier { a/x, a/y }, but they also have the unifier { x/y }. The latter is more general because after unifying with { x/y} we get P(x) whereas with the other it is P(a), yet we can obtain the latter from the former with an additional substitution { a/x }. CSE S. Tanimoto Horn Clauses and Unification
10
Horn-Clause Resolution
Example of resolution with the grandmother rules: g(X, Z) :- m(X, Y), p(Y, Z). m(X, Y) :- p(X, Y), f(X). g(X, Z) :- p(X, Y), f(X), p(Y, Z). more generally, from: P :- Q1, Q2. Q1 :- R1, R2. we obtain the resolvent: P :- R1, R2, Q2 CSE S. Tanimoto Horn Clauses and Unification
11
A Backtracking Horn-Clause Resolver
Maintain the rules in a database of rules. Accept a query (goal) as a positive unit clause, e.g., P(a, b). Put this goal on the subgoal list. Repeatedly try to satisfy the next clause on the subgoal list as follows: Find a rule in the database whose head unifies with the subgoal. Apply the same unifier to the literals in the body of that rule and replace the subgoal by these new literals. If the subgoal list is empty, stop. The combined set of unifiers includes the solution. CSE S. Tanimoto Horn Clauses and Unification
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.