1.基本原理:
群體中個體被選擇的概率與其適應度值成正比。設個體表示為
2.由輪盤**化示例 個體
1234
5適應度值24
6810個體被選擇的概率(按照上式計算)
0.07
0.13
0.20.27
0.33
3.累積概率:補充上表個體1
2345
適應度值24
6810個體被選擇的概率(按照上式計算)
0.07
0.13
0.20.27
0.33
累積概率
0.07
0.20.4
0.671
4.現在有了盤子,也用所有個體被選擇的概率劃分了整個盤子的比例,最後又計算了累積概率。現在開始進行輪盤賭;
先用rand()產生乙個[0.1之間的]隨機數,看看它落在了那個區間,就對應選擇哪個個體,例如:這個隨機數為0.02,那麼個體1就被選中;如果為0.1,則個體2被選中;如果為0.3,則個體3選中。一次類推。
5.結束,參考**網上有很多,有各種語言的。
輪盤賭演算法
首先,這個演算法可以如下表述 如果已知a類物件生成概率為p a b類物件生成概率為p b c類物件 k類物件,他們的概率總和為1,問如何在a k中隨機生成乙個物件 演算法理解如下 即我們需要先對0 1區段按照概率大小劃分長度,設隨機生成乙個0 1之間的數,這種隨機數生成結果是在0 1均勻分布的,然後...
輪盤賭演算法
首先,這個演算法可以如下表述 如果已知a類物件生成概率為p a b類物件生成概率為p b c類物件 k類物件,他們的概率總和為1,問如何在a k中隨機生成乙個物件 演算法理解如下 即我們需要先對0 1區段按照概率大小劃分長度,設隨機生成乙個0 1之間的數,這種隨機數生成結果是在0 1均勻分布的,然後...
輪盤賭演算法JAVA實現
我在原文的基礎是修改了部分 public class main else flag2 flag2 multipros j system.out.println 隨機生成的數字所在的範圍在 flag2 flag1 system.out.println 隨機生成的數字為 num 1 返回隨機數所在概率累...