粒子群演算法和遺傳演算法的比較

Sampson Clarence發表於2018-11-22

粒子群演算法(PSO)和遺傳演算法(GA)都是優化演算法,都力圖在自然特性的基礎上模擬個體種群的適應性,它們都採用一定的變換規則通過搜尋空間求解。  

 

PSO和GA的相同點: 

 (1)都屬於仿生演算法。PSO主要模擬鳥類覓食、人類認知等社會行為而提出;GA主要借用生物進化中“適者生存”的規律。 
 (2)都屬於全域性優化方法。兩種演算法都是在解空間隨機產生初始種群,因而演算法在全域性的解空間進行搜尋,且將搜尋重點集中在效能高的部分。 
 (3)都屬於隨機搜尋演算法。都是通過隨機優化方法更新種群和搜尋最優點。PSO中認知項和社會項前都加有隨機數;而GA的遺傳操作均屬隨機操作。  (4)都隱含並行性。搜尋過程是從問題解的一個集合開始的,而不是從單個個體開始,具有隱含並行搜尋特性,從而減小了陷入區域性極小的可能性。並且由於這種並行性,易在平行計算機上實現,以提高演算法效能和效率。 
 (5)根據個體的適配資訊進行搜尋,因此不受函式約束條件的限制,如連續性、可導性等。 

 (6)對高維複雜問題,往往會遇到早熟收斂和收斂效能差的缺點,都無法保證收斂到最優點。 

 

 PSO和GA不同點 

 (1)PSO有記憶,好的解的知識所有粒子都儲存,而GA沒有記憶,以前的知識隨著種群的改變被破壞。 
 (2)在GA演算法中,染色體之間相互共享資訊,所以整個種群的移動是比較均勻地向最優區域移動。PSO中的粒子僅僅通過當前搜尋到最優點進行共享資訊,所以很大程度上這是一種單項資訊共享機制,整個搜尋更新過程是跟隨當前最優解的過程。在大多數情況下,所有粒子可能比遺傳演算法中的進化個體以更快速度收斂於最優解。 
 (3)GA的編碼技術和遺傳操作比較簡單,而PSO相對於GA,不需要編碼,沒有交叉和變異操作,粒子只是通過內部速度進行更新,因此原理更簡單、引數更少、實現更容易。 
 (4)在收斂性方面,GA己經有了較成熟的收斂性分析方法,並且可對收斂速度進行估計;而PSO這方面的研究還比較薄弱。儘管已經有簡化確定性版本的收斂性分析,但將確定性向隨機性的轉化尚需進一步研究。 
 (5)在應用方面,PSO演算法主要應用於連續問題,包括神經網路訓練和函式優化等,而GA除了連續問題之外,還可應用於離散問題,比如TSP問題、貨郎擔問題、工作車間排程等。

相關文章