ダイエット問題を再訪する
コスト削減の可能性がないか、養豚農家の収支を見直しています。現在のコスト最小化の飼料配合は、獣医の推奨に基づき、たんぱく質17%以上、脂肪2%以上、飼料は仕様に従って7ポンドという条件です。
| Food | Cost ($/lb) | Protein (%) | Fat (%) |
|---|---|---|---|
| corn | 0.11 | 10 | 2.5 |
| soybean | 0.28 | 40 | 1 |
7ポンドは四捨五入された値で、6.6ポンドまで減らせる可能性があるという情報があります。重量制約または脂肪制約のどちらか一方を変更した場合に、最小コストがどう変わるかを確認してください。まずは元の問題をそのまま解き、スラックとシャドープライスを確認します。
pulp はインポート済みで、model と、トウモロコシと大豆を表す変数 C と S も定義済みです。
この演習はコースの一部です
Pythonで学ぶOptimization入門
演習の手順
- Weight 制約のスラックを出力します。
- Weight 制約のシャドープライスが 0 より大きいか確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
model.constraints['Weight'] = C + S >= 7
model.solve()
print(f"Status: {LpStatus[model.status]}\n")
# Print the slack of the weight constraint
print("The slack of the Weight constraint is {}",
____.constraints['Weight'].____)
# Check if the shadow price is greater than 0
if ____.constraints['Weight'].____ > 0:
print('Tightening the constraint will increase minimum cost')