非線形制約つきビスケット
すばらしい焼き上がりでしたね!
では、同じ問題を NonlinearConstraint を使ってもう一度解いてみましょう。
パン工場の制約として、事前注文は最低 140 個を満たす必要があり、各工場は1日にビスケットを100個作れることを思い出してください。
minimize、Bounds、NonlinearConstraint は読み込まれており、収益関数 R、コスト関数 C、利益関数 profit も用意されています。
この演習はコースの一部です
Pythonで学ぶOptimization入門
演習の手順
- 下限と上限を設定し、
lambda関数qを使って制約を定義します。 - 目的関数、境界、制約を
miminize()に渡して最適化を実行します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Redefine the problem with NonlinearConstraint
constraints = NonlinearConstraint(lambda q: ____, ____, ___)
# Perform optimization
result = minimize(lambda q: ____,
[50, 50],
bounds=____,
constraints=____)
print(result.message)
print(f'The optimal number of biscuits to bake in bakery A is: {result.x[0]:.2f}')
print(f'The optimal number of biscuits to bake in bakery B is: {result.x[1]:.2f}')
print(f'The bakery company made: ${-result.fun:.2f}')