生産量をx[a]、x[b]…としたときの利益最大化問題をpulpのlpsumで以下のようなモデルを作成して問題を解決できております。
(文法が間違えているかもしれませんが、質問のポイントには影響がない限り無視してください)
製品i ∈ I、生産時間t[i]、利益p[i]
(目的関数)
prob += pulp.lpsum(p[i] * x[i] i in I)
(制約条件)
prob += pulp.lpsum(t[i] * x[i] i in I)≦ 180
ここに、原料αの会社から一か月の購入数量が一定(T)以上になった場合に、その超過分の数量の単価を半分にするという条件が提示された場合に、以下のように変えてみたのですが、pulpによって展開された目的関数には、この値引分が反映されずに悩んでおります。修正後の目的関数内の二つのlpsum部分をどちらか一つを有効にした場合はちゃんと
pulpによって正しく展開されているよう思われます。目的関数内に二つ以上のlpsumを使うことはできないのでしょうか?
部品表中の原料aの使用量:r_a[i]
原料aの購入単価:c_a
(修正後の目的関数)
prob += pulp.lpsum(p[i] * x[i] i in I)-pulp.lpsum(((r_a[i] * x[i] i in I)- T)* c_a *1/2)

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/07/16 04:17