我在 Clingo 中定义了图形着色问题,如下所示:
node(sa;wa;nt;q;nsw;v;t).
color(r;g;b).
edge(sa,(wa;nt;q;nsw;v)).
edge(wa,nt). edge(nt,q). edge(q,nsw). edge(nsw,v).
edge(X,Y) :- edge(Y,X).
我有这样的解决方案:
{assign(N,C) : color(C)} = 1 :- node(N).
:- edge(X,Y), assign(X,C1), assign(Y,C2), C1 == C2.
#show assign/2.
我无法理解= 1
代码生成部分的含义。我知道它是“设置基数”,但我不明白如何,因为代码必须在每个答案中生成七个节点。此外,以下生成器(生成所有节点组合和在一组长度 7 中选择的颜色)需要= 7
:
{assign(N,C) : color(C), node(N)} = 7.
这是我正在解决的图形着色问题的图片:https ://imgur.com/a/tX7qtkJ
和坚持: https ://potassco.org/cligo/run/