我使用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+3.405e+04达到最大迭代次数,恢复最佳迭代次数(87)并停止。
求解器在迭代100时停止,这可能是解决方案不满足约束的原因;也可能是问题的解是小数(1e-5),并且达到了默认的公差。因此,我试图根据package ECOSolveR的文档将额外的参数传递给求解者:
ecos.control(maxit=2000)然而,求解器仍然停留在默认的最大迭代100。哪里出了问题?如何将额外的控制传递给求解者?
发布于 2018-04-17 15:49:29
我想通了。论点应该都是大写字母。
result <- solve(problem, solver='ECOS', verbose=TRUE, MAXIT=as.integer(2000))我认为这与文件不一致。
https://stackoverflow.com/questions/49881166
复制相似问题