[討論] 基因演算法 交配問題

作者: pk790127 (<>)   2016-10-28 22:49:56
初學matlab , 想要簡單實踐基因演算法的邏輯,而不是用套件
我的交配(crossover)邏輯是有參考一篇paper所提供的 以下舉例:
1~6個數值
V V V
P1 = [1,2,3,4,5,6]
V V V
P2 = [2,4,1,3,6,5]
我生成C1的方法是固定P2的位置(第2,4,6的位置),然後當作C1的值
V V V
C1 = [X,4,X,3,X,5] ,而剩下的X的值則由P1扣除掉4,3,5的值照順序填入
P1 = [1,2,3(X),4(X),5(X),6]
作者: sunev (Veritas)   2016-10-31 21:18:00
ind=[2 4 6];[x,ind2]=setdiff(P1,P2(ind),'stable');C1=P2;C1(ind2)=x;
作者: pk790127 (<>)   2016-11-02 20:38:00
感謝~ 有大概懂matlab矩陣的邏輯,雖然照這方法還是不行不過我用for迴圈硬灌解決了 但是還是想知道上述的方法
作者: sunev (Veritas)   2016-11-02 20:55:00
因為沒有實機測試過,所以不行也是理所當然的 (咦?)
作者: linfox (想要一個貓頭鷹木雕)   2016-11-02 21:31:00
C1=P2;C1(ind2)=x;改成C1=zeros(1,6);C1(ind)=P2(ind);C1(C1==0)=P1(sort(ind2));
作者: pk790127 (<>)   2016-11-03 02:37:00
感謝兩位提供的方法 已經成功解決了~

Links booklink

Contact Us: admin [ a t ] ucptt.com