En construccion
from scipy.optimize import linprog
# Coeficientes de la función objetivo (Z = 3x1 + 4x2)
# Nota: linprog minimiza por defecto, así que multiplicamos por -1 para maximizar.
c = [-3, -4] # Coeficientes de la función objetivo
# Coeficientes de las restricciones (matriz A)
A = [
[1, 2], # Coeficientes de la primera restricción: x1 + 2x2 <= 14
[3, -1] # Coeficientes de la segunda restricción: 3x1 - x2 <= 9
]
# Lados derechos de las restricciones (vector b)
b = [14, 9] # Límites de las restricciones
# Límites de las variables (x1 >= 0, x2 >= 0)
x_bounds = (0, None) # x1 >= 0
y_bounds = (0, None) # x2 >= 0
# Resolver el problema de programación lineal
resultado = linprog(c, A_ub=A, b_ub=b, bounds=[x_bounds, y_bounds], method='highs')
# Mostrar los resultados
if resultado.success:
print("Solución óptima encontrada:")
print(f"Valor máximo de Z: {-resultado.fun}") # Multiplicamos por -1 porque linprog minimiza
print(f"Valor de x1: {resultado.x[0]}")
print(f"Valor de x2: {resultado.x[1]}")
else:
print("No se pudo encontrar una solución óptima.")