CPLEX 显示错误的 "Objective" 和 "BestBound"
CPLEX shows wrong "Objective" and "BestBound"
当我使用 CPLEX 求解 MIQP(具有二次项的混合整数规划)时,我发现进度报告只显示了不正确的 Objective 和 Best Bound。如下所示,Objective 和 Best Bound 小于 -60000 但 Best Integer 为 200+。最好的整数是可能的,但其他的没有意义。
我的objective是(Y1-XW)'(Y1-XW)+(Y2-X (I-W))'(Y2-X(I-W)),其中Y1、Y2为已知向量,X为矩阵,I为单位向量。 W 是具有 453 个变量的向量,其类型都是二进制的。我的目的是找到一个最好的 W 来最小化 objective.
很明显objective值必须>=0,但是当我把线性Obj和二次OBJ放在一起时,事情可能会出错。我还检查了我的输入和 .lp 文件,它们是正确的。我该如何解决?
左侧节点 Objective IInf 最佳整数最佳绑定 ItCnt 间隙
-
0+ 0 1369.0478 -185311.5218 ---
-
0+ 0 749.0133 -185311.5218 ---
-
0+ 0 518.5277 -185311.5218 ---
-
0+ 0 494.2433 -185311.5218 ---
-
0+ 0 384.2811 -185311.5218 ---
-
0+ 0 332.7754 -185311.5218 ---
-
0+ 0 218.6225 -185311.5218 ---
-
0+ 0 214.4162 -185311.5218 ---
-
0+ 0 210.7467 -185311.5218 ---
0 0 -61255.7340 408 210.7467 -61255.7340 22 ---
我不知道 CPLEX 对二进制变量做了什么,它可能在其他情况下有效但在我的情况下无效。我尝试了很多方法都失败了,所以我决定修改我的模型,让变量限制在{-1, 0},终于正常了。
当我使用 CPLEX 求解 MIQP(具有二次项的混合整数规划)时,我发现进度报告只显示了不正确的 Objective 和 Best Bound。如下所示,Objective 和 Best Bound 小于 -60000 但 Best Integer 为 200+。最好的整数是可能的,但其他的没有意义。
我的objective是(Y1-XW)'(Y1-XW)+(Y2-X (I-W))'(Y2-X(I-W)),其中Y1、Y2为已知向量,X为矩阵,I为单位向量。 W 是具有 453 个变量的向量,其类型都是二进制的。我的目的是找到一个最好的 W 来最小化 objective.
很明显objective值必须>=0,但是当我把线性Obj和二次OBJ放在一起时,事情可能会出错。我还检查了我的输入和 .lp 文件,它们是正确的。我该如何解决?
左侧节点 Objective IInf 最佳整数最佳绑定 ItCnt 间隙
-
0+ 0 1369.0478 -185311.5218 ---
-
0+ 0 749.0133 -185311.5218 ---
-
0+ 0 518.5277 -185311.5218 ---
-
0+ 0 494.2433 -185311.5218 ---
-
0+ 0 384.2811 -185311.5218 ---
-
0+ 0 332.7754 -185311.5218 ---
-
0+ 0 218.6225 -185311.5218 ---
-
0+ 0 214.4162 -185311.5218 ---
-
0+ 0 210.7467 -185311.5218 --- 0 0 -61255.7340 408 210.7467 -61255.7340 22 ---
我不知道 CPLEX 对二进制变量做了什么,它可能在其他情况下有效但在我的情况下无效。我尝试了很多方法都失败了,所以我决定修改我的模型,让变量限制在{-1, 0},终于正常了。