始める無料で始める

シャドープライスとスラックの演習 pt1

あなたは、ベーカリーでどのカップケーキを作るべきかを計画しています。ベーカリーは次のどちらかを作れます。

  • 通常サイズのカップケーキ:利益 = $5
  • 通常サイズの2倍のジャンボカップケーキ:利益 = $10

オーブンの使用時間(30)と作業者の労働時間(65)という2つの制約があります。このシナリオはPuLPでモデル化され、解が見つかっています。モデルのステータス、意思決定変数の値、目的値(すなわち利益)、制約のシャドープライスとスラックがシェルに出力されています。

サンプルスクリプトはそのコードのコピーです。制約を調整して、最適解がどのように変わるかを確認します。

この演習はコースの一部です

Pythonで学ぶサプライチェーン分析

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define Constraints, Solve, Print Status, Variables, Objective
model = LpProblem("Maximize Bakery Profits", LpMaximize)
R = LpVariable('Regular_production', lowBound=0, cat='Continuous')
J = LpVariable('Jumbo_production', lowBound=0, cat='Continuous')
model += 5 * R + 10 * J, "Profit"

# Adjust the constraint
model += 0.5 * R + 1 * J <= ____
model += 1 * R + 2.5 * J <= 65

# Solve Model, Print Status, Variables, Objective, Shadow and Slack
model.solve()
print("Model Status: {}".format(LpStatus[model.status]))
for v in model.variables():
    print(v.name, "=", v.varValue)
print("Objective = $", value(model.objective))
o = [{'name':name, 'shadow price':c.pi, 'slack': c.slack} 
     for name, c in model.constraints.items()]
print(pd.DataFrame(o))
コードを編集して実行