什么是统一的(实际)的应用程序?它实际上是被在现实世界中使用?

我不明白的是关于什么的,为什么它被视为人工智能的一部分的整体思路。

有帮助吗?

解决方案

统实质上的取代的处理。我已经看到了被称为“双向匹配”。

在Prolog中,在其它逻辑编程语言和语言文字直接基于重写逻辑(莫德伊兰时,等等)是通过其游离的(逻辑)的变量是结合方面机构/值。在并行的Prolog这些变量被解释为通信信道。

IMO,更好的方式来理解它是从数学一些实例中(统一是/是一个基本密钥机制,例如,在自动定理证明研究,AI的子字段中的上下文;在另一种使用类型推理算法的)。随后从计算机代数系统(CAS)

<强>第一示例:

给定一组Q和两个二进制运算*和+它,然后*是左分配超过+,如果:

X * (Y + Z)   =   (X * Y) + (X * Z)   |1|

这是一个重写规则(一组的重写规则是 重写系统 )。

如果我们想这个重写规则适用于特定的情况下,说:

a * (1 + b)   |2|

我们的统一(经由统一算法)这个术语,| 2 |,与左侧 LHS )的| 1 |我们有此(琐碎故意)取代(的最通用的合一 MGU ):

{X/a, Y/1, Z/b}   |3|

现在,应用| 3 |到右手侧 RHS )的| 1 |,我们有,终于:

(a * 1) + (a * b)

这是简单,欣赏一下统一能做到的我都会表现出一点更为复杂的例子。

<强>第二个例子:

鉴于这种重写规则:

log(X,Y) + log(X,Z)   =>   log(X,Y*Z)   |4|

我们将其应用到该方程:

log(e,(x+1)) + log(e,(x-1)) = k   |5|

(的 LHS | 5 |统一到 LHS 的| 4 |),因此我们有此 MGU

{X/e, Y/(x+1), Z/(x-1)}   |6|

请注意X和x是两个不同的变量。在这里,我们有两个变量,X和Y,匹配其中两个 复合术语 时,(X + 1)和(x-1),而不是简单的值或变量。

我们应用此 MGU ,| 6 |,至 RHS 的| 4 |然后我们把这个背在| 5 |;因此,我们有:

log(e,(x+1)*(x-1)) = k   |7|

等。

(希望没任何错误或者这可以迷惑新手甚至更多。)

其他提示

统是在类型推断的关键机制。实事求是地讲,统一在这种情况下会大大降低你的手指上的磨损。

的Prolog 时,例如,使用统一找到值满足规则的变量 - 见为例这种解释。我希望这是在一般的逻辑编程语言的典型技术,虽然我没有与任何其他人的经验。

统是一样的模式匹配,在此揉在一起的两个结构,其中在一个变量被允许在其他匹配的值。

统一的最简单形式,只要您拨打一个正常的语言功能发生。呼叫者有争论,而被叫方参数。的参数“结合到”的参数,和产生该函数的一个实例。

统的另一种简单的形式是,当您使用匹配正则表达式,例如在命令提示你可能会说dir x*y*.z*将匹配一些但不是所有的文件名。

人工智能喜欢让推理引擎的使用,要尽量从知识的语料库模拟推理,通常在一个逻辑语句的形式。要挑选一个愚蠢的例子,你可能“知道”“凡人皆有死”,如forall(x)(man(x) implies mortal(x))。然后,如果你问一个问题:“是山姆凡人”为mortal(Sam)?,你可以统一与规则得到一个新的问题:“萨姆是一个人” man(Sam)?

希望有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top