【问题标题】:passing in options to solvers from cvxr solve function从 cvxr 求解函数向求解器传递选项
【发布时间】:2018-04-17 23:54:33
【问题描述】:

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

【问题讨论】:

    标签: r optimization solver convex-optimization cvxr


    【解决方案1】:

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

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

    我认为这与文档不一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 2017-12-16
      相关资源
      最近更新 更多