1

下面指出的数学模型给求解器 CPLEX 带来了麻烦。我知道这个问题是由于约束的非凸性而出现的。

min { (b)*(d*m) + (1-b)*(d*n) }
st.
Cons0: d = p-g,
Cons1: b*d => 0,
Cons2: (1-b)*(-d) => 0

模型寻求 p 的最优值。这个想法是这样的;对于大于 g 的 p 值,目标函数应考虑 m 的成本(即 d m),反之亦然(即 d n)。b 是二进制变量,m、n 和 g 是假定给定的参数。

我使用 Pyomo(基于 Python 的优化建模语言)和求解器 CPLEX。运行代码最终会出现以下错误消息:

"CPLEX Error  5002: 'c_Cons1_' is not convex."

请就如何通过修改约束或其他方式绕过这个非凸性问题咨询我。

谢谢。

4

0 回答 0