我正在使用 CVXR 来解决约束问题。求解器给出不满足所有约束的结果。
result <- solve(problem, solver='ECOS', verbose=TRUE, ecos.control(maxit=2000))
详细输出的最后几行如下所示:
100 +3.405e+04 +3.405e+04 +1e-09 5e-05 5e-09 1e-03 4e-12 0.9791 9e-01 2 0 0 | 15 0 达到最大迭代次数,恢复最佳迭代 (87) 并停止。
求解器在迭代 100 处停止,这可能是解不满足约束的原因;或者可能是问题的解决方案是小数字(1e-5)并且达到了默认容差。所以我尝试根据包 ECOSolveR 的文档将额外的参数传递给求解器:
ecos.control(maxit=2000)
然而,求解器仍然在默认的最大迭代次数 100 处停止。出了什么问题?如何将额外的控件传递给求解器?