簡體   English   中英

如何制作 Gurobi model 的副本並將約束添加到 Python 中的副本?

[英]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.

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