我正在使用 CPLEX 最小化对角二次矩阵。所有非对角线元素都为零。
它有 500 个变量和 20 个线性约束,而且每个变量都被约束在 0 和 1 之间
对角线上的所有元素都大于零。
CPLEX 抱怨它不是最优的或无界的,具体取决于矩阵的值。
我看不出这个问题是如何无界的,因为它是凸函数的最小化。对于某些值,CPLEX 表示解决方案不是最优的。
如果有帮助,我已经发布了 lp 文件... http://speedy.sh/Ug76K/quadratic-fail.lp
这是 CPLEX 日志
尝试聚合器 1 次。
QP Presolve 消除了 15 行和 0 列。
缩减的 QP 有 5 行、500 列和 1000 个非零值。
缩减的 QP 目标 Q 矩阵有 500 个非零值。
预求解时间 = 0.00 秒。(0.29 滴答声)
并行模式:最多使用 8 个线程作为屏障。
A*A' 的下三角形中的非零数 = 10
使用近似最小度数排序
自动订购的总时间 = 0.00 秒。(0.00 滴答声)
Cholesky 因子的汇总统计数据:
线程 = 8
因子中的行 = 5
需要整数空间 = 5
因子中的总非零值 = 15
总 FP 操作因子 = 55
Itn Primal Obj Dual Obj Prim Inf Upper Inf Dual Inf
0 2.7831848e+014 -2.7831848e+014 6.65e+001 9.07e+002 5.57e+014
1 1.8149043e+012 -1.8149043e+012 5.37e+000 7.32e+001 4.49e+013
2 1.5035906e+012 -1.5035906e+012 4.89e+000 6.67e+001 4.09e+013
3 1.1322578e+012 -1.1322578e+012 4.24e+000 5.79e+001 3.55e+013
4 7.9610680e+011 -7.9610680e+011 3.56e+000 4.85e+001 2.98e+013
5 5.5016492e+011 -5.5016491e+011 2.96e+000 4.03e+001 2.47e+013
阻挡时间 = 0.00 秒。(0.96 滴答声)
8 个线程的总时间 = 0.00 秒。(0.96 滴答声)
状态 = 2
错误状态是无限的
印刷唱片
任何人都可以使用 CPLEX 重现我的问题吗?
更新:我已强制 CPLEX 使用 PRIMAL 算法而不是默认算法。优化器现在运行,但我收到很多“Markovitz threshold set to X.XX”风格的警告。