代码之家  ›  专栏  ›  技术社区  ›  Rahn

无法通过`古罗比.GenExpr`进入`模型.setObjective`

  •  0
  • Rahn  · 技术社区  · 7 年前
    from gurobipy import *
    
    global_model = Model("_")
    
    schedule = [global_model.addVar(name=x) for x in ["alpha", "beta"]]
    maxtime = max_(schedule)
    
    global_model.update()
    global_model.setObjective(maxtime, GRB.MINIMIZE)
    

    我只是列了一张 gurobi.Var ( schedule )我想最小化它们的最大值( maxtime 最大时间 的第一个参数 setObjective :

    gurobipy.gurobipy错误:无法将参数转换为表达式

    我该怎么修?

    1 回复  |  直到 7 年前
        1
  •  0
  •   joni    7 年前

    创建gurobi变量列表是不常见的。一般来说,更好的使用 Model.addVars() 获取变量的gurobi元组。据我所知,你可以用 max_() Model.addConstrs()

    总而言之,这里有一个方法:

    alpha = global_model.addVar(name="alpha")
    beta = global_model.addVar(name="beta")
    maxtime = global_model.addVar(name="maxtime")
    global_model.update()
    global_model.addConstr(maxtime == max_(alpha, beta))
    global_model.setObjective(maxtime, sense=GRB.MINIMIZE)
    
    推荐文章