Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

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

minxfTx such that {Axb,Aeqx=beq,x0.

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