程序的答案集-为什么空集不是答案集?

时间:2018-10-05 09:51:58

标签: logic-programming answer-set-programming

我对答案集的定义有些困惑。

如果S是P的最小模型,则S是P的答案集。

当我有一个程序

b :- a
a.

然后我知道我的答案集必须为{a,b},因为a是事实。

如果我有类似的东西会发生什么

a :- b

在我发现的幻灯片中,他们指出a是答案集。但是据我了解,当b = true表示a = true时,满足该规则。

因此,如果我设置a = false和b = false,那么规则也将得到满足。

为什么空集不是答案集? (因为它是{a}的子集)

1 个答案:

答案 0 :(得分:2)

空集a :- b.的答案集。尝试在线运行示例:https://potassco.org/clingo/run/

clingo version 5.3.0
Reading from stdin
-:1:6-7: info: atom does not occur in any rule head:
  b

Solving...
Answer: 1

SATISFIABLE

Models       : 1

(请注意“答案:1”和“满意”->空集之间的空行)