Pet*_*tig 4 python mathematical-optimization gurobi
我想访问在 python 中运行 gurobi 数学优化问题时找到模型最优解所需的时间。m
到目前为止我使用
runtime = m.Runtime
print("The run time is %f" % runtime)
Run Code Online (Sandbox Code Playgroud)
不幸的是,返回的运行时间始终为 0.0,与求解模型所花费的时间无关,并且在达到任何时间限制之前。
m.setParam("TimeLimit", timeLimit)
Run Code Online (Sandbox Code Playgroud)
如何通过 gurobipy 在 gurobi 中访问实际运行时?我已阅读Gurobi 参考手册,但没有成功。
我只是尝试将以下行添加到 assignment.py 示例文件中,它似乎可以很好地打印出运行时。
print m.Runtime
Run Code Online (Sandbox Code Playgroud)
您确定在 m.optimize() 之后但在调用 m.update() 或其他重置模型运行时间的内容之前调用它吗?尝试在 m.optimize() 之后立即打印运行时间。
编辑:我刚刚意识到 assignment.py 是我的问题之一,而不是示例问题。
from gurobipy import *
from numpy import *
numT = 300;
numC = 300;
Assignment = random.random((numT,numC))
m=Model("Assignment")
X = []
for t in range(numT):
X.append([])
for c in range(numC):
X[t].append(m.addVar(vtype=GRB.BINARY,name="X%d%d"% (t, c)))
m.update()
m.modelSense = GRB.MAXIMIZE
constraintT = []
constraintC = []
for t in range(numT):
constraintT.append(m.addConstr(quicksum(X[t][c] for c in range(numC)) == 1 ,'constraintT%d' % t))
for c in range(numC):
constraintT.append(m.addConstr(quicksum(X[t][c] for t in range(numT)) == 1 ,'constraintC%d' % t))
m.setObjective(quicksum(quicksum([X[t][c]*Assignment[t][c] for c in range(numC)]) for t in range(numT)))
m.update()
m.optimize()
print 'runtime is',m.Runtime
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9109 次 |
| 最近记录: |