我開始鑽研GA到這裏來研究一下,我似乎無法找到交叉代斷點的答案。舉例來說,如果我開始與家長:
Father = [A,B,B,A,C]
交叉算法的實現
Mother = [D,D,B,A,A]
在什麼時候我能legitmately停止生產兒童證明所有可能的組合已經用盡?代碼如下:
void reproduce(String[] father, String[] mother) {
double choice = Math.random() * 100;
if((int) choice % 10 < 2){
//start at father[1] and swap.
//Continue for other choices
這是一小片,以我利用邏輯。所以我的問題回來了,我如何合理地確定何時停止創建孩子?或者,這只是一個數學問題,我應該只看一個直排列生成器,而忽略GA?
我寧願認爲遺傳算法的重點在於尋找解決問題的啓發式方法,並非詳盡無遺。如果你不得不嘗試每種組合,那麼你可以在沒有GAs的情況下解決問題。 – 2010-10-04 00:40:07
這可能更接近我們所需要的,因爲GA對我而言是新的東西,這就是爲什麼我似乎回到徹底搜索,因爲它是我熟悉的。 – Woot4Moo 2010-10-04 00:44:04
GA最適合那些無法徹底解決的問題。當我在一家工程公司工作以解決*許多*變量和約束條件下的複雜非線性方程時,我們使用了類似的東西。 – 2010-10-04 00:45:32