Main Content

Problema de programación lineal típico

Este ejemplo muestra la solución de un problema de programación lineal típico. El problema es

Puede cargar las matrices y vectores,,,, y los límites inferiores en el espacio de trabajo conAAeqbbeqflbMATLAB®

load sc50b

El problema tiene 48 variables, 30 desigualdades y 20 equalidades.sc50b.mat

Se utiliza para resolver el problema:linprog

options = optimoptions(@linprog,'Algorithm','dual-simplex','Display','iter'); [x,fval,exitflag,output] = ...     linprog(f,A,b,Aeq,beq,lb,[],options);

Dado que la visualización iterativa se estableció mediante, los resultados mostrados sonoptimoptions

LP preprocessing removed 2 inequalities, 16 equalities, 16 variables, and 26 non-zero elements.   Iter      Time            Fval  Primal Infeas    Dual Infeas       0     0.001    0.000000e+00   0.000000e+00   1.305013e+00       8     0.001   -1.587073e+02   3.760622e+02   0.000000e+00      33     0.001   -7.000000e+01   0.000000e+00   0.000000e+00  Optimal solution found.

El valor es positivo, lo que le dice convergido.exitflaglinprog También puede obtener el valor final de la función y el número de iteraciones en:fvaloutput.iterations

exitflag,fval,output
exitflag =       1   fval =     -70   output =     struct with fields:           iterations: 33     constrviolation: 3.1264e-13             message: 'Optimal solution found.'           algorithm: 'dual-simplex'       firstorderopt: 2.3082e-14