# # A Basic LP Example for GLPK # # We will make 5 variables, and 3 constraints (one of each type) # # min x_1 + x_2 -3x_3 # st. x_1 - x_2 + x_4 = 3 # x_1 +3x_3 + x_5 >= 10 # x_2 - x_3 <= 4 # x_1, x_2, x_3, x_4, x_5 >= 0 set I; /* variable labels */ set JG; set JE; set JL; /* constraint labels, for Greater-than, Equal-to, and Less-than constraints. */ param c{i in I}; /* cost of variables */ param bG{j in JG}; param bE{j in JE}; param bL{j in JL}; /* right-hand-side of constraints */ param AG{j in JG, i in I}; param AE{j in JE, i in I}; param AL{j in JL, i in I}; /* values of the matrix A */ var x{i in I} >= 0; /* a non-negative variable vector */ minimize cost: sum{i in I} c[i] * x[i]; /* the optimization function */ s.t. boundG{j in JG}: sum{i in I} AG[j,i] * x[i] <= bG[j]; s.t. boundE{j in JE}: sum{i in I} AE[j,i] * x[i] == bE[j]; s.t. boundL{j in JL}: sum{i in I} AL[j,i] * x[i] >= bL[j]; /* the constraints */ /* mark the beginning of the data */ data; set I := x1 x2 x3 x4 x5; set JG := c2; set JE := c1; set JL := c3; param c := x1 1 x2 1 x3 -3 x4 0 x5 0; param bG := c2 10; param bE := c1 3; param bL := c3 4; param AG: x1 x2 x3 x4 x5 := c2 1.0 0.0 3.0 0.0 1.0; param AE: x1 x2 x3 x4 x5 := c1 1 -1 0 1 0; param AL: x1 x2 x3 x4 x5 := c3 0 1 -1 0 0; end;