始める無料で始める

非線形制約つきビスケット

すばらしい焼き上がりでしたね!

では、同じ問題を NonlinearConstraint を使ってもう一度解いてみましょう。

パン工場の制約として、事前注文は最低 140 個を満たす必要があり、各工場は1日にビスケットを100個作れることを思い出してください。

minimizeBoundsNonlinearConstraint は読み込まれており、収益関数 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}')
コードを編集して実行