Contenido principal

Problema de programación lineal típico

Este ejemplo resuelve el problema de programación lineal típico

minxfTxsuchthat{Axb,Aeqx=beq,x0.

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.