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);
Running HiGHS 1.7.1: Copyright (c) 2024 HiGHS under MIT licence terms Coefficient ranges: Matrix [3e-01, 3e+00] Cost [1e+00, 1e+00] Bound [0e+00, 0e+00] RHS [3e+02, 3e+02] Presolving model 37 rows, 37 cols, 93 nonzeros 0s 19 rows, 19 cols, 61 nonzeros 0s 15 rows, 15 cols, 65 nonzeros 0s 15 rows, 15 cols, 65 nonzeros 0s Presolve : Reductions: rows 15(-35); columns 15(-33); elements 65(-53) Solving the presolved LP Using EKK dual simplex solver - serial Iteration Objective Infeasibilities num(sum) 0 -8.6188168580e-01 Ph1: 10(11.7103); Du: 1(0.861882) 0s 16 -7.0000000000e+01 Pr: 0(0) 0s Solving the original LP from the solution after postsolve Model status : Optimal Simplex iterations: 16 Objective value : -7.0000000000e+01 HiGHS run time : 0.02 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.0000
ans = 16
También puede encontrar el valor de la función objetivo y el número de iteraciones en la visualización iterativa.