# Set of links set J; # Set of demands set I; # Set of routes (indexed by demand) set R{I}; var x{J} >= 0; var f{i in I,r in R[i]} >= 0; var t{I} >= 0; param b; param c{J}; param u{J}; param d{I}; param a{i in I, r in R[i], J} default 0; minimize Unserved: sum{i in I} t[i]; subject to Budget: sum{j in J} c[j] * x[j] <= b; subject to ArcCap{j in J}: sum{i in I, r in R[i]} a[i,r,j] * f[i,r] <= u[j] + x[j]; subject to CountUnserved{i in I}: sum{r in R[i]} f[i,r] + t[i] = d[i];