2013-03-05 40 views
0

我有一個關於輪盤選擇的lisp程序,我想了解它背後的理論,但我什麼都不懂。
如何計算所選strng的適應度?
例如,如果我有一個字符串01101,他們是如何得到169的適應值?輪盤賭選擇例子的解釋

是不是01101的二進制編碼的計算結果爲13,所以我平方的價值,並得到答案爲169?

聽起來很蹩腳,但不知何故,我通過這樣做得到了正確的答案。

回答

0

對於給定問題的「適應度函數」是經常任意選擇的,因爲隨着「適應度」度量值上升,解決方案應該達到最優性。例如,對於目標是最小化正值的問題,F(x)的自然選擇是1/x

對於手頭的問題,似乎適應函數已被給出爲F(x) = val(x)*val(x),儘管不能僅從(x,F(x))的單個值對確定。

輪盤選擇是一種常用的基於健身的僞隨機選擇方法。這很容易理解,如果你曾經玩過輪盤賭或觀看'命運之輪'。

讓我們考慮最簡單的情況,其中,

假設我們有四個值,1,2,3 and 4

這意味着這些「個體」分別具有適合度1,2,3 and 4。現在選擇個人'x1'的概率計算爲F(x1)/(sum of all F(x))。這就是說,因爲這些擬合的總和將是10,所以選擇的概率將分別爲0.1,0.2,0.3 and 0.4

現在,如果我們考慮從累積透視x的值將被映射到「概率以下範圍的這些概率:

1 ---> (0.0, 0.1] 
2 ---> (0.1, (0.1 + 0.2)] ---> (0.1, 0.3] 
3 ---> (0.3, (0.1 + 0.2 + 0.3)] ---> (0.3, 0.6] 
4 ---> (0.6, (0.1 + 0.2 + 0.3 + 0.4)] ---> (0.6, 1.0] 

即,產生的均勻分佈的隨機變量的情況下,說R躺在標準化區間,(0, 1],是四倍可能是對應於4爲對應於1的時間間隔。

換一種方式,假設你是旋轉輪盤輪型結構與e ach x分配了一個扇區,其扇區面積與它們各自的值F(x)成比例,那麼指標在任何給定扇區停止的概率直接與該x的值F(x)相關。

1

因此,您擁有的健身功能是F=X^2

輪盤輪計算出該個體(字符串)所佔的整體比例(根據它的適應度),然後用它隨機選擇下一代的一組字符串。

建議您閱讀this幾次。