鲁滨逊归结法的两个注意点

要点一:不必用尽所有子句

归结证明的核心是找到一条通往矛盾(NIL)的路径。只要成功推导出一个NIL,证明就完成了,无需使用集合中的每一个子句。

示例说明:
这个例子是典型的归结反演证明。我们首先将前提F和结论G的否定(¬G)转化为一个包含5个子句的集合:

  • 前提F 化为子句:
    1. ¬A(x,y) ∨ ¬B(y) ∨ C(f(x))
    2. ¬A(u,v) ∨ ¬B(v) ∨ D(u,f(u))
  • ¬G 化为子句:
    1. ¬C(z)
    2. A(m,n)
    3. B(n)

证明路径:

  1. (1)(3) 归结 → (6) ¬A(x,y) ∨ ¬B(y)
  2. (6)(4) 归结 → (7) ¬B(n)
  3. (7)(5) 归结 → NIL

在这个成功的证明路径中,子句 (2) 并未被使用,这完全是允许的。


要点二:同一子句可以重复使用

在归结过程中,任何一个子句(无论是原始的还是新推导出的)都可以被看作是一个“已知事实”,因此可以被重复使用任意多次

示例说明:
假设我们有如下子句:

  1. ¬P(x) ∨ P(f(x))
  2. P(a)
  3. ¬P(f(f(a)))

证明路径:

  1. (1)(2) 归结 → (4) P(f(a))
  2. 再次使用 (1)(4) 归结 → (5) P(f(f(a)))
  3. (5)(3) 归结 → NIL

在这个证明中,子句 (1) 就被成功地使用了两次。


一句话总结:归结证明是一个灵活的寻路过程,你只需利用知识库中(可复用的)部分事实,找到一条路通向NIL即可。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容