回答

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。

但是,這是所有的點旁邊。你必須設計一個算法來支持一些目標。確定交叉頻率應該是由於某種原因決定的。如果你所做的只是採用現成的遺傳算法並在其中存儲一些隨機參數,那麼它不太可能工作得很好。