Introduction to Optimization in Python
Jasmin Ludolf
Content Developer
Demand:
Gown production:
$C$: fabric cost + Mr. S wages + Mr. T opportunity cost
Opportunity cost: cost of choosing to sew versus other responsibilities
$C=110g+240g+105g+75t+160t+35t$
$C=455g+270t$
Cost | Fabric | Mr. S | Ms. T |
---|---|---|---|
Gown | $\$110$ | $\$40/h \times 6h = \$240$ | $\$35/h \times 3h = \$105$ |
Tuxedo | $\$75$ | $\$40/h \times 4h = \$160$ | $\$35/h \times 1h = \$35$ |
Constraints:
Demand: $g\leq20$, $t\leq12$
Supply: $6g+4t\leq40$, $3g+t\leq20$
from scipy.optimize import milp, Bounds, LinearConstraint
result = milp([-545, -330],
integrality=[1, 1],
bounds=Bounds([0, 0], [20, 12]),
constraints=LinearConstraint([[6, 4], [3, 1]], ub=[40, 20]))
print(result.message)
print(f'The optimal number of gowns produced is: {result.x[0]:.2f}')
print(f'The optimal number of tuxedos produced is: {result.x[1]:.2f}')
Optimization terminated successfully. (HiGHS Status 7: Optimal)
The optimal number of gowns produced is: 6.00
The optimal number of tuxedos produced is: 1.00
result = milp([-545, -330],
bounds=Bounds([0, 0], [20, 12]),
constraints=LinearConstraint([[6, 4], [3, 1]], ub=[40, 20]))
...
The optimal number of gowns produced is: 6.67
The optimal number of tuxedos produced is: 0.00
Proposed solution 6.67 gowns and 0.00 tuxedos $\rightarrow$
Round to 7 gowns and 0 tuxedos
Truncate to 6 gowns and 0 tuxedos
Introduction to Optimization in Python