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

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

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

Close

Meta