from scipy.optimize import linprog # Definir los parámetros y restricciones del problema max_compra = [20, 15, 15, 20, 25, 20] costo_compra = [10000, 10500, 10800, 11000, 11800, 12400] max_venta = [12, 19, 15, 20, 25, 10] precio_venta = [20000, 22500, 23500, 24000, 25000, 26000] anticipacion_descuento = [0, 30, 50] retraso_descuento = 20 almacenamiento_costo = 200 capacidad_transformacion = {'febrero': (14, 18), 'marzo': (14, 18), 'abril': (14, 18), 'mayo': (14, 18), 'junio': (14, 18), 'julio': (14, 18)} # Función objetivo def funcion_objetivo(variables): ingresos = sum((precio_venta[i] - anticipacion_descuento[i] * variables[i-1]) * variables[i] for i in range(6)) costos = sum((costo_compra[i] + anticipacion_descuento[i] * variables[i-1] + almacenamiento_costo * variables[i-1]) * variables[i] for i in range(6)) costos_transformacion = sum((1300 if i in [0, 1, 4, 5] else 1500) * variables[i] for i in range(6)) return -(ingresos - costos - costos_transformacion - retraso_descuento * variables[5]) # Restricciones de compra y venta restricciones_compra = [{'type': 'ineq', 'fun': lambda x, i=i: max_compra[i] - x[i]} for i in range(6)] restricciones_venta = [{'type': 'ineq', 'fun': lambda x, i=i: x[i] - max_venta[i]} for i in range(6)] # Restricciones de anticipación y retraso restricciones_anticipacion = [{'type': 'ineq', 'fun': lambda x, i=i: x[i] - 10} for i in range(1, 6)] restriccion_retraso = {'type': 'ineq', 'fun': lambda x: x[0] - 10} # Restricciones de capacidad de transformación restricciones_transformacion = [{'type': 'ineq', 'fun': lambda x, i=i: x[i] - capacidad_transformacion[list(capacidad_transformacion.keys())[i]][0]} for i in range(6)] restricciones_transformacion += [{'type': 'ineq', 'fun': lambda x, i=i: capacidad_transformacion[list(capacidad_transformacion.keys())[i]][1] - x[i]} for i in range(6)] # Resolver el problema de optimización lineal resultado = linprog(c=[0]*6, bounds=[(0, None)]*6, constraints=restricciones_compra + restricciones_venta + restricciones_anticipacion + [restriccion_retraso] + restricciones_transformacion, method='highs') # Imprimir resultados print("Toneladas compradas por mes:", resultado.x) print("Ingresos netos (utilidad máxima):", -resultado.fun)
inir la ruta de la carpeta de imágenes IMAGES_PATH = 'static/img/' # Definir la ruta de la carpeta de archivos FILES_PATH = 'static/files/' # Definir la ruta de la carpeta de videos VIDEOS_PATH = 'static/videos/' # Defin