[英]How can I pass the result of the decision variable to another model in Docplex python?
我想迭代地解決 model 並且在每次迭代中,時間都增加一個周期。 在每次迭代中,我都會再次求解 model。 所以,我想知道我是否可以將第一次迭代中決策變量的第一期結果分配給第二次迭代中的第一期。 例如,在第一次迭代中,時間段為T=7
,在下一次迭代中,它變為T=8
。 如果決策變量是x_t,n
其中t
是時間, n
是迭代計數器,我可以將x_1,1
結果分配給x_1,2
中的 x_1,2 嗎? 我的目標是使用滾動水平技術。
在這個答案中,我假設您使用的是 DOcplex model 的一個實例。 模型是增量和可編輯的,也就是說,一旦求解,您仍然可以將新變量和約束添加到 model 並再次求解。 先前的解決方案將用作起點(如果可行)或用作啟發式(如果不可行)。
有幾種方法可以設置變量值:
x.lb = 3 x.ub = 3
示例代碼
c3 = (x==3)
mdl.add(c3)
另一種方法是使用變量值構建“熱啟動”解決方案,用作起點,假設您正在解決混合 Integer 程序。 在這種方法中,值被用作啟發式起點,而不是硬約束; 換句話說,值可以通過求解來改變。 有關詳細信息,請參閱Model.add_mip_start()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.