1

我在 R 中使用 rbga,在似乎是应用精英主义的函数部分期间发生了以下错误。这是导致错误的会话:

Testing the sanity of parameters...
The start conditions:
GA Settings
  Type                  = 
  Population size       = 10
  Number of Generations = 10
  Elitism               = 2
  Mutation Chance       = 0.00237529691211401

Search Domain
  Var 1 = [-0.1,0.1]
  Var 2 = [-0.1,0.1]
  Var 3 = [-0.1,0.1]

Starting with random values in the given domains...
Starting iteration 1 
Calucating evaluation values... .......... done.
Creating next generation...
  sorting results...
  applying elitism...
Error: subscript out of bounds

不幸的是,我无法提供可重现的示例,因为我的代码包含大约 300 行,而且我似乎无法创建简化版本。有没有人在使用 rbga 时遇到过类似的问题,谁能给我任何关于为什么会发生这种情况的指示?

更新

我在 rbga 函数中找到了导致错误的代码行:

newPopulation[1:elitism, ] = sortedPopulation[1:elitism, ]

此时 sortedPopulation 的长度为 0,而 elitism 为 2 ...有人有什么想法吗?

4

1 回答 1

3

出现此问题是因为评估函数返回 NA,这在 rbga 函数中搞砸了。确保评估函数返回一个真实值以避免此错误。

于 2012-11-01T12:18:42.930 回答