【问题标题】:Genetical algorithms. How to find the optimal size of the population遗传算法。如何找到最佳人口规模
【发布时间】:2017-10-03 22:09:11
【问题描述】:

如何找到最佳人口规模。在我的任务中,每个基因都是一个 int 类型的值,位于给定范围内。

例如:

  1. 染色体由 2 个基因组成。
  2. 第一个基因可能包含 5 到 15 范围内的 int 值
  3. 第二个基因可能包含一个从 15 到 25 的 int 值。

问题。如何找到初始种群的大小。

【问题讨论】:

  • 到目前为止,您能添加您的代码吗?
  • 你有没有尝试过自己做这个,或者你认为我们只是为你写?
  • 也许这份文件会对你有所帮助cameron.edu/~pdiaz-go/GAsPopMetric.pdf

标签: c# genetic-algorithm


【解决方案1】:

通常通过反复试验找到最佳尺寸。您可以编写一个简单的算法来优化种群大小,例如从 100 的 pop 大小开始,然后迭代地增加它,例如50. 对于需要运行 GA 并计算一些评估种群大小的度量的每一步,您可以使用以下之一:最大适应度、平均适应度、满足收敛标准的时间。为了提高准确性,您应该至少重复每个步骤几次,然后计算每个步骤的平均值并绘制图表,您可以从中选择最佳弹出大小,或者如果这还不够,您可以优化接近峰值在此弹出大小附近做同样的事情。

根据您的问题,图表看起来会有所不同。如果它只是一个正斜率曲线,那么您将不得不根据自己的合理弹出尺寸进行选择。如果流行规模太小,您的 GA 很可能会失去多样性,并且可能会下降到某个局部最优值。当它太大时,您的 GA 将成为简单的随机搜索算法。

顺便说一句,我希望这个例子不是你真正的问题,因为遗传算法不是这样小的染色体的最佳选择。

【讨论】:

  • 寻找遗传算法的参数通常是优化任务。对 GA 有好处的任务,因此它可以使用元进化(用于 GA 优化的另一个 GA)来优化 GA 参数。但是这种解决方案(特殊情况除外)对于有争议的结果来说是太多的精力和时间。
猜你喜欢
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 2017-08-15
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
相关资源
最近更新 更多