0

我想知道是否有人知道提供 2D 模型搜索空间来测试 GA 的来源。我相信我不久前读到有一堆标准搜索空间,通常在评估这些类型的算法时使用。

如果不是,是否只是每次自己随机生成这些数据的情况?

编辑:从上方和侧面查看。

4

2 回答 2

1

搜索空间完全取决于您的问题。遗传算法的想法是修改个体群体的“基因组”以创建下一代,测量新一代的适应度并再次修改基因组并抛出一些随机性,以防止陷入局部最小值. 然而,搜索空间完全取决于您基因组中的内容,而基因组又完全取决于问题所在。

可能有标准搜索空间(即基因组)已被发现可以很好地解决特定问题(我还没有听说过),但通常使用 GA 最难的部分是定义你的基因组中有什么以及如何允许它变异。有用之处在于您不必为模型的不同变量显式声明所有值,但您可以使用或多或少的盲目搜索找到好的值(尽管不一定是最好的值)。

例子

一个被大量使用的例子是进化的无线电天线(维基百科)。目的是为无线电天线找到一种配置,使天线本身尽可能小且重量轻,但限制是必须响应某些频率并具有低噪声等。

所以你会建立你的基因组指定

  1. 要使用的电线数量
  2. 每根导线的弯曲数
  3. 每个弯曲的角度
  4. 可能是每个弯曲到底座的距离
  5. (其他的,我不知道是什么)

运行你的 GA,看看另一端会出现什么,分析它为什么不起作用。由于模拟中的错误,GA 习惯于产生出乎您意料的结果。无论如何,您发现基因组可能必须为天线中的每条线单独编码弯曲的数量,这意味着天线不会是对称的。所以你把它放在你的基因组中,然后再次运行它。模拟需要在物理世界中工作的东西通常是最昂贵的,因为在某些时候你必须在现实世界中测试个人。

这里有一个合理的遗传算法教程,其中包含一些关于基因组不同编码方案的有用示例。

最后一点,当人们说 GA 简单且易于实现时,他们的意思是围绕 GA 的框架(生成新种群、评估适应度等)很简单。通常没有说的是,为实际问题设置 GA 是非常困难的,并且通常需要大量的试验和错误,因为对于复杂的问题,想出一个运行良好的编码方案并不简单。最好的开始方式是从简单的开始,随着你的进展让事情变得更加复杂。您当然可以制作另一个 GA 来为第一个 GA 编码 :)。

于 2013-08-20T07:25:10.923 回答
1

有几个标准的基准测试问题。

  • BBOB(黑盒优化基准)——近年来已被用作持续优化竞赛的一部分
  • DeJong 函数——非常古老,而且对于现在的大多数实际目的来说真的太容易了。也许对调试有用。
  • ZDT/DTLZ 多目标函数——多目标优化问题,但我想你可以自己对它们进行标量化。
  • 好多其它的
于 2013-08-21T13:57:42.027 回答