従属需要の制約に関する演習
5つの製品(A〜E)の生産計画を立てています。製品Eは、Aを2単位とCを1単位で構成されます。製品Cは顧客に直接販売もします。計画期間は3か月です。各月に各製品をどれだけ生産すれば、顧客需要を満たしつつ総コストを最小化できるかを求めます。
コンソールには、各製品の月次顧客需要を含むPandasのDataFrame demand が表示されています。さらに、PuLPモデルの初期化、意思決定変数の定義、目的関数、そして生産量が需要以上になるようにする制約までのコードが用意されています。
この演習はコースの一部です
Pythonで学ぶサプライチェーン分析
演習の手順
- 製品AとCの従属需要を含めた制約コードを完成させてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Initialize, Define Decision Vars., Objective Function, and Constraints
model = LpProblem("Aggregate Production Planning", LpMinimize)
time = [0, 1, 2]
prod = ['A', 'B', 'C', 'D', 'E']
X = LpVariable.dicts("prod", [(t, p) for p in prod for t in time],
lowBound=0, cat="Integer")
model += lpSum([costs.loc[t, p]*X[(t, p)] for p in prod for t in time])
for p in prod:
for t in time:
model += X[(t, p)] >= demand.loc[t, p]
# Define Dependent Demand Constraints
for t in time:
model += ____ * X[(t, 'E')] <= X[(t, 'A')]
model += ____ * X[(t, ____)] + demand.loc[t, ____] <= X[(t, ____)]