【发布时间】:2022-01-11 08:18:09
【问题描述】:
在我的多目标模型中,目标中有一个类似“max(x ,0)”的结构:
目标函数包含“分段”函数的一部分。
代码如下:
F6 = gp.quicksum(max((1 - (gp.quicksum(
uncertainty_prob_regular[(i, j, t)] * proportion_goods_supplier_regular_scenario[(i, j, t)] + uncertainty_prob_contract[(i, j, t)] *
proportion_goods_supplier_contract_scenario[(i, j, t)] + uncertainty_prob_emergency[(i, j, t)] * proportion_goods_supplier_emergency_scenario[
(i, j, t)] for j in supplier))), 0) * demand_list[i] * alpha_price * sales_prices_list[i] for i, t in assign_list2)
错误是:
File "src\gurobipy\gurobi.pxi", line 3349, in gurobipy.quicksum
File "src\gurobipy\linexpr.pxi", line 434, in gurobipy.LinExpr.__richcmp__
我猜可能是 python 中的“max”方法和 Gurobi 中的“quicksum”方法不兼容。
【问题讨论】:
-
Gurobi 拥有
max_()。有点明显:请参阅文档。 -
@ErwinKalvelagen:不能用于目标 - 需要作为约束。
标签: python optimization mathematical-optimization gurobi nonlinear-optimization