2015-03-31 72 views
0

我很困惑遺傳算法中的輪盤選擇。算法如下所示遺傳算法中的輪盤選擇

for i=1 to N 
x=random[0,1]; 
k=1; 
while k<N&&x>cusum 
    k=k+1 
end 
tmp_P[i]=P[k]; 
end 

它是正確的嗎?我迷惑,而條件

第一種方式:

while k<N&&x>cusum 
    k=k+1 
end 
tmp_P[i]=P[k]; 

或第二方式

while k<N&&x>cusum 
    k=k+1;  
    tmp_P[i]=P[k]; 
end 

哪個是正確的?非常感謝你

回答

1

第一種方法是正確的。

你通過你的cumsum數組,直到你找到一個大於你的隨機數並選擇那個人。

但是,我希望,你的累積和變量應該是一個數組,你可以使用:

while k<N && x>cusum[k]