2

我认为这是基本的,但是您如何将文字与 clgo 中的规则主体进行析取?我试过了

p3 :- p1 ; p2.但它不起作用,它假设答案是

p3 :- p1 , p2.

谢谢。

4

1 回答 1

3

实体中的析取只是“隐含的”。这意味着您可以通过使用两个规则来实现这一点:

p3 :- p1.
p3 :- p2.

或使用一阶变量

p(3) :- p(1..2).

或者

dom(1..2).
p(3) :- p(X), dom(X).

所有三个版本都基于同一组规则

p(3):-p(2).
p(3):-p(1).

(如果p(1)p(2)实际上是可导出的)您可以通过添加行来检查这一点

{p(X) : dom(X)}.

并使用clingo --text.

于 2021-04-06T10:49:45.170 回答