具有2个未知数的GenSA优化

时间:2016-03-14 15:04:09

标签: r optimization

我仍然是R的新手,并坚持优化问题。我这里有一个相当普遍的问题。我正在尝试最小化一个函数,比如

  

function(a,b){2*a^2+b},

使用GenSA功能有两个未知数。每当我尝试运行它时,它会告诉我它无法找到b。现在我想知道是否有可能使用2个未知数的GenSA或者是否更适合不同的功能?如果有人有想法会很棒!

我正在使用的代码用于GenSa函数顺便说一下这样的东西(也用矢量试了但是也没用):

> library(GenSA)
> 
> minim<-function(a,b){2*a^2+b}
> 
> dimension <- 30

> global.min <- 0 
> tol <- 1e-15
> 
> lower <- rep(0, dimension)
> 
> upper <- rep(30, dimension)
> 
> 
> out <- GenSA(lower = lower, upper = upper, fn = minim,
> control=list(threshold.stop=global.min+tol,verbose=TRUE))
> 
> out[c("value","par","counts")]

1 个答案:

答案 0 :(得分:1)

这是二维问题,而不是三维问题。显然不是很令人兴奋,因为算法很容易找到最优解。当然,对于大多数问题并非如此。

> minim<-function(a){2*a[1]^2+a[2]}
> dimension<-2
> global.min <- 0
> tol <- 1e-15
> lower <- rep(0, dimension)
> upper <- rep(30, dimension)
> out <- GenSA(lower = lower, upper = upper, fn = minim,
+              control=list(threshold.stop=global.min+tol,verbose=TRUE))
Initializing par with random data inside bounds
It: 1, obj value: 0
> out[c("value","par","counts")]
$value
[1] 0

$par
[1] 0 0

$counts
[1] 32

>