我知道这只是编程问题的一部分,但目前我正在做一些逻辑编程.我仍然无法正确理解的一件事是一阶逻辑中的统一.
我阅读了维基百科的文章,或多或少都清楚,目的是搜索一个统一两个句子的术语......本文中也有一些例子,但我不明白为什么这应该是有用的.任何人都可以举例说明真实世界的物体而不是A,B,C等吗?我希望这能帮助我理解.谢谢
感谢您的详细解答.现在我真的明白了.但是,我想在这里写下我在Stuart Russell和Peter Norvig所着的"人工智能:现代方法"一书中找到的一个例子,以防有人再次寻找同样的问题.我认为这个答案使用了一种非常实用的方法:
提升推理规则要求查找使不同逻辑表达式看起来相同的替换.此过程称为统一,是所有一阶推理算法的关键组成部分.UNIFY算法采用两个句子,如果存在,则为它们返回一个统一符.
让我们看一下UNIFY应该如何表现的一些例子.假设我们有一个查询Knows(John,x):John知道谁?通过查找与Knows(John,x)统一的知识库中的所有句子,可以找到对此查询的一些答案.以下是可能在知识库中的四个不同句子的统一结果:
UNIFY(Knows(John, x), Knows(John, Jane)) = {x/Jane} UNIFY(Knows(John, x), Knows(y, Bill)) = {x/Bill, y/John} UNIFY(Knows(John, x), Knows(y, Mother(y))) = {y/John, x/Mother(John)} UNIFY(Knows(John, x), Knows(x, Elisabeth)) = fail
最后的统一失败是因为x不能同时接受John和Elizabeth的值.