我对遗传算法中的轮盘赌选择感到困惑。算法如下所示
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
哪个是对的?非常感谢你
答案 0 :(得分:1)
第一种方法是正确的。
通过你的cumsum数组,直到找到比你的随机数大的那个并选择那个人。
但是,我希望你的cusum变量应该是一个数组,你可以使用:
while k<N && x>cusum[k]