не удалось передать `gurobi.GenExpr` в` model.setObjective` - PullRequest
0 голосов
/ 07 октября 2018
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).Но кажется невозможным просто сделать maxtime 1-й аргумент для setObjective:

gurobipy.GurobiError: Невозможно преобразовать аргумент в выражение

Как какЯ это исправлю?

1 Ответ

0 голосов
/ 07 октября 2018

Редко создавать список переменных gurobi.В общем, лучше использовать Model.addVars () , чтобы получить набор переменных ваших gurobi.И, насколько я помню, вы можете использовать max_() только внутри методов Model.addConstr () и 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)
...