我一直在玩遗传算法的并行处理来提高性能,但我想知道其他一些常用的技术是如何优化遗传算法的?优化遗传算法?
Q
优化遗传算法?
1
A
回答
1
由于经常重新计算适应度值(随着算法的运行人口的多样性下降),改善GA性能的一个好方法是减少计算适应度所需的时间。
细节取决于实现,但以前计算的健身值通常可以通过散列表有效地保存为 。这种优化可以显着降低计算时间(例如,"IMPROVING GENETIC ALGORITHMS PERFORMANCE BY HASHING FITNESS VALUES" - RICHARD J. POVINELLI, XIN FENG报告说,对于复杂的现实世界问题,将散列应用于GA可以将性能提高50%以上)。
一个关键点是碰撞管理:您可以简单地覆盖哈希表的现有元素或采用某种方案(例如线性探测器)。
在后一种情况下,当碰撞挂载时,哈希表的效率会降低到线性搜索的效率。当累计碰撞次数超过散列表的大小时,应执行重新散列操作:必须创建一个较大的散列表并将小散列表中的元素复制到较大散列表中。
的副本步可以省略:多样性降低为GA运行,所以很多淘汰的元素将不被使用,最常用的染色体值将快速重新计算(哈希表将再次填补使用最多的关键元素值)。
0
我做的一件事就是限制健身计算的次数。例如,如果景观没有噪声,即每次重新计算适应度都会导致相同的答案,则不要重新计算简单地缓存答案。
另一种方法是使用内存操作符。运营商维护解决方案的“记忆”,并确保该记忆中的最佳解决方案包含在GA群体中,如果它优于人群中的最佳解决方案。内存在GA运行期间保持最新并提供良好的解决方案。这种方法可以减少所需的适应性计算次数并提高性能。
我有一些这方面的东西在这里的例子:
http://johnnewcombe.net/blog/gaf-part-8/ http://johnnewcombe.net/blog/gaf-part-3/
相关问题
- 1. C++中的遗传算法优化
- 2. 遗传算法 - 迭代优化
- 3. 遗传算法神经网络优化
- 4. Matlab优化 - 使用遗传算法最小化目标函数
- 5. 遗传算法
- 6. 如何利用遗传算法优化神经网络?
- 7. 遗传算法优化 - 使用-O3标志
- 8. 遗传算法实现了重量优化
- 9. 断头台切割优化的遗传算法
- 10. 如何使用遗传算法对参数进行优化
- 11. 优化K均值使用遗传算法
- 12. 在MATLAB中使用遗传算法进行重量优化
- 13. 使用遗传算法的神经网络权重优化
- 14. Python:用遗传算法求解背包优化?
- 15. Python - 优化内存使用,遗传算法
- 16. 在Matlab中利用遗传算法优化图像重建算法
- 17. DEAP遗传算法
- 18. 的遗传算法
- 19. Python遗传算法
- 20. 遗传算法库
- 21. Q:初始化遗传算法
- 22. 遗传/进化算法 - 画家
- 23. JAVA遗传算法初始化
- 24. 遗传算法和细胞遗传算法有什么区别
- 25. 遗传算法的核心算法
- 26. 遗传算法问题
- 27. 遗传算法选择
- 28. 遗传算法的制作
- 29. 遗传算法的数独
- 30. 遗传算法编码