$title Example of pw-linear convex problem as an LP $ontext min_x max_i c_i x + d_i and min_x | Ax - b |_1, min_x | Ax - b |_inf $offtext option limrow = 0, limcol = 0; set i /1*30/; set j /1*10/; parameter c(i,j), d(i), A(i,j), b(i); option seed = 110; c(i,j) = uniform(-1,1); d(i) = uniform(-2,2); A(i,j) = uniform(-10,10); b(i) = uniform(-5,5); variables x(j), delta; equations upper(i); upper(i).. delta =g= sum(j, c(i,j)*x(j)) + d(i); model pwmax /upper/; * fix to ensure that lp is bounded below * not necessary in general, but needed for random inputs c('1',j) = 0; solve pwmax using lp min delta; equation infplus(i), infminus(i); infplus(i).. delta =g= sum(j, A(i,j)*x(j)) - b(i); infminus(i).. delta =g= -sum(j, A(i,j)*x(j)) + b(i); model pwinf /infplus,infminus/; solve pwinf using lp min delta; equation oneplus(i), oneminus(i), defobj; variables obj, y(i); oneplus(i).. y(i) =g= sum(j, A(i,j)*x(j)) - b(i); oneminus(i).. y(i) =g= -sum(j, A(i,j)*x(j)) + b(i); defobj.. obj =e= sum(i, y(i)); model pwone /oneplus,oneminus,defobj/; solve pwone using lp min obj;