Problema de programación lineal típico
Este ejemplo resuelve el problema de programación lineal típico
Cargue el archivo sc50b.mat
, que está disponible cuando ejecuta este ejemplo y contiene las matrices y los vectores A
, Aeq
, b
, beq
, f
y los límites inferiores lb
.
load sc50b
El problema tiene 48 variables, 30 desigualdades y 20 igualdades.
disp(size(A))
30 48
disp(size(Aeq))
20 48
Establezca opciones para utilizar el algoritmo dual-simplex
y la visualización iterativa.
options = optimoptions(@linprog,'Algorithm','dual-simplex','Display','iter');
El problema no tiene límite superior, así que establezca ub
en []
.
ub = [];
Resuelva el problema llamando a linprog
.
[x,fval,exitflag,output] = ...
linprog(f,A,b,Aeq,beq,lb,ub,options);
LP preprocessing removed 2 inequalities, 16 equalities, 16 variables, and 26 non-zero elements. Iter Time Fval Primal Infeas Dual Infeas 0 0.009 0.000000e+00 0.000000e+00 1.305013e+00 8 0.023 -1.587073e+02 3.760622e+02 0.000000e+00 33 0.024 -7.000000e+01 0.000000e+00 0.000000e+00 Optimal solution found.
Examine el indicador de salida, el valor de la función objetivo en la solución y el número de iteraciones usadas por linprog
para resolver el problema.
exitflag,fval,output.iterations
exitflag = 1
fval = -70
ans = 33
También puede encontrar el valor de la función objetivo y el número de iteraciones en la visualización iterativa.