import numpy as np from scipy.optimize import linprog cost = np.array([4.0, 7.0]) # Demand: regular + premium = 10 A_eq = np.array([(1.0, 1.0)]) b_eq = np.array([10.0]) # Quality: regular + 2 * premium >= 14 A_ub = np.array([(-1.0, -2.0)]) b_ub = np.array([-14.0]) bounds = [(0.0, None), (0.0, None)] result = linprog( c=cost, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq, bounds=bounds, method="highs", ) regular, premium = result.x quality_points = regular + 2.0 * premium print(f"success: {result.success}") print(f"message: {result.message}") print(f"minimum_cost: {result.fun:.2f}") print(f"regular_units: {regular:.1f}") print(f"premium_units: {premium:.1f}") print(f"quality_points: {quality_points:.1f}") print(f"demand_residual: {result.eqlin.residual[0]:.2e}") print(f"quality_slack: {result.ineqlin.residual[0]:.2e}")