0

我正在使用 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 处停止。出了什么问题?如何将额外的控件传递给求解器?

4

1 回答 1

0

我想到了。参数应全部为大写字母。

result <- solve(problem, solver='ECOS', verbose=TRUE, MAXIT=as.integer(2000))

我认为这与文件不一致。

于 2018-04-17T15:49:29.903 回答