algorithm - 如何知道遗传算法是否有效?

标签 algorithm genetic-algorithm

<分区>

在将算法应用于特定问题之前对其进行基准测试非常重要。否则,垃圾输入,垃圾输出。实现了带有精英主义的遗传算法 (GA),我不知道如何测试它是否有效。

我想过打印出每一代的统计数据,例如均值、中位数和方差。然而,它们并不是正确性的真正有力指标。例如,最大适应度并没有说明什么,因为即使是使用精英主义的随机搜索,您的最大适应度也不会降低。平均数和中位数也没有太多意义,因为即使 GA 完全正确,它们偶尔也会恶化。

测试 GA 是否运行良好的有效方法是什么?

最佳答案

一个很好的方法是你有精英主义,这样你就可以确保你永远不会失去你最好的个人。

但是,这并不意味着您会在几代人中看到进步。首先,您需要了解 GA,最好的方法是使用参数(CROSSOVER RATE、MUTATION RATE、No. INDIVIDUAL、No. ITERATION、ELITISM VALUE)并查看结果。

正如 trailmax 所说,可视化或打印出最佳个体作为迭代次数的函数。如果您看到最好的个人被“卡住了”,即并没有真正显示出进展,尝试更改参数并查看会发生什么。如果显示进度(好吧,这太相对了!)您的算法有效。 :)

关于algorithm - 如何知道遗传算法是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419905/

相关文章:

python - 使用遗传算法猜测图像

algorithm - 应该在遗传算法的哪一步应用适应度共享?

algorithm - scm 分布的适应度函数

algorithm - 使用树遍历具有相同父/子关系的一组单独的元素

algorithm - 计算可能序列的数量

perl - 如何开始使用 Perl 对财务数据进行蒙特卡罗模拟?

genetic-algorithm - 应用于曲线拟合的遗传算法

algorithm - 如何在 dijkstra 算法中以 O(log n ) 时间更新优先级队列中的 key ?

Floyd 算法的 Java 实现不适用于无向图

java - 将均匀随机生成转换为二项式