有效實施



遺傳演算法的本質非常通用,直接將其應用於任何最佳化問題並不能獲得良好的結果。在本節中,我們將介紹一些可以幫助和指導遺傳演算法設計者或實施者工作的要點。

引入問題特定領域知識

人們觀察到,我們越是在遺傳演算法中融入問題特定的領域知識,獲得的目標值就越好。可以透過使用問題特定的交叉或變異運算元、自定義表示等方式新增問題特定資訊。

下圖顯示了 Michalewicz (1990) 對進化演算法的觀點:

Effective Implementation

減少擁擠

當高度適應的染色體大量繁殖時,就會發生擁擠現象,並且在幾代之後,整個種群就會充滿具有相似適應度的相似解決方案。這減少了多樣性,而多樣性是確保遺傳演算法成功的關鍵因素。有很多方法可以限制擁擠。其中一些是:

  • 變異以引入多樣性。

  • 切換到等級選擇錦標賽選擇,它們比適應度比例選擇對具有相似適應度的個體具有更大的選擇壓力。

  • 適應度共享 - 在此,如果種群中已經存在相似的個體,則個體的適應度會降低。

隨機化有幫助!

實驗觀察表明,最佳解決方案是由隨機染色體驅動的,因為它們為種群帶來了多樣性。遺傳演算法實施者應注意在種群中保持足夠的隨機性和多樣性,以獲得最佳結果。

將遺傳演算法與區域性搜尋混合

區域性搜尋是指檢查給定解決方案鄰域中的解決方案以尋找更好的目標值。

有時將遺傳演算法與區域性搜尋混合起來可能很有用。下圖顯示了可以在遺傳演算法中引入區域性搜尋的各個位置。

Hybridize GA

引數和技術的變異

在遺傳演算法中,沒有“一刀切”或適用於所有問題的萬能公式。即使在初始遺傳演算法準備就緒後,也需要花費大量時間和精力來調整引數(如種群大小、變異和交叉機率等),以找到適合特定問題的引數。

廣告