亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 python 中使用 Gurobi 的 MIPGap 和 TimeLimit?

如何在 python 中使用 Gurobi 的 MIPGap 和 TimeLimit?

絕地無雙 2023-10-18 21:39:43
我正在研究大規模 MILP。因此,我必須將時間限制設置為合理的值,或者必須將 MIPGap 設置為合理的水平。我已經知道 gurobi 的文檔了。MIPGap:https://www.gurobi.com/documentation/6.5/refman/mipgap.html時間限制:https://www.gurobi.com/documentation/8.0/refman/timelimit.html#parameter :TimeLimit當 MIPGap Gurobi 在最佳百分比范圍內找到解決方案時,它將停止TimeLimit Gurobi 將在一定時間后停止。但是您能否給我發送一個示例,其中將時間限制設置為 5 分鐘或將 MIPGap 設置為 5%?我不知道如何具體實現這些角色?請幫助我,我對 python 很陌生我嘗試過,但這不起作用    model.Params.TimeLimit = 5     model.setParam("MIPGap", mipgap)這是我的模型的簡短版本from gurobipy import *  import csvimport geopandas as gpdimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.patches as mpatchesfrom pandas.core.common import flattenimport math################################# SOLVE function START ###################################################################def solve(             vpmaint, wpunit, wuunit, vumaint,       kfuel, koil, kbio,       hb, ht,       cj, ci,       zinvestp, zinvestu,       DEMAND, DEMANDM,       LOCATION, SOURCE, BTYPE, SOURCEM,       osi, oij, ojm       ):   model = Model("Biomass to liquid supply chain network design")################################# SOLVE function END ########################################################################################################################## variable section START #####################################################################################################binary variables #############################   Binary 1-2     #####################################################binary 1: Pyrolyse i with capacity p open?              fpopen = {}   for i in LOCATION:       for p in R:           fpopen[i,p] = model.addVar(vtype = GRB.BINARY,name = "fpopen_%s_%s" % (i,p))#binary 2: Upgrading j with capacity r and technology t open?              fuopen = {}       for j in LOCATION:       for r in R:           for t in TECHNOLOGY:               fuopen[j,r,t] = model.addVar(vtype = GRB.BINARY,name = "fuopen_%s_%s_%s" % (j,r,t))  
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

或者,您可以調用模型的setParam()方法:

model.setParam('MIPGap',?0.05)
model.setParam('Timelimit',?300)


查看完整回答
反對 回復 2023-10-18
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您需要在調用 Model.optimize() 之前設置參數。此外,MIPGap 和 TimeLimit 的單位分別是分數和秒。所以你的代碼應該是:


model.Params.MIPGap = 0.05    # 5%

model.Params.TimeLimit = 300  # 5 minutes

model.optimize()


查看完整回答
反對 回復 2023-10-18
  • 2 回答
  • 0 關注
  • 444 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號