簡體   English   中英

Gurobi 約束、列表理解

[英]Gurobi constraints, list comprehension

我無法通過列表理解在 gurobi 中創建約束列表。

我使它能夠工作

m.addConstr(0_decision[0] + 1_decision[0] + 2_decision[0] + 3_decision[0] + 4_decision[0] + 5_decision[0] + 6_decision[0] , GRB.EQUAL, test_list[0])

但是,我有太多數據無法手動輸入,用 i 代替數字不起作用: This doesn't work

m.addConstrs([0_decision[i] + 1_decision[i] + 2_decision[i] + 3_decision[i] + 4_decision[i] + 5_decision[i] + 6_decision[i] for i in range(500)], GRB.EQUAL, test_list[i])

我收到此錯誤:

TypeError: addConstrs() takes at most 3 positional arguments (4 given)

我嘗試了不同形式的理解,我試着一次做一個,而且很有效。 但是我有太多我無法承受數百次。

在整個表達式中使用生成器表達式:

m.addConstrs(0_decision[i] + 1_decision[i] + 2_decision[i] +
             3_decision[i] + 4_decision[i] + 5_decision[i] + 
             6_decision[i] == test_list[i] for i in range(500))

更好的是,使用 Model.addVars() 重構 *_decision 變量,以便您可以編寫:

m.addConstrs(decision.sum('*',i) == test_list[i] for i in range(500))

暫無
暫無

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

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