- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究大规模 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 csv
import geopandas as gpd
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from pandas.core.common import flatten
import 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))
################################################ continous variables Integer 1-9 #############################################################
#integer 1: Mass of Biomass type b from Source s to Pyrolyse i
xsi = {}
for s in SOURCE:
for i in LOCATION:
for b in BTYPE:
xsi[s,i,b] = model.addVar(vtype = GRB.INTEGER,name = "xsi_%s_%s_%s" % (s,i,b))
#integer 2:Mass of Biomass type b from Source s to Pyrolyse i
xjm = {}
for j in LOCATION:
for m in DEMAND:
xjm[j,m] = model.addVar(vtype = GRB.INTEGER,name = "xjm_%s_%s" % (j,m))
model.update()
model.modelSense = GRB.MAXIMIZE
####################################################### Objective Function START
model.setObjective(
#quicksum(DEMANDM[m] * l for m in DEMANDM )
quicksum(xjm[j,m] * l for j in LOCATION for m in DEMAND)
- quicksum(ainvest[i] + aoperation[i] + aprod[i] for i in LOCATION)
- quicksum(einvest[j] + eoperation[j] + eprod[j] for j in LOCATION)
## ......
####################################################### Constraints
############################## Satisfy Demand Constraint 1-3
# Constraint 1: Always Satisfy Demand at marketplace m
for m in DEMAND:
model.addConstr(quicksum(xjm[j,m] for j in LOCATION) <= int(DEMANDM[m]))
# for m in DEMAND:
# model.addConstr(quicksum(x[j,m] for j in LOCATION) >= DEMANDM[m])
# Constraint 2: The amount of bio-oil sent from pyrolyse station i to Upgrading
###...Here are more constraints
model.optimize()
model.getVars()
model.MIPGap = 5
model.Params.TimeLimit = 1.0
model.setParam("MIPGap", mipgap)
最佳答案
或者,您可以调用 setParam()
method模型的:
model.setParam('MIPGap', 0.05)
model.setParam('Timelimit', 300)
关于python - 如何在 python 中使用 Gurobi 的 MIPGap 和 TimeLimit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64247609/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我在 Stack Overflow 上发现这个使函数超时的装饰器,我想知道是否有人可以详细解释它是如何工作的,因为代码非常优雅但一点也不清晰。用法是@timeout(timelimit)。 from
我有一个应用程序,可以让用户调用他们想要添加到通话中的号码。每个用户都受其帐户中余额的影响。 拨号是使用 TwiML 执行的 因此,根据我每分钟的金额,我以秒为单位计算剩余余额,并将其设置为 tim
我试图在 Guava 库的帮助下停止/取消我的线程,但它不起作用。 长callTimeout = 1L; ExecutorService callTimeoutPool= Executors.newS
我很难取消/中断 CompletableFuture 任务,因此它在 Controller 上超时,但即使需要更多时间,它也不会停止客户端的执行 我缺少什么?能够在超时时取消我的客户端执行 我有下一个
我正在研究大规模 MILP。所以我必须将时间限制设置为一个合理的值,或者我必须将 MIPGap 设置为一个合理的水平。我已经知道 gurobi 的文档。 MIPGap:https://www.guro
我有一个通过 REST 调用依赖项的服务。服务和依赖是微服务架构的一部分,所以我想使用弹性模式。我的目标是: 有一个断路器来保护它挣扎时的依赖 限制调用可以运行的时间。该服务具有 SLA,并且必须在特
我目前正在阅读 Sudharsan Ravichandiran 的 Hands-On Reinforcement Learning with Python 以及我遇到这个 AttributeError
我有一个在 Tomcat 服务器中运行的 Web 应用程序,该应用程序执行对外部服务器的调用。现在,我想使用 Resilience4j 的 TimeLimiter 来限制响应的等待时间,并另外使用 B
约束: 0 0 ) { int n = Integer.parseInt(sc.nextLine()); String a = sc.n
我是一名优秀的程序员,十分优秀!