一阶逻辑中统一的真实世界的例子?

5 logic computer-science unification

我知道这只是编程问题的一部分,但目前我正在做一些逻辑编程.我仍然无法正确理解的一件事是一阶逻辑中的统一.

我阅读了维基百科的文章,或多或少都清楚,目的是搜索一个统一两个句子的术语......本文中也有一些例子,但我不明白为什么这应该是有用的.任何人都可以举例说明真实世界的物体而不是A,B,C等吗?我希望这能帮助我理解.谢谢

小智 5

感谢您的详细解答.现在我真的明白了.但是,我想在这里写下我在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
Run Code Online (Sandbox Code Playgroud)

最后的统一失败是因为x不能同时接受John和Elizabeth的值.


小智 3

如果您正在查看使用统一且有用的现实世界示例,请查看计算语言学中使用的基于统一的语法,例如 HPSG 和 LFG。表面上看,这像是另一种统一的味道,但实际上它们是一样的。

基于统一的语法可以被认为是 CFG(上下文无关语法),其中产生式通过统一进行扩展。CGF 中的每一项都有一个 AVM(属性值矩阵),它是特征和值的有向无环图。这里的想法有点类似于编译器中使用的属性语法。

想象一下这个玩具语法:

 S -> NP VP  
 NP -> Kim  
 NP -> The cats  
 VP -> V NP  
 V -> see  
 V -> sees
Run Code Online (Sandbox Code Playgroud)

协议中我们有一些轻微的过度生成:

*猫看到 Kim [S [NP 猫] [VP [V 看到] [NP Kim]]]

为了解决这个问题,我们可以改进 CFG 以包含协议的概念:

 S -> NP_sg VP_sg  
 S -> NP_sg VP_pl  
 NP_sg -> Kim  
 NP_pl -> The cats  
 VP_sg -> V_sg NP_sg  
 VP_sg -> V_sg NP_pl  
 V_sg -> sees  
 V_pl -> see  
 VP_pl -> V_pl NP_pl  
 VP_pl -> V_pl NP_sg
Run Code Online (Sandbox Code Playgroud)

在这里我们将拒绝以前的超世代。但这很快就会导致组合爆炸。然而,我们可以用 AVM 来扩充每个术语,并在解析时将它们统一在一起:

 S -> NP VP , C = A unified with B.  
 NP -> kim /[ AGR sg ]. We mark Kim as being singular   
 NP -> The cats / [ AGR pl ]  
 VP[ AGR #1 ] -> V [ AGR #1 ] NP 
Run Code Online (Sandbox Code Playgroud)

#1 表示法是可重入,这意味着该特征的值必须相同,事实上,统一后它们将指向图中的同一节点(如果成功的话)。这里实际上我们说动词短语的一致特征与短语中动词的一致特征相同。

 V -> See / [ AGR pl ]  
 V -> Sees / [ AGR sg ]
Run Code Online (Sandbox Code Playgroud)

使用我们的增强玩具语法“Kim see the cats”会被拒绝,因为 NP 和 VP 不会统一,其 AGR 特征具有不同的值。当我们进行解析时,我们将 AVM 统一在一起,因此获得了很大的表达能力,使语法工程师可以轻松编写语法。通常,广泛覆盖的 UBG 具有大约一百条规则,而等效的 CFG (可能不存在)具有统一性的 CFG 是图灵完备的,将具有数千或更多的规则。

有关详细信息,请参阅 HPSGLFG