回答

5

根据定义,交叉概率没有收益。它仅仅是一个参数,可以让你调整遗传算法的行为。降低交叉概率会让更多的人在下一代继续保持不变。解决某些问题时,这可能会或可能不会产生积极影响。我在HeuristicLab中创建了一个适用于TSP的遗传算法的小实验。对于TSPLIB(bays29)的一个小实例,每个概率重复10次遗传算法。正如您在下面的图片中看到的,识别图案相当困难。我也上传了algorithmexperiment,你可以在HeuristicLab中打开并试验这些文件。实验包括每次运行和进一步分析的质量图表,以便您可以检查收敛行为。

Variations of crossover probability

这也可能是选择的策略过于简单,因而未能表现出的效果。在实验中,不受交叉影响的亲本也通过适应性比例选择来选择。所以一个高素质的人会非常快地占主导地位。一种不同的策略可能是通过健身比例选择仅选择交叉父母,而其余父母则随机选择。结果可以在这里看到(algorithmexperiment);

Variations of crossover probability

您可以用结果使自己的修改和实验。

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

3

我不知道你在问什么。交叉概率就是应用交叉算子的概率 - 范围[0.0,1.0]中的任何实数就是一个例子。

也没有单一的最佳设置。它取决于大量的因素以及算法中与其他设置的复杂关系。例如,如果你有世代通用遗传算法,你希望有一些父母可以在未经修改的情况下存活的可能性。否则,你会失去很好的解决方案。所以你可以将交叉率设置为0.7这样的低点。另一方面,像CHC这样的算法非常强大 - 它始终保持它找到的最佳解决方案,因此使用交叉搜索的动机更广泛,因此它将概率设置为1.0。其他算法完全依赖于突变,并将交叉率设置为0.0。遗传算法的最典型值非常高 - 可能是0.8到1.0。遗传编程经常使用较低的值,可能低至0.3或0.4。

但是,这是所有的点旁边。你必须设计一个算法来支持一些目标。确定交叉频率应该是由于某种原因决定的。如果你所做的只是采用现成的遗传算法并在其中存储一些随机参数,那么它不太可能工作得很好。