我有一個關於輪盤選擇的lisp程序,我想了解它背後的理論,但我什麼都不懂。
如何計算所選strng的適應度?
例如,如果我有一個字符串01101,他們是如何得到169的適應值?輪盤賭選擇例子的解釋
是不是01101的二進制編碼的計算結果爲13,所以我平方的價值,並得到答案爲169?
聽起來很蹩腳,但不知何故,我通過這樣做得到了正確的答案。
我有一個關於輪盤選擇的lisp程序,我想了解它背後的理論,但我什麼都不懂。
如何計算所選strng的適應度?
例如,如果我有一個字符串01101,他們是如何得到169的適應值?輪盤賭選擇例子的解釋
是不是01101的二進制編碼的計算結果爲13,所以我平方的價值,並得到答案爲169?
聽起來很蹩腳,但不知何故,我通過這樣做得到了正確的答案。
對於給定問題的「適應度函數」是經常任意選擇的,因爲隨着「適應度」度量值上升,解決方案應該達到最優性。例如,對於目標是最小化正值的問題,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)
相關。