
- 遺傳演算法教程
- 遺傳演算法 – 首頁
- 遺傳演算法 – 簡介
- 遺傳演算法 – 基礎
- 基因型表示
- 遺傳演算法 – 種群
- 遺傳演算法 – 適應度函式
- 遺傳演算法 – 父代選擇
- 遺傳演算法 - 交叉
- 遺傳演算法 – 變異
- 倖存者選擇
- 終止條件
- 生命週期適應模型
- 有效實現
- 高階主題
- 應用領域
- 進一步閱讀
- 遺傳演算法資源
- 遺傳演算法 - 快速指南
- 遺傳演算法 - 資源
- 遺傳演算法 - 討論
遺傳演算法 - 交叉
本章將討論交叉運算元的含義及其其他模組、用途和優點。
交叉簡介
交叉運算元類似於生物繁殖和生物交叉。在這種方法中,選擇多個父代,並使用父代的遺傳物質產生一個或多個子代。交叉通常以高機率應用於遺傳演算法 – pc。
交叉運算元
本節將討論一些最常用的交叉運算元。需要注意的是,這些交叉運算元非常通用,遺傳演算法設計者也可以選擇實現特定問題的交叉運算元。
單點交叉
在單點交叉中,選擇一個隨機交叉點,並將兩個父代的尾部交換以獲得新的子代。

多點交叉
多點交叉是一點交叉的推廣,其中交替的片段被交換以獲得新的子代。

均勻交叉
在均勻交叉中,我們不將染色體分成片段,而是分別處理每個基因。在這種方法中,我們實際上為每個染色體拋擲一枚硬幣,以決定它是否包含在子代中。我們也可以使硬幣偏向一個父代,以便子代從該父代獲得更多遺傳物質。

算術重組
這通常用於整數表示,並透過使用以下公式取兩個父代的加權平均值來實現:
- 子代1 = α.x + (1-α).y
- 子代2 = α.x + (1-α).y
顯然,如果 α = 0.5,則兩個子代將相同,如下面的影像所示。

Davis 順序交叉 (OX1)
OX1 用於基於排列的交叉,目的是將有關相對順序的資訊傳遞給子代。其工作原理如下:
在父代中建立兩個隨機交叉點,並將第一個父代中它們之間的片段複製到第一個子代。
現在,從第二個父代的第二個交叉點開始,將第二個父代中剩餘的未使用數字複製到第一個子代,環繞列表。
對第二個子代重複此操作,並反轉父代的角色。

還存在許多其他交叉,例如部分對映交叉 (PMX)、基於順序的交叉 (OX2)、洗牌交叉、環交叉等。
廣告