我在 ASP(答案集编程)中尝试了两个简单的程序,然后我使用答案集求解器 DLV 来找到答案集(也称为稳定模型);这些程序是
P1:
b :- c.
c.
P2:
b :- c.
f.
在 P1 dlv 中找到 {c, b} 作为答案集,在 P2 中找到的答案集是 {f};我不明白为什么答案集在 P1 中是 {c,b},而在 P2 中只有 {f};作为(最小)模型,P1 中的 {c} 还不够吗?
谢谢
我在 ASP(答案集编程)中尝试了两个简单的程序,然后我使用答案集求解器 DLV 来找到答案集(也称为稳定模型);这些程序是
P1:
b :- c.
c.
P2:
b :- c.
f.
在 P1 dlv 中找到 {c, b} 作为答案集,在 P2 中找到的答案集是 {f};我不明白为什么答案集在 P1 中是 {c,b},而在 P2 中只有 {f};作为(最小)模型,P1 中的 {c} 还不够吗?
谢谢
那是因为{c}
不是P1
.
在地面(无变量)正(所有物体均为正)程序的情况下,约束非常简单:
要使解释成为接地积极计划的模型,还必须应用每条适用的规则,其中:
所以,在P1
你有这个规则:
b :- c.
对于解释{c}
,它是适用的(因为c
在解释中),但不适用(因为b
不是)。
至于P2
,我们有事实f.
,这意味着您必须f
在任何答案集中都有(因为f.
是相同的f :-
,这意味着它总是适用的)。但是,f
并没有使规则b :- c
适用,并且没有其他规则,因此{f}
是 的模型P2
,并且显然也是最小的模型 - 答案集。
因此, eg{c,b,f}
不是 的答案集P2
,因为与 相比它不是最小的{f}
。