当前位置:  开发笔记 > 编程语言 > 正文

R的优化包

如何解决《R的优化包》经验,为你挑选了3个好方法。

有没有人知道R的任何优化包(类似于S +的NUOPT)?



1> gappy..:

R有许多优化包; 检查优化的CRAN任务视图:http://cran.r-project.org/web/views/Optimization.html.当然,对于非线性程序,optim()它是标准的,包括Broyden-Fletcher-Goldfarb-Shanno的算法和Nelder-Mead.这是一个很好的开始.



2> dwstu..:

您还应该尝试使用Rglpk软件包解决GLPK(GNU线性编程套件)中的 LP问题.

一个例子:

## Simple linear program.
## maximize:   2 x_1 + 4 x_2 + 3 x_3
## subject to: 3 x_1 + 4 x_2 + 2 x_3 <= 60
##             2 x_1 +   x_2 +   x_3 <= 40
##               x_1 + 3 x_2 + 2 x_3 <= 80
##               x_1, x_2, x_3 are non-negative real numbers

obj <- c(2, 4, 3)
mat <- matrix(c(3, 2, 1, 4, 1, 3, 2, 2, 2), nrow = 3)
dir <- c("<=", "<=", "<=")
rhs <- c(60, 40, 80)
max <- TRUE

Rglpk_solve_LP(obj, mat, dir, rhs, max = max)

R输出:(
注意$status一个整数,其中包含有关解决方案的状态信息.如果设置了控制参数canonicalize_status(默认值),那么它将为找到的最佳解返回0,否则返回非零.如果控制参数是设置为FALSE它将返回GLPK状态代码).

$optimum
[1] 76.66667

$solution
[1]  0.000000  6.666667 16.666667

$status
[1] 0



3> JD Long..:

Galwegian提到的Linprog专注于通过单纯形算法进行线性编程.此外,如果您正在进行投资组合优化,您可能对fPortfolio感兴趣.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有