粒子群演算法和遺傳演算法的比較
粒子群演算法(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問題、貨郎擔問題、工作車間排程等。
相關文章
- 進化演算法、遺傳演算法與粒子群演算法之間的比較演算法
- 遺傳演算法演算法
- 遺傳演算法 (轉)演算法
- 遺傳演算法的基本框架演算法框架
- 遺傳演算法(一):Basic GA演算法
- 遺傳演算法 (Genetic Algorithm)演算法Go
- 透過MATLAB分別對比二進位制編碼遺傳最佳化演算法和實數編碼遺傳最佳化演算法Matlab演算法
- 排序演算法效能比較排序演算法
- 人工智慧 (13) 遺傳演算法人工智慧演算法
- 10分鐘搞懂遺傳演算法演算法
- python遺傳演算法(詳解)Python演算法
- 演算法:比較含退格的字串演算法字串
- 初練演算法,比較演算法之美演算法
- 遺傳演算法詳解與實驗演算法
- 遺傳演算法解決TSP問題演算法
- 如何學習python遺傳演算法?Python演算法
- 遺傳演算法組卷使用心得演算法
- 遺傳演算法與C++實現演算法C++
- 遺傳演算法講解(Matlab描述)演算法Matlab
- 圖論中的常見演算法分析比較和模板圖論演算法
- 常用的比較排序演算法總結排序演算法
- 遺傳演算法庫DEAP的示例程式碼的學習和分析演算法
- python實現:目標優化演算法——遺傳演算法Python優化演算法
- 用遺傳演算法進行特徵選擇演算法特徵
- Unity中利用遺傳演算法訓練MLPUnity演算法
- 基於遺傳演算法的HFSS和C#聯合模擬(一)演算法C#
- 共識演算法的比較:Casper vs Tendermint演算法
- 排序(3)--各類排序演算法的比較排序演算法
- Java不同壓縮演算法的效能比較Java演算法
- 利用遺傳演算法庫DEAP優化交易策略演算法優化
- 使用MPI並行化遺傳演算法框架GAFT並行演算法框架
- 利用遺傳學演算法求解工作分配問題演算法
- 遺傳演算法求解TSP問題(python版)演算法Python
- 遺傳演算法解決旅行商問題(TSP)演算法
- Python遺傳演算法框架DEAP-Operators and AlgorithmsPython演算法框架Go
- 【智慧優化演算法】遺傳演算法的精英選擇策略、期望選擇策略優化演算法
- 智慧優化演算法——python實現免疫遺傳演算法的影像擬合優化演算法Python
- 遺傳演算法中適值函式的標定與大變異演算法演算法函式