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

Ingeniero industrial especializado en optimización y simulación (R, Python, SQL, VBA)

Leave a Reply