reset; option randseed 0; param ver symbolic = "a22"; param N; param xmax; param ymax; param r; param x{1..N}=Uniform(0,xmax); param y{1..N}=Uniform(0,xmax); set LINKS dimen 2 = union{i in 1..N, j in i+1..N: (x[i]-x[j])^2+(y[i]-y[j])^2<=r^2} {(i,j), (j,i)}; data; param N := 42; param xmax := 5; param ymax := 5; param r := 1; model; minimize Cost; node Nodes{i in 1..N}: net_out = (if i=1 then 1) + (if i=N then -1); arc Links{(i,j) in LINKS} >=0, <=1, from Nodes[i], to Nodes[j], obj Cost 1; solve; set FLOW dimen 2; let FLOW := if solve_result == "solved" then {(i,j) in LINKS: Links[i,j]>0} else {}; param linkax{(a,b) in LINKS} = x[a]; param linkay{(a,b) in LINKS} = y[a]; param linkbx{(a,b) in LINKS} = x[b]; param linkby{(a,b) in LINKS} = y[b]; param flowax{(a,b) in FLOW} = x[a]; param floway{(a,b) in FLOW} = y[a]; param flowbx{(a,b) in FLOW} = x[b]; param flowby{(a,b) in FLOW} = y[b]; table links OUT "ODBC" (ver & ".xls"): [i,j],linkax,linkay,linkbx,linkby; table flow OUT "ODBC" (ver & ".xls"): [i,j],flowax,floway,flowbx,flowby; shell ("copy " & ver & "-0.xls " & ver & ".xls"); write table links; write table flow; shell ("ren " & ver & ".xls " & ver & "-" & (if solve_result = "solved" then Cost else "no") & "-" & $randseed & ".xls");