執行步驟如下:
c1, c2 是其父本 p1, p2的副本
在[1, l]上隨機選擇兩個位置a,b,假設a ≤ b(figure 2(a))
在子代c1種找到父代p2中a,b之間的值v2(a), v2(a + 1),...,v2(b),並用holes取代,figure 2(b),同理,c2也具有相似的步驟,在c2中找到 v1(a), v1(a + 1),...,v1(b)中的值並用holes取代
然後採用slide滑動的方式將holes擠到a,b的區域,也就是說將a左側的不是hole的基因向左移,直到行程連續的字串(保持相對位置),這是與ox不同的地方;然後nwox將a,b區間的右側任何non-hole基因從左向右移動,直到沒有holes
最後將p2中a,b間的基因替換到c1的a,b區間,同理,將p1中a,b間的基因替換到c2的a,b區間
對比父代p1,p2,和子代c1,c2,發現雖然幾乎每個基因的位置都發生了變化,但是每個基因離他們原來的位置並不遠,重要的是,父代左側的基因仍然在左側,沒有出現在右側。
實驗:在weighted tardiness scheduling problem 進行了測試,與ox, cx, pmx, and upmx進行了比較
遺傳演算法的交叉變異操作雜記
100個個體,交叉概率為0.1,並不代表交叉個體數為10個.這是乙個概率問題.另外,交叉概率一般會取0.5 1這個範圍內,0.1未免有點小.自適應的遺傳演算法,一般在迭代初期會有較大的交叉概率,越往迭代後期,交叉概率越小.而變異概率則相反.標準的交叉如下 假設六個個體的編號為從1至6,兩兩配對共分為...
遺傳演算法 交叉操作 SCX 2010
scx根據父代better edges構造子代,與gnx,erx不同的是,scx不僅取決於父代的構造,也能夠生成新的,更好的構造,這些構造可能在兩個選擇的父代中都沒有出現。演算法步驟 從第乙個節點node 1開始 依次搜尋兩個父代染色體,比較在父代 現在節點p後面的第乙個合法節點 沒有被訪問過的 如...
遺傳演算法 變異操作
對於不同問題以上變異可能是較大的變異也可能是較小的變異,比如,inversion對於鄰接關係是較小的變異,而對於絕對位置和相對位置關係卻是很大的變異。乙個變異應該是具有較小的變化,這樣才能有平滑的適應度變化。1 alberto moraglio.2007.towards a geometric un...