CPLEX OPL错误5002:即使将最优目标设置为3,约束也不凸



CPLEX Optimization Studio出现问题。我想解决以下二次约束问题,但我得到了"CPLEX错误5002":"qconstraint1"不是凸的->'。从表面上看,我认为这是因为最优目标不会自动设置为3,但即使我明确设置了3,错误仍然存在。一个有趣的事实是,该问题在AMPL或MATLAB环境中正常求解。

我该如何解决这个问题?

/*********************************************
* OPL 12.10.0.0 Model
* Author: johnm
* Creation Date: Oct 16, 2020 at 6:29:33 PM
*********************************************/
execute{
cplex.optimalitytarget=3;
}
range R=1..6;
dvar float x[R];
minimize x[1] + x[2] + x[3] + x[4] + x[5] + x[6];
subject to{
constraint1: x[1] +  x[2] + x[5] == 8;
constraint2: x[3] + x[5] + x[6] == 10;
qconstraint1: -x[1]^2 + x[2]^2 + x[3]^2 <= 0;
qconstraint2: -x[4]^2 + x[5]^2 <= 0;
bound_x1:   x[1] >= 0;
bound_x4:   x[4] >= 0;
bound_x6:   x[6] >= 0;
}  
execute{
cplex.optimalitytarget=3;
}
range R=1..6;
dvar float x[R] in 0..100;
minimize x[1] + x[2] + x[3] + x[4] + x[5] + x[6];
subject to{
constraint1: x[1] +  x[2] + x[5] == 8;
constraint2: x[3] + x[5] + x[6] == 10;
qconstraint1: x[1]^2 - x[2]^2 - x[3]^2 >= 0;
qconstraint2: -x[4]^2 + x[5]^2 <= 0;
bound_x1:   x[1] >= 0;
bound_x4:   x[4] >= 0;
bound_x6:   x[6] >= 0;
} 

工作良好

最新更新