1

我在 ASP(答案集编程)中尝试了两个简单的程序,然后我使用答案集求解器 DLV 来找到答案集(也称为稳定模型);这些程序是

P1:

b :- c.  
c.

P2:

b :- c.  
f.

在 P1 dlv 中找到 {c, b} 作为答案集,在 P2 中找到的答案集是 {f};我不明白为什么答案集在 P1 中是 {c,b},而在 P2 中只有 {f};作为(最小)模型,P1 中的 {c} 还不够吗?

谢谢

4

1 回答 1

1

那是因为{c}不是P1.


在地面(无变量)正(所有物体均为正)程序的情况下,约束非常简单:

  1. 要使解释成为接地积极计划的模型,还必须应用每条适用的规则,其中:

    • 适用:对于地面积极的程序,正文中的所有文字都包含在解释中,
    • 应用:包含一个头原子的解释。
  2. 对于要成为答案集的模型,它必须在该程序的所有模型的集合中最小。

所以,在P1你有这个规则:

b :- c.

对于解释{c},它是适用的(因为c在解释中),但不适用(因为b不是)。

至于P2,我们有事实f.,这意味着您必须f在任何答案集中都有(因为f.是相同的f :-,这意味着它总是适用的)。但是,f并没有使规则b :- c适用,并且没有其他规则,因此{f}是 的模型P2,并且显然也是最小的模型 - 答案集。

因此, eg{c,b,f}不是 的答案集P2,因为与 相比它不是最小的{f}

于 2014-01-16T15:13:59.333 回答