具有框/约束约束的线性程序求解器?

时间:2012-01-05 20:20:30

标签: r optimization

R中是否存在支持上限和下限约束的线性程序优化器?

limSolvelpSolve不支持绑定约束。

R Cran Optimization Task View页面可以清楚地了解哪些LP优化器支持绑定约束。

2 个答案:

答案 0 :(得分:1)

请注意,所有线性编程求解器都假设它们的变量是正数。如果需要不同的下界,最简单的方法是对变量执行线性变换,应用lpSolve(或Rglpk),然后重新变换变量。这在前一段时间发布在R-help中已经解释过 - 我目前无法找到。

顺便说一句,Rglpk有一个参数'bounds',允许通过向量而不是矩阵定义上限和下限。这可能会减弱您对矩阵增长过快的担忧。

答案 1 :(得分:0)

Rglpk包中的命令执行约束。

或考虑通用连续求解器;

  • 包统计提供了几种通用优化例程。首先,函数optim()提供了Broyden-Fletcher-Goldfarb-Shanno(BFGS)方法的实现,有界BFGS,共轭梯度,Nelder-Mead和模拟退火(SANN)优化方法。它利用渐变(如果提供)来加快收敛速度​​。通常,它用于无约束优化,但包括用于框约束优化的选项。
  • 此外,为了最小化受线性不等式约束的函数,统计数据包含例程constrOptim()。
  • nlminb()使用PORT例程提供无约束和约束优化。