CSE505/Assignment2/A/tsp.lp
2024-03-09 16:25:30 -05:00

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).