Optimización lineal con SciPy.optimize en Python

En esta publicación muestro cómo modelar un problema de optimización lineal. Uso SciPy.optimize.linprog.

El problema es este:

En el paquete SciPy en Python, puedo usar la función linprog para modelar y resolver este simple problema de optimización lineal. Para eso lo declararé en forma de notación de matriz y vectores y lo transformaré en un problema de minimización:

Ahora, puedo resolver el problema (usando Python):

# configurar la lista de costos 
c = [-2,-3]

# configurar matriz de coeficientes de restricción 
A_ub = [[1,1],
        [2,1]]

 # lista de restricciones para límites superiores 
b_ub =[10,15]

 # además, necesito preparar una tupla de límites para cada variable de optimización y resumirlos en una lista 
x1_bounds = (0,None)
x2_bounds = (0,None)

# ahore, puedo resolver
from scipy.optimize import linprog
model_linear = linprog(c=c,
                      A_ub=A_ub,
                      b_ub = b_ub,
                      bounds = [x1_bounds,x2_bounds])

# la solución
print(str(model_linear))
     fun: -30.0
 message: 'Optimization terminated successfully.'
     nit: 1
   slack: array([ 0.,  5.])
  status: 0
 success: True
       x: array([  0.,  10.])

El valor óptimo es 30

La solución óptima es x1=0,x2=10

You May Also Like

Leave a Reply

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.