Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

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);
LP preprocessing removed 2 inequalities, 16 equalities,
16 variables, and 26 non-zero elements.

 Iter      Time            Fval  Primal Infeas    Dual Infeas  
    0      0.01    0.000000e+00   0.000000e+00   9.999644e-01  
   14     0.029   -1.435826e+02   6.556491e+02   0.000000e+00  
   33     0.031   -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.