# Generate a (mostly) random graph param n := 500; param p default 0.4; # probability of including an edge set V := 1 .. n; set E within {V, V} default {}; param c {E} default 0; for {i in 1 .. n-1, j in i+1 .. n} { if (j == i + 1) or (Uniform(0,1) <= p) then { let E := E union {(i,j)}; let c[i,j] := ceil(Uniform(0,100)); } } printf "# |V| = %d\n",n; printf "# |E| = %d\n",card(E); printf "# Prob((i,j)) = %f\n\n",p; display V; display E; printf "param c :=\n"; for {(i,j) in E} { printf "%d %d %d\n",i,j,c[i,j]; } printf ";\n";