我正在尝试包含一个python" max"使用gurobi和python在quicksum命令中执行命令。在LinExpr限制下,显然有这样做的错误,因为它不被接受。
shutdowncost = quicksum(quicksum(shutdown_cost[i] * max((v[hour -1, i] - v[hour, i]),0) for i in num_gen) for hour in hour_range)
V是模型中的二进制变量,而余数是固定变量。问题是在v [小时-1,i]为0,v [小时,i]为1的情况下,shutdowncost为负数。
是否有另一个命令可用于替换quicksum中的max命令?
答案 0 :(得分:0)
这篇论文讨论了启动和关闭约束:MIPFormulation。他们使用符号:
这些gurobi二元变量使用约束来定义:
然后可以定义shutdowncost:
(不需要2个速布!) 然后可以在目标函数或其他约束中使用此关闭成本。而且更容易看到发生了什么。