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