88、逻辑与数据挖掘技术详解

逻辑与数据挖掘技术详解

一阶逻辑

在逻辑编程中,我们可以将原始目标转化为更接近解决方案的新目标。反驳是一系列目标 (G, G_1, G_2, \cdots, G_n),其中 (G) 是原始目标,每个 (G_i) 是通过将 (G_{i - 1}) 与程序 (P) 中的子句进行消解得到的,并且 (G_n = \bot)。这样的反驳表明 (P \cup {G}) 是不一致的,因此 (P \models \neg G)。

寻找反驳实际上是一个搜索问题,因为通常有多个程序子句可以与当前目标进行消解。几乎所有的 Prolog 解释器都采用深度优先搜索过程,从左到右搜索目标文字,从上到下搜索程序子句。一旦找到反驳,就将所有消解步骤中收集的替换组合起来,得到答案替换。逻辑编程的一个独特特点是,一个目标可能有多个(或少于一个)反驳和答案替换。

以下是一个 Prolog 程序示例,用于定义 Peano 算术的加法:

peano_sum(0,Y,Y).
peano_sum(s(X),Y,s(Z)) :- peano_sum(X,Y,Z).

在这个程序中,变量以大写字母开头, :- 表示反向蕴含或“如果”。一元函子 s 表示后继函数。第一个规则表示“0 和任意数 (y) 的和是 (y)”,第二个规则表示“如果 (x) 和 (y) 的和是 (z),那么 (x + 1) 和 (y) 的和是 (z + 1)”。

例如,目标 :- peano_sum(s(0),s(s(0)), Q)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值