280 likes | 723 Views
Limitations of Propositional Logic. 1. It is too weak, i.e., has very limited expressiveness: Each rule has to be represented for each situation: e.g., “don’t go forward if the wumpus is in front of you” takes 64 rules 2. It cannot keep track of changes:
E N D
Limitations of Propositional Logic 1. It is too weak, i.e., has very limited expressiveness: • Each rule has to be represented for each situation:e.g., “don’t go forward if the wumpus is in front of you” takes 64 rules 2. It cannot keep track of changes: • If one needs to track changes, e.g., where the agent has been before then we need a timed-version of each rule. To track 100 steps we’ll then need 6400 rules for the previous example. Its hard to write and maintain such a huge rule-base Inference becomes intractable
5.3 Predicate Logic - Introduction • Greater expressive power than propositional logic • Predicate logic expression consists of a predicate name followed by a list of arguments • The number of elements in the list of arguments is the predicate’s arity • Two quantifiers can be applied to predicate variables
Predicate logic Predicate Logic is more expressive, because it allows us to represent : • Objects • Predicates (facts) • Variables
Assume we have the following assertions (facts) • Comet is a horse • Prancer is a horse • Comet is parent of Dasher • Comet is a parent of Prancer • Prancer is fast • Dasher is a parent of Thunder • Thunder is fast • Thunder is a horse • Dasher is a horse
Write predicate logic sentences for these facts : To do so, we need to understand the concepts of: • Objects • Comet, Prancer, Dasher, etc • Predicates (facts) • horse [horse(Comet)] • parent-of [parent-of(Comet,Dasher)] • Variables • horse(x)
Comet is a horse Prancer is a horse Comet is parent of Dasher Comet is a parent of Prancer Prancer is fast Dasher is a parent of Thunder Thunder is fast Thunder is a horse Dasher is a horse horse(Comet) horse(Prancer) parent-of(Comet,Dasher) parent-of(Comet,Prancer) fast(Prancer) parent-of(Dasher,Thunder) fast(Thunder) horse(Thunder) horse(Dasher) Thus, we can write
We also can write compound statements such as: • not( horse(Schafer) ) • horse(Comet) and parent-of(Comet,Dasher) • winner(Prancer) implies fast(Prancer)
Suppose we have the following rule (relation) R1:if x is-a horse x is-parent-of y y is-fast then x is valuable
Bindings In general, there will be variables in the rules which stand for arbitrary objects. We need to find bindings for them so that the rule is applicable.
Bindings R1:if x is-a horse x is-parent-of y y is-fast then x is valuable
Bindings From these we can deduce that there are two possible bindings applicable to the rule: x = Comet and y = Prancer x = Dasher and y = Thunder Since x is valuable, Comet is valuable and Dasher is valuable
Forward Chaining • Forward Chaining or data-driven inference works by repeatedly: starting from the current state, matching the premises of the rules (the IF parts), and performing the corresponding actions (the then parts) that usually update the knowledge base or working memory. • The process continues until no more rules can be applied, or some cycle limit is met.
Forward Chaining • In this example there are no more rules, so we can draw the inference chain: • This seems simple enough, but this had few initial facts and few rules.
Disadvantages of Forward Chaining • Many rules may be applicable at each stage – so how should we choose which one to apply next at each stage? • The whole process is not directed towards a goal, so how do we know when to stop applying the rules?
Backward Chaining • Backward chaining or goal-driven inference works towards a final state by looking at the working memory to see if the sub-goal states already exist there. If not, the actions (the THEN parts) of the rules that will establish the sub-goals are identified and new sub-goals are set up for achieving the premises of those rules (the IF parts).
Backward Chaining • The previous example now becomes:
Backward Chaining • The first part of the chain works back from the goal until only the initial facts are required, at which point we know how to traverse the chain to achieve the goal state.
Backward Chaining • Advantage • The search is goal directed, so we only apply the rules that are necessary to achieve the goal. • Disadvantage • The goal has to be known. • Fortunately, many AI systems can be formulated in a goal based fashion.
Predicate logic Predicate Logic is more expressive, because it allows us to represent : • Objects • Predicates (facts) • Variables • Quantifiers
Quantifiers • A key to predicate logic we have been ignoring is the inclusion of quantifiers • You should recall from discrete that you can also write statements such as • x fast(x) implies horse(x) • y fast(y) implies valuable(y)
Quantifiers • Existential quantifier (∃) • ∃x– “there exists an x” • One or more values of x are guaranteed to exist • Universal quantifier (∀) • ∀x – “for all x” • The expression is stating something is true for all values that x can assume
Examples of Predicate Logic • (~Win(you) ⇒ Lose(you)) /\ (Lose(you) ⇒ Win(me)) • If you don’t win, then you lose and if you lose then I win • (∃x)[Natural_number(x) /\ Divisible_by_2(x)] • Some natural numbers are even • (∀x){[Animal(x) /\ Has_Hair(x) /\ Warm_Blooded(x)] ⇒ Mammal(x)} • If x is a warm-blooded animal with hair then x is a mammal
Represent the following sentences in predicate logic • Schafer is a Hoosier • Hoosiers like basketball. • Children of basketball fans are basketball fans. • Basketball fans like the month of March. • Margaret is Schafer's daughter