23 lines
582 B
Plaintext
23 lines
582 B
Plaintext
% % Generate
|
|
{ cycle(X,Y) : path(X,Y) } = 1 :- node(X).
|
|
{ cycle(X,Y) : path(X,Y) } = 1 :- node(Y).
|
|
|
|
% Display
|
|
#show cycle/2.
|
|
% Optimize
|
|
#minimize { C,X,Y : cycle(X,Y), edge(X,Y,C) }.
|
|
|
|
% Nodes
|
|
node(a;b;c;d;e;f).
|
|
% (Directed) Edges
|
|
path(a,(b;c;d)). path(b,(d;e;f)). path(c,(a;d;e)).
|
|
path(d,(a;b)). path(e,(c;d;f)). path(f,(b;c;e)).
|
|
|
|
% Edge Costs
|
|
edge(a,b,2). edge(a,c,3). edge(a,d,1).
|
|
edge(b,d,2). edge(b,e,2). edge(b,f,4).
|
|
edge(c,a,3). edge(c,d,2). edge(c,e,2).
|
|
edge(d,a,1). edge(d,b,2).
|
|
edge(e,c,2). edge(e,d,2). edge(e,f,1).
|
|
edge(f,b,4). edge(f,c,3). edge(f,e,1).
|