任何人都可以舉一個交叉概率的例子嗎?我想知道確定交叉概率的好處,以及它在遺傳算法或遺傳編程中的作用。交叉概率對遺傳算法/遺傳規劃有什麼影響?
回答
根據定義,交叉概率沒有收益。它僅僅是一個參數,可以讓你調整遺傳算法的行爲。降低交叉概率會讓更多的人在下一代繼續保持不變。解決某些問題時,這可能會或可能不會產生積極影響。我在HeuristicLab中創建了一個適用於TSP的遺傳算法的小實驗。對於TSPLIB(bays29)的一個小實例,每個概率重複10次遺傳算法。正如您在下面的圖片中看到的,識別圖案相當困難。我也上傳了algorithm和experiment,你可以在HeuristicLab中打開並試驗這些文件。實驗包括每次運行和進一步分析的質量圖表,以便您可以檢查收斂行爲。
這也可能是選擇的策略過於簡單,因而未能表現出的效果。在實驗中,不受交叉影響的親本也通過適應性比例選擇來選擇。所以一個高素質的人會非常快地佔主導地位。一種不同的策略可能是通過健身比例選擇僅選擇交叉父母,而其餘父母則隨機選擇。結果可以在這裏看到(algorithm和experiment);
您可以用結果使自己的修改和實驗。
一個相關的答案可以在這裏找到:What is Crossover Probability & Mutation Probability in Genetic Algorithm or Genetic Programming?
我不知道你在問什麼。交叉概率就是應用交叉算子的概率 - 範圍[0.0,1.0]中的任何實數就是一個例子。
也沒有單一的最佳設置。它取決於大量的因素以及算法中與其他設置的複雜關係。例如,如果你有世代通用遺傳算法,你希望有一些父母可以在未經修改的情況下存活的可能性。否則,你會失去很好的解決方案。所以你可以將交叉率設置爲0.7這樣的低點。另一方面,像CHC這樣的算法非常強大 - 它始終保持它找到的最佳解決方案,因此使用交叉搜索的動機更廣泛,因此它將概率設置爲1.0。其他算法完全依賴於突變,並將交叉率設置爲0.0。遺傳算法的最典型值非常高 - 可能是0.8到1.0。遺傳編程經常使用較低的值,可能低至0.3或0.4。
但是,這是所有的點旁邊。你必須設計一個算法來支持一些目標。確定交叉頻率應該是由於某種原因決定的。如果你所做的只是採用現成的遺傳算法並在其中存儲一些隨機參數,那麼它不太可能工作得很好。
- 1. 什麼是遺傳算法或遺傳程序設計中的交叉概率和變異概率?
- 2. matlab交叉遺傳算法
- 3. 遺傳算法和細胞遺傳算法有什麼區別
- 4. 遺傳算法中交叉的方法
- 5. 交叉熵和遺傳算法有什麼區別?
- 6. 遺傳算法:交叉0-1揹包
- 7. 遺傳算法交叉操作
- 8. 使用交叉遺傳算子有什麼優點和缺點?
- 9. 遺傳算法的自適應變異/交叉率
- 10. 遺傳算法
- 11. DEAP遺傳算法
- 12. 的遺傳算法
- 13. Python遺傳算法
- 14. 遺傳算法庫
- 15. 進化規劃和遺傳編程有什麼區別?
- 16. 遺傳算法的概率分佈編碼
- 17. 遺傳算法 - 路徑的交叉和變異運算符
- 18. 混合阿爾法交叉操作在遺傳算法
- 19. 遺傳算法 - 交叉和突變無法正常工作
- 20. 遺傳規劃中的指數
- 21. 遺傳算法尋路 - 交叉和變異
- 22. 遺傳算法 - 部分映射交叉 - Java
- 23. 允許在遺傳算法交叉不兼容的變化
- 24. 在遺傳編程中實現交叉
- 25. 遺傳算法問題
- 26. 遺傳算法選擇
- 27. 遺傳算法的製作
- 28. 遺傳算法的數獨
- 29. 遺傳算法編碼
- 30. 分類遺傳算法