2012-12-08 93 views
15

我正在閱讀關於在約束優化問題中使用GA的論文。在某些部分,它正在討論對個人(或他們制定的帕累託陣線)應用niching scheme什麼是niching計劃?

這似乎是一個典型的選擇計劃,但我搜索時,我找不到一個很好的解釋。

有人可以儘量簡單地向我解釋一下,什麼niching計劃是?

回答

33

簡而言之,niching是一類嘗試在單次運行期間收斂到多個解決方案的方法。 Niching是將遺傳算法的種羣分割爲不相交集合的思想,旨在讓每個區域的適應度函數中至少有一個「有趣」的成員;一般來說,我們的意思是你覆蓋多個本地最佳值。

想象一下像f(x) = sin(x^2)這樣的功能。

enter image description here

正常GA最終會靠攏兩個全球最低之一。哪一個取決於初始種羣和整個運行過程中發生的隨機基因漂移,但最終,您將在一個或另一個山谷中獲得一個個體的拷貝數n。例如,如果你看了這樣的GA時,它幾乎融合,你可能會看到類似

standard GA

小生境是一個通用類的技術預期,大約有一半的人口在每個最小收斂到結束(或者可能甚至包括少數幾個成員,在x=0的最小配合中)。

niching

正如我剛纔所說,小生境是不是一個真正的算法這麼多,因爲一般類的算法。戈德堡的健身分享方法就是其中一種。在這種方法中,我們定義了一個小生境半徑sigma。任何兩個比這個sigma更接近的個體被認爲是在同一個小生境中,因此必須分享他們的適應值(認爲這是一個減少小生境中每個成員的適應度的函數,人口密度越高)。然後,您可以使用共享適應值而不是原始值進行操作。

這裏的想法是,通過假裝那裏的資源有限,阻止融合到健身功能的單個區域。越多的人試圖進入,他們都變得越糟糕。結果是當遺傳算法收斂到某個地方的單個局部最優時,由於競爭環境內的競爭加劇,最優的適應度下降。最終,健身景觀的另一個區域變得更具吸引力,並且個體在那裏遷移。這個想法是要達到一個穩定的狀態 - 動態中的一個固定點 - 在這裏保持每個利基的適當表示。

由於需要手動設置小生境半徑,所以共享很困難,並且該算法對此選擇非常敏感。另一種選擇是擁擠。特別是,您可能會查找「確定性擁擠」,這是一段時間內流行的方法。在基於擁擠的方法中,我們不是處理明確的半徑,而是通過將一個新的後代可以替換的一組個體限制在一組類似的解決方案中,例如,可以允許後代替換其父母中的一個。其效果是試圖防止用一個與人口中十二個人非常相似的獨立個體替代,從而以這種方式保持多樣性。

1

是很好的解釋由deong爲niching。所有這些技術都是爲了保持人口的多樣性。

那是什麼pareto前面呢。尋找Pareto前沿的GAs是多目標進化算法。他們嘗試不僅優化一個標準,而且優化兩個或更多個標準。 因此,帕累託陣線是所有個體都不是帕雷託主體的個體。 http://en.wikipedia.org/wiki/Pareto_efficiency

在短字: 個體的是Pareto前沿的構件,如果有在種羣是至少一樣好甲關於每比A標準和更好在至少一個標準沒有個體B中。