[英]How to make a copy of a Gurobi model and add constraints to the copy in Python?
我正在嘗試在 Gurobi 中實現一個潛水和修復算法。 我要構建的是 function ,您將優化的 model last_model
放入其中,對此new_model
進行深度復制,稱為new_model
並將某些約束添加到新last_model
中。
我找到了 function .copy()
可以為我進行深度復制。 但是我仍然很難為我復制的new_model
添加約束,因為我無法以任何方式改變我的約束。 (是的,我在復制之前使用last_model.update()
)
如果我在new_model = last_model.copy()
之后不對我的變量做任何事情並嘗試在z
上添加一個常量,它會告訴我該變量不在 model 中。
我試過.getVarByName('z')
,它會告訴我z was a NoneType
。 (我在stackexchange上找到了這個)
我試過new_model._data = last_model._data
,它只是返回_data
_data 不存在。 (我在 gurobi 支持網站上找到了這個)
我試過.getVars
,它只會創建一個列表,不允許我對實際變量添加任何約束。
您使用getVars()
在正確的軌道上 - 您確實需要再次獲取復制的 model 的變量才能添加新的約束。 原版 model 的變量僅引用原版 model,即使它們可能具有相同的名稱。 將變量視為 model 中實際變量的句柄 - 它們只能引用一個 model。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.