2010-12-13 89 views
6

我目前正在研究StringEvolver,我不確定可能在GAs中使用的特定術語。在遺傳算法中僅選擇頂部x%作爲選擇

在遺傳算法中,精英主義是指直接晉升到下一代的人口子集;正確?

但是,是否有一個特定的術語,例如,當前人口的前75%用於選擇,交叉和變異過程而不是整個人羣?基本上,這個x%比率叫什麼?

我的意思是,而不是使用整個人口的說,一個輪盤賭選擇過程中,我只用了前x%(即只品種之間人口的最好的X%)


我問的原因是因爲我注意到使用時顯着的性能改進(更快的收斂),例如,用於選擇,交叉和突變過程的前10-25%的人羣用於推進代,而不是使用滿人口。

回答

3

一個天真的選擇策略,你只需丟棄較弱的候選人有時被稱爲截斷選擇。對於許多問題,它會導致過早收斂,儘管我發現它適用於旅行推銷員問題。

聽起來像你有兩階段策略,首先使用截斷選擇來消除弱候選者,然後應用更復雜的策略(輪盤?)來完成選擇。

與其完全消除弱候選人存活的可能性,選擇允許調整該概率的選擇策略可能會更好。例如,通過錦標賽選擇,您可以調整閾值以確定弱候選人存活的可能性,而不是較強的候選人。

+0

+1是的,這基本上是我在找的東西。乾杯! – 2010-12-20 16:17:47

1

這聽起來像你只是在談論一個特定的選擇方法。你可以通過擴展你的健身功能來做大致相同的事情,以提高速度而不是線性增加。

這就是說,我會提醒你不要每次都扔掉你的人口的底部。對於較小的遺傳算法,這可以讓您更快地收斂,但對於現實世界的問題,這往往會使您陷入局部最小化,從而降低解決方案的質量。

也就是說,有一個術語叫decimation。這是當你在交叉和變異之前拋出人口中最低的X%。這通常不是每一代都完成的。爲了覆蓋更大的搜索空間,並且在X世代之後進行抽取,通常會從難以控制的大羣體開始,因爲GA通常在前100個一代左右獲得最大收益。然後,繼續處理更小,更容易處理的人羣。

希望這會有所幫助。

1

沒有具體的條款來限制對前x%元素的選擇,這只是實施選擇策略時必須設置的因素之一。

在某些情況下,您可能會收斂速度更快,但限制x%的數字,但我建議嘗試使用不同長度的字符串,並查看這會如何影響收斂。我之前完成了這個工作(參見thisthis項目,都在發展中的字符串),如果您在選擇個體時使基因池太小,卡住的可能性可能會隨着字符串的長度而增加,原因是你嚴重影響多樣性。