我无法理解以下有关命题逻辑和蕴涵的算法,取自《人工智能现代方法》一书。
一种用于确定命题蕴涵的真值表枚举算法。TT 代表真值表。PL-真?如果句子在模型中成立,则返回 true。变量模型表示仅对某些变量的部分模型分配。函数调用 EXTEND(P, true, model) 返回一个新的部分模型,其中 P 的值为 true。
function TT-ENTAILS? (KB,α) returns true or false
inputs: KB, the knowledge base, a sentence in propositional logic
α, the query, a sentence in propositional logic
symbols <--- a list of the propositional symbols in KB and α
return TT-CHECK-ALL(KB,α,symbols,[])
function TT-CHECK-ALL(KB,α,symbols,model ) returns true or false
if EMPTY?(symbols) then
if PL-TRUE?(KB, model) then return PL-TRUE?(α,model)
else return true
else do
P <---FIRST(symbols); rest <--- REST(symbols)
return TT-CHECK-ALL(KB,α,rest,EXTEND(P,true,model) and
TT-CHECK-ALL(KB, α, rest, EXTEND(P,false,model)