【发布时间】:2020-09-17 14:41:52
【问题描述】:
我有这个模型,我正在使用 cbc:
@variable(premex, PRODAMOUNT[op_k in keys(_ORDER_PRODUCTs_ALL), u_k in keys(UNITS), t in TIME], Int, lower_bound = 0)
@objective(
premex,
Min,
sum(
sum(
(
(iszero(
sum(
PRODAMOUNT[op_k, u_k, t] * _PRODUCTs_ALL[op["product"]]["bagSize"]
for (op_k, op) in _ORDER_PRODUCTs_ALL
)
) ? 0 : u["cap"]
) -
sum(
PRODAMOUNT[op_k, u_k, t] * _PRODUCTs_ALL[op["product"]]["bagSize"]
for (op_k, op) in _ORDER_PRODUCTs_ALL
)
) * u["util_cost1"]
for (u_k, u) in UNITS
)
for t in TIME
)
)
这是一个约束,不允许一个 UNIT / t 上的 PRODAMOUNT 超过该单元的最大容量。
for t in TIME
@constraint(
premex,
[u_k in keys(UNITS)],
sum(
PRODAMOUNT[op_k, u_k, t] * _PRODUCTs_ALL[op["product"]]["bagSize"]
for (op_k, op) in _ORDER_PRODUCTs_ALL
)
<= UNITS[u_k]["cap"]
)
end
目标值:-461275000.00000000
怎么样?为什么是负值?
UNITS[u_k][“cap”]和u[“cap”]是一样的
【问题讨论】:
-
您的解决方案状态如何? Cbc 真的找到了解决方案吗?
-
是的,我有一个解决方案。此外,有人建议我(在 julia 论坛上)查看 objective_function(...) 但没有任何解释为什么 Objective 值不同
标签: julia julia-jump