首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉概率在遗传算法/遗传编程中有什么影响?

交叉概率在遗传算法/遗传编程中有什么影响?
EN

Stack Overflow用户
提问于 2012-05-28 09:38:17
回答 2查看 3.9K关注 0票数 1

谁能举个交叉概率的例子?我想知道确定交叉概率的好处是什么,以及它对遗传算法或遗传编程有什么影响。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-28 20:57:38

根据定义,交叉概率没有好处。它只是一个参数,允许您调整遗传算法的行为。降低交叉概率将使更多的个体在下一代中保持不变。在解决某些问题时,这可能会产生积极的影响,也可能没有。我在HeuristicLab中创建了一个小实验,将遗传算法应用于TSP。在TSPLIB (bays29)的一个小实例上,对每个概率重复遗传算法10次。正如您在下图中所看到的,识别模式是相当困难的。我还上传了algorithmexperiment,您可以在HeuristicLab中打开并亲自体验这些文件。该实验包括每次运行的质量图表和进一步的分析,因此如果您愿意,可以检查收敛行为。

也有可能是选择的策略过于简单,因此没有显示出效果。在实验中,没有进行交叉的双亲也通过适应度比例选择进行了选择。因此,一个高质量的个体会很快地统治整个群体。一种不同的策略可以是通过适应度比例选择只选择交叉的双亲,并随机选择剩余的双亲。结果可以在这里看到(algorithmexperiment);

您可以进行自己的修改并试验结果。

可以在这里找到相关的答案:What is Crossover Probability & Mutation Probability in Genetic Algorithm or Genetic Programming?

票数 5
EN

Stack Overflow用户

发布于 2012-05-28 18:24:01

我不知道你到底在问什么。交叉概率就是应用交叉运算符的概率-- 0.0,1.0范围内的任何实数都是一个例子。

也没有单一的最佳设置。它依赖于算法中的大量因素和与其他设置的复杂相互关系。例如,如果你有一个代际遗传算法,你希望父母可以在没有修改的情况下存活下来。否则,您可能会失去好的解决方案。因此,您可以将交叉率设置为某个较低的值,如0.7。另一方面,像CHC这样的算法是非常精英化的--它总是保留它找到的最优解,因此有更多的动机使用交叉来进行更广泛的搜索,因此它将概率设置为1.0。其他算法完全依赖于变异,并将交叉率设置为0.0。遗传算法最典型的值非常高--可能在0.8到1.0之间。遗传编程倾向于经常使用较低的值,可能低至0.3或0.4。

但这一切都是离题的。你必须设计一个算法来支持某些目标。弄清楚多久做一次交叉应该是你出于某种原因做出的决定。如果你所做的只是使用现成的遗传算法,然后在其中添加一些随机参数,那么它不太可能工作得很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10778530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档