我有一個理解演化算法的問題。我嘗試過多次使用這種技術,但我總是遇到同樣的問題:退化進入模擬退火。退化爲模擬退火的進化算法問題:突變太小?
可以說,我的初始羣體,使用健身括號中是:
A(7),B(9),C(14),d後(19)
交配和突變我有以下孩子:
AB(8.3),AC(12.2),AD(14.1),BC(11),BD(14.7),CD(17)
消除最弱後,我們得到
A,AB,B,AC
下一回合,AB會再次交配,結果8左右,將AC推出。接下來再次轉向AB,再將B推出(假設變異主要在> 1範圍內改變適應度)。
現在,經過短短的幾輪之後,泳池就會充滿最初最適合的候選人(A,B)和這兩個(AB)的突變。無論初始池的大小如何,都會發生這種情況,只需要更長的時間。比如說,初始人口數爲50人需要50轉,然後所有其他人都被淘汰,從而將整個裝置變成更復雜的模擬退火。一開始我還與自己進行了認真的對話,使問題更加惡化。
那麼,我錯過了什麼?我的突變率太小了,如果我增加它們,它會消失嗎?
以下是我正在使用它的項目: http://stefan.schallerl.com/simuan-grid-grad/ 是啊,代碼是越野車和界面很爛,但我懶得修復它現在 - 和小心,它可能會鎖定您的瀏覽器。更好地使用chrome,甚至認爲firefox不會比chrome慢一次(可能圖像比較的追蹤值得回報,耶!)。如果有人有興趣,the code can be found here。
在這裏,我剛剛放棄了ev-alg的想法,並進行了模擬退火。
ps:我甚至不確定模擬退火 - 它就像演化算法,只是人口規模爲1,對吧?
非常感謝,我會看看! – stefs 2010-02-18 06:34:36