3

我一直在尋找可以實現我正在處理的遺傳算法的自適應變異率的方法。我見過一種算法,它使用當前的個體適應度和平均種羣適應度來計算突變率,但我不確定它是否非常有效。遺傳算法的自適應變異/交叉率

在我見過你做如下算法:

mutationRate = (bestFitness - individualFitness)/(bestFitness - averageFitness) * 0.5 

這會是一個很好的做法還是有更好的?

+0

你能使其成爲一個特質?讓他們選擇自己的利率,最優的利率將會提前。 – Beta 2014-10-26 17:03:19

+0

@貝塔耶,但理想情況下,這將是很好的不需要。我一直在尋找一種適應基於GA性能的突變率的方法,但是我一直無法找到關於如何做到這一點的最佳方法。 – user11406 2014-10-26 17:08:03

回答

1

GA中沒有銀彈。有多種方式可以實現突變和其他因素,但都取決於您使用的領域,約束的數量,適應度函數以及所有其他因素。

你可以做的最好的是找出自己 - 玩不同的方法,看看你是否得到更好的結果。此外,也許https://cstheory.stackexchange.com/會是一個更好的地方來問這樣的問題。

+0

+1真的!無論如何,GA/GP問題通常是「邊緣化的」,也許http://programmers.stackexchange.com/可能是一個問題。 – manlio 2014-10-30 11:37:40

3

我不認爲有一個「最佳方式」:突變算法和變異率是相當問題/算法特定。

不幸的是,根據許多實際的實驗,即使是自適應變異也很容易陷入局部最優。

使用您正在使用的自適應變異方法,具有高適應度的個體對應較小的變異概率,而具有較低適應度的個體對應於較高的變異概率。

該方法可以有效保護優秀個體,但很容易陷入局部收斂。

如果遺傳多樣性逐漸喪失(爲了維持在搜索空間中分佈的種羣),不同的(並不一定更好的)方法是增加突變率。

否則,當觀察到種羣多樣性增加時,價值會降低。

突變率值的這些變化也是勘探和開採之間良好平衡的另一個來源(參見1)。

參考

  1. A New Strategy for Adapting the Mutation Probability in Genetic Algorithms - 斯塔克納塔利婭,加布裏埃拉Minetti,羅萊薩爾託
  2. Adaptive mutation rate control schemes in genetic algorithms - 德克Thierens