下面给出的数学模型给求解器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."
请咨询我如何通过修改约束或其他方式绕过这个非凸性问题。
感谢。