Select Your Region
Americas
Europe
Middle East & Africa
Asia Pacific
![]() |
/****************************************************************/ /* S A S S A M P L E L I B R A R Y */ /* */ /* NAME: LINPROG */ /* TITLE: Linear Programming */ /* PRODUCT: IML */ /* SYSTEM: ALL */ /* KEYS: MATRIX OR SUGI6 */ /* PROCS: IML */ /* DATA: */ /* */ /* SUPPORT: MDC UPDATE: SEP2013 */ /* REF: */ /* MISC: */ /* */ /****************************************************************/ proc iml; names={'product 1' 'product 2' 'product 3' 'product 4'}; /* coefficients of the linear objective function */ c = {5.24 7.30 8.34 4.18}; /* coefficients of the constraint equation */ A = { 1.5 1 2.4 1 , 1 5 1 3.5 , 1.5 3 3.5 1 }; /* right-hand side of constraint equation */ b = { 2000, 8000, 5000}; /* operators: 'L' for <=, 'G' for >=, 'E' for = */ ops = { 'L', 'L', 'L' }; n=ncol(A); /* number of variables */ cntl = j(1,7,.); /* control vector */ cntl[1] = -1; /* 1 for minimum; -1 for maximum */ call lpsolve(rc, value, x, dual, redcost, c, A, b, cntl, ops); print x[r=names L='Optimal Product Mix']; print value[L='Maximum Profit']; lhs = A*x; Constraints = lhs || b; print Constraints[r={"Machine1" "Machine2" "Machine3"} c={"Actual" "Upper Bound"} L="Time Constraints"]; arcs = { 'ab' 'bd' 'ad' 'bc' 'ce' 'de' 'ae' }; /* decision variables */ n=ncol(arcs); /* number of variables */ nodes = {'a', 'b', 'c', 'd', 'e'}; inode = substr(arcs, 1, 1); onode = substr(arcs, 2, 1); /* coefficients of the constraint equation */ A = j(nrow(nodes), n, 0); do j = 1 to n; A[,j] = (inode[j]=nodes) - (onode[j]=nodes); end; /* coefficients of the linear objective function */ cost = { 1 2 4 3 3 2 9 }; /* right-hand side of constraint equation */ supply = { 2, 0, 0, -1, -1 }; /* operators: 'L' for <=, 'G' for >=, 'E' for = */ ops = repeat('E',nrow(nodes),1); cntl = j(1,7,.); /* control vector */ cntl[1] = 1; /* 1 for minimum; -1 for maximum */ call lpsolve(rc, value, x, dual, redcost, cost, A, supply, cntl, ops); print value[L='Minimum Cost']; print x[r=arcs L='Optimal Flow'];