Document 6592282

Transcription

Document 6592282
Logical Agents
Chapter 7.
248
B1,1
B2,1
P1,1
P1,2
P2,1
P2,2
P3,1
R1
R2
R3
R4
R5
KB
false
false
..
false
false
false
false
false
false
false
false
false
false
false
true
.
.
true
true
..
true
true
•
.
true
false
..
tree
tree
•
.
false
false
..
false
false
•.
.
false
true
false
false
false
false
false
true
true
false
true
true
false
false
false
false
false
false
true
true
false
true
false
eee
false
false
false
false
false
true
true
true
false
-.
.
true
true
..
.
true
false
-.
.
true
false
true
-.
.
false
..
false
•.
.
true
•.
.
false
-.
.
false
•.
.
true
-.
.
true
•.
.
false
-.
.
true
true
false
true
true
false
true
false
true
true
true
true
`ei
false
false
..
true
true
Figure 7.9 A truth table constructed for the knowledge base given in the text KB is true
if RI through R5 are true, which occurs in just 3 of the 128 rows the ones underlined in the
right-hand column). In all 3 rows, P1,2 is false, so there is no pit in [1,21. On the other hand,
there might (or might not) be a pit in [2,21.
function TT-ENTAlLS?(KB, a) returns true or false
inputs: KB, the knowledge base, a sentence in propositional logic
a, the query, a sentence in propositional logic
symbols a list of the proposition symbols in KB and a
return TT-CHECK-ALL( KB , a, symbols, {})
function TT-CHECK-ALL(KB, a, symbols, model) returns true or false
if EMPTY?(symbols) then
if PL - TRUE?(KB, model) then return PL - TRUE?(ct, model)
else return true // when KB is false, always return true
else do
P
Fats -r(symbols)
rest 4— REST(symbols)
return (TT-CHECK-ALL(KB, 0, rest, model U {P = true})
and
TT-CHECK-M..(KB, , rest, model U {P = false }))
Figure 7.10 A truth-table enumeration algorithm for deciding propositional entailment.
(TT stands for truth table.) PL-TRUE? returns true if a sentence holds within a model. The
variable model represents a partial model—an assignment to some of the symbols. The keyword "and" is used here as a logical operation on its two arguments, returning true or false.
Section 7.5.
Propositional Theorem Proving
(a A /3)
(a V /3)
((a A ,(3) A 7)
((a V
0)
V 7)
(a 4 /3)
(a
/3)
<=>.
–.(a A 0)
–
(a A
(a V
Figure 7.11
.( aV
249
commutativity of A
(0 V a) commutativity of V
(,0 A a)
(a A (B A 7)) associativity of A
(a V (0 V 7)) associativity of V
a double-negation elimination
(–/3 4 –, a) contraposition
(–a V 0) implication elimination
((a = 0) A (/3
a)) hiconditional elimination
(–a V –,,(3) De Morgan
a ll –,f3) De Morgan
((a A 3) V (a A 7)) distributivity of A over V
((a V 0) A (a V 7)) distributivity of V over A
13) = (–
(0 V 7))
(0 A 7))
Standard logical equivalences. The symbols a, 13, and -y stand for arbitrary
sentences of propositional logic.
7.5 PROPOSITIONAL THEOREM PROVING
So far,
THEOREM PROVING
LOSECAL
FC.JIVAL EMT
VALIDITY
TAUTOLOGY
DIDLIGTIDN
THEOREM
we have shown how to determine entailment by model checking: enumerating models
and showing that the sentence must hold in all models. In this section, we show how entailment can be done by theorem proving —applying rules of inference directly to the sentences
in our knowledge base to construct a proof of the desired sentence without consulting models.
If the number of models is large but the length of the proof is short, then theorem proving can
be more efficient than model checking.
Before we plunge into the details of theorem-proving algorithms, we will need some
additional concepts related to entailment. The first concept is logical equivalence: two sentences a and 0 are logically equivalent if they are true in the same set of models. We write
this as a
11. For example, we can easily show (using tnith tables) that P A
and Q A P
are logically equivalent; other equivalences are shown in Figure 7.11. These equivalences
play much the same role in logic as arithmetic identities do in ordinary mathematics. An
alternative definition of equivalence is as follows: any two sentences a and 0 are equivalent
only if each of them entails the other:
if and only if Et H 0 and fi if .
The second concept we will need is validity. A sentence is valid if it is true in all models. For
example, the sentence P V .P is valid. Valid sentences are also known as tautologies—they
are necessarill , true. Because the sentence True is true in all models, every valid sentence
is logically equivalent to True What good are valid sentences? From our definition of
entailment, we can derive the deduction theorem, which was known to the ancient Greeks:
For any sentences a and
= /3 if and only if the sentence (a
fi ) is valid.
(Exercise 7.5 asks for a proof.) Hence, we can decide if a
/3 by checking that (a
0) is
true in every model—which is essentially what the inference algorithm in Figure 7.10 does-