簡體   English   中英

如何指定至少一個決策變量應在python紙漿中取最小值?

[英]How to specify at least one decision variable should take minimum value in python pulp?

我借助LP中的LP和PULP解決了基本問題。 現在,我想再添加一個條件約束,以指定至少一個決策變量應取最小值2。

prob = LpProblem("Minimizing cost", LpMinimize)
A = LpVariable("A", lowBound=0, cat='Integer')
B = LpVariable("B", lowBound=0, cat='Integer')
C = LpVariable("C", lowBound=0, cat='Integer')
prob += 44550*A +70570*B + 132835*C
prob += 1.014996087*A + 2.029992174*B + 4.060195806*C >= 5
prob += A+B+C <= 50
status = prob.solve()
print('Status:', LpStatus[status])
value(A), value(B), value(C), value(prob.objective)

返回以下答案:

Status: Optimal
(1.0, 0.0, 1.0, 177385.0)

這里A = 1,C = 1。 如何指定A,B,C之一應取最小值2。

使用一些額外的二進制變量α,β,γ,我們可以得出:

A ≥ 2α 
B ≥ 2β
C ≥ 2γ
α+β+γ ≥ 1
α,β,γ ∈ {0,1} 

此模型:“ A,B,C中的至少一個應≥2”。 這些是簡單的線性不等式,可以直接在Pulp中實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM