问题描述
我认为这是基本的,但是您如何在 clingo 中将文字与规则主体进行分离?我试过了
p3 :- p1 ; p2.
但它不起作用,它假设了
p3 :- p1,p2.
谢谢。
解决方法
正文中的析取只是“隐式”。 这意味着您可以通过使用两个规则来实现这一点:
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
。