程序的答案集——为什么空集不是答案集?
Answer set of a program - why is the empty set not an answer set?
我对答案集的定义有点困惑。
如果S是P的最小模型,则S是P的答案集。
当我有节目时
b :- a
a.
然后我知道我的答案集必须是{a,b},因为a是事实。
如果我遇到类似
的情况会怎样
a :- b
在我找到的幻灯片中,他们声明 a 是一个答案集。但据我了解,当 b = true 意味着 a = true 时,规则得到满足。
所以如果我设置 a = false 和 b = false 那么规则也会被满足。
为什么空集不是答案集? (因为它将是 {a} 的子集)
空集是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
(注意 "Answer: 1" 和 "SATISFIABLE" 之间的空行 -> 空集)
我对答案集的定义有点困惑。
如果S是P的最小模型,则S是P的答案集。
当我有节目时
b :- a
a.
然后我知道我的答案集必须是{a,b},因为a是事实。
如果我遇到类似
的情况会怎样a :- b
在我找到的幻灯片中,他们声明 a 是一个答案集。但据我了解,当 b = true 意味着 a = true 时,规则得到满足。
所以如果我设置 a = false 和 b = false 那么规则也会被满足。
为什么空集不是答案集? (因为它将是 {a} 的子集)
空集是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
(注意 "Answer: 1" 和 "SATISFIABLE" 之间的空行 -> 空集)