我是 Clingo 的新手。
我想知道如何在计数聚合中表达 OR 条件。
我正在写这条规则。
countPreviousSlots(C1, C2, TotalCount) :-
firstLecture(C2, S2, G2, I2),
TotalCount = #count{S1,G1,I1 : slot(S1, G1, I1, C1), (S1 < S2; (S1==S2, G1 < G2); (S1==S2, G1==G2, I1 < I2))},
slot(_, _, _, _, C1).
但是 cligo 不承认圆括号。我必须如何在 clgo 中制定这种条件?
如果我移动条件并写下有什么区别:
countPreviousSlots(C1, C2, TotalCount) :-
firstLecture(C2, S2, G2, I2),
TotalCount = #count{S1,G1,I1 : slot(S1, G1, I1, C1)},
slot(_, _, _, _, C1), (S1 < S2; (S1==S2, G1 < G2); (S1==S2, G1==G2, I1 < I2)).