我可以使用以下方法来运行Rsolnp
包以运行Augmented-Lagrangian优化:
Rsolnp:::solnp(pars = beta0, fun = lf, eqfun = eq_constraint,
ineqfun = positive_constraint,
ineqLB = rep(0.001, length(beta0)),
ineqUB = rep(Inf, length(beta0)),
LB = rep(0.0001, length(beta0)),
UB =rep(Inf, length(beta0)),
control= list(trace = 1))
其中lf
是优化程序的损失函数,eq_constraint
定义总和为零的约束; positive_constraint
对所有参数都提出了积极性的要求(并且在搜索的上下边界上开销很大。)
但是,在寻找更快的优化程序时,我发现了软件包CSOLNP,据我了解,该软件包是Rsolnp
的C ++重写。
问题是我发现它仅在OpenMX包中实现,该包专注于以R方式/语法非常不常见的方式估算SEM。似乎可以使用OpenMX进行增强的拉格朗日优化,但是它要么没有很好的文档说明,要么我找不到清晰的指南。
我的问题:也许有人对上述软件包有一些建议或经验?通话看起来如何?
旁注:我也欢迎快速增强的拉格朗日算法的快速和精确解决方案的其他实现,但是根据我的发现,没有人能战胜{ {1}}个结果。
我尝试过:Rsolnp
软件包,lbfgs
软件包及其所有优化程序。