Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. param N integer > 2; # Number of nodes
  2. set Nodes ordered := {1..N};
  3. set Arcs := {i in Nodes, j in Nodes: i <> j};
  4.  
  5. param xcrd{Nodes}>=0;
  6. param ycrd{Nodes}>=0;
  7.  
  8. param length{(i,j) in Arcs} := sqrt((xcrd[i] - xcrd[j])^2 +(ycrd[i] - ycrd[j])^2);
  9. var x {(i,j) in Arcs} binary;
  10. var y {(i,j) in Arcs} >= 0;
  11. param f := 0.01;
  12. minimize Tourlength: sum {(i,j) in Arcs} length[i,j] * x[i,j];
  13. subject to Demandy {i in Nodes: i >= 2}: sum {(i,j) in Arcs} y[j,i] >= 1;
  14. subject to Flowy {i in Nodes: i >= 2}:
  15. sum {(i,j) in Arcs} y[i,j] - sum {(i,j) in Arcs} y[j,i] = f;
  16. subject to Totalx: sum {(i,j) in Arcs} x[i,j] <= N;
  17. subject to Arcgain {(i,j) in Arcs}: y[i,j] <= (1 + N*f)*x[i,j];
  18. # These rows tighten the model:
  19. subject to Demandx {i in Nodes: i >= 2}: sum {(i,j) in Arcs} x[j,i] = 1;
  20. subject to Flowx {i in Nodes: i >= 2}:
  21. sum {(i,j) in Arcs} x[i,j] = sum {(i,j) in Arcs} x[j,i];
  22. subject to Startx: sum {i in Nodes: i >= 2} x[1,i] = 1;
  23. subject to Starty: sum {i in Nodes: i >= 2} y[1,i] = 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement