Herbrand宇宙和最少的herbrand模型

时间:2014-01-27 15:19:48

标签: prolog logic-programming

我阅读了Herbrand universe, Herbrand Base and Herbrand Model of binary tree (prolog)中提出的问题和给出的答案,但我有一个稍微不同的问题,更像是确认,希望我的混淆得到澄清。

让P成为一个程序,以便我们有以下事实和规则:

q(a, g(b)).
q(b, g(b)).
q(X, g(X)) :- q(X, g(g(g(X)))).

来自上述计划,Herbrand Universe

Up = {a, b, g(a), g(b), q(a, g(a)), q(a, g(b)), q(b, g(a)), q(b, g(b)), g(g(a)), g(g(b))...e.t.c}

Herbrand base:

Bp = {q(s, t) | s, t E Up}
  • 现在回答我的问题(请原谅我的无知),我将q(a,g(a))作为我的Herbrand Universe中的一个元素,但事实上,它表示q(a,g(b)) 。这是否意味着q(a,g(a))并不认为存在?
  • 此外,由于Herbrand模型是Herbrand基础的子集,我如何通过归纳确定最少的Herbrand模型?

注意:我已经对此做了很多研究,有些部分对我来说很清楚,但我仍然怀疑这就是为什么我想寻求社区意见。谢谢。

2 个答案:

答案 0 :(得分:8)

从事实q(a,g(b))开始,您无法断定模型中是否有q(a,g(a))。您必须先生成模型。

要确定模型,请从事实{q(a,g(b)), q(b,g(b))}开始,现在尝试应用规则来扩展它。但是,在您的情况下,无法将规则q(X,g(X)) :- q(X,g(g(g(X)))).的右侧与上述事实相匹配。因此,你已经完成了。

现在想象规则

q(a,g(Y)) :- q(b,Y).

此规则可用于扩展我们的集合。实际上,实例

q(a,g(g(b))) :- q(b,g(b)).
使用

:如果存在q(b,g(b)),请结束q(a,g(g(b)))。请注意,我们在这里使用从右到左的规则。所以我们获得了

{q(a,g(b)), q(b,g(b)), q(a,g(g(b)))}

从而达到了一个固定点。

现在再举一个你建议规则的例子

q(X, g(g(g(X)))) :- q(X, g(X)).

允许(我将不再显示实例化的规则)一步生成:

{q(a,g(b)), q(b,g(b)), q(a,g(g(g(b)))), q(b, g(g(g(b))))}

但这不是结束,因为再一次,规则可以应用于生产更多!事实上,你现在有一个无限的模型!

{g(a,gn+1(b)), g(b, gn+1(b))}

当您尝试了解Prolog中的递归规则时,从右向左阅读通常非常有用。自上而下的阅读(从左到右)通常非常困难,因为你必须考虑回溯和一般统一。

答案 1 :(得分:3)

关于你的问题:

"此外,由于Herbrand模型是Herbrand基础的子集,我如何通过归纳确定最少的Herbrand模型?"

如果你有一套P的喇叭条款,那么你可以定义明确的程序 程序运营商:

T_P(M) := { H S | S is ground substitution, (H :- B) in P and B S in M }

最少的模型是:

inf(P) := intersect { M | M |= P }

请注意,并非所有明确程序的模型都是 程序操作员。例如,完整的herbrand模型始终是模型 程序P,表明确定的程序总是一致的,但是 它不一定是固定点。

另一方面,程序运算符的每个定位点都是一个模型 明确的计划。即如果你有T_P(M)= M,那么可以得出结论 M | = P.因此,在经过一些进一步的数学推理(*)后,人们发现了这一点 最小的固定点也是最少的模型:

lfp(T_P) = inf(P)

但我们需要进一步考虑,以便我们可以说我们可以确定 一种计算最少的模型。即一个人容易观察到的 程序运算符是连续的,即保留链的无限联合,因为 喇叭条款在他们的身体中没有forall量词:

union_i T_P(M_i) = T_P(union_i M_i)

所以在经过一些进一步的数学推理(*)后,人们发现我们可以 通过迭代计算最小的固定点,可以用来简单 感应。最小模型的每个元素都有一个简单的有限元推导 深度:

union_i T_P^i({}) = lpf(T_P)

再见

(*) 您很可能会在确切的数学推理上找到进一步的提示 本书需要,但遗憾的是我无法回想起哪些部分 是相关的:
逻辑程序设计基础,John Wylie Lloyd,1984年 http://www.amazon.de/Foundations-Programming-Computation-Artificial-Intelligence/dp/3642968287