粒子群演算法4——粒子群演算法與蟻群演算法的異同點
1.相同點
(1)都是一類不確定演算法。不確定性體現了自然界生物的生物機制,並且在求解某些特定問題方面優於確定性演算法。仿生優化演算法的不確定性是伴隨其隨機性而來的,其主要步驟含有隨機因素,從而在演算法的迭代過程中,事件發生與否有很大的不確定性。
(2)都是一類概率型的全域性優化演算法。非確定演算法的優點在於演算法能有更多機會求解全域性最優解。
(3)都不依賴於優化問題本身的嚴格數學性質。在優化過程中都不依賴於優化問題本身嚴格數學性質(如連續性,可導性)以及目標函式和約束條件精確的數學描述。
(4)都是一種基於多個智慧體的仿生優化演算法。仿生優化演算法中的各個智慧體之間通過相互協作來更好的適應環境,表現出與環境互動的能力。
(5)都具有本質並行性。仿生優化演算法的本質並行性表現在兩個方面:仿生優化計算的內在並行性(inherent parallelism )和內含並行性(implicit parallelism ),這使得仿生優化演算法能以較少的計算獲得較大的收益。
(6)都具有突出性。仿生優化演算法總目標的完成是在多個智慧體個體行為的運動過程中突現出來的。
(7)都具有自組織和進化性。具有記憶功能,所有粒子都儲存優解的相關知識。在不確定的複雜時代環境中,仿生優化演算法可以通過自學習不斷提高演算法中個體的適應性。
(8)都具有穩健性。仿生優化演算法的穩健性是指在不同條件和環境下演算法的實用性和有效性。由於仿生優化演算法不依賴於優化問題本身嚴格數學性質和所求問題本身的結構特徵,因此用仿生優化演算法求解不同問題時,只需要設計相應的評價函式(代價函式),而基本上無需修改演算法的其他部分。但是對高維問題複雜問題,往往會遇到早熟收斂和收斂效能差的缺點,都無法保證收斂到最優點。
~~~~~~~~~~~~~~~~~
這是一條奇怪的分割線~~~~~~~~~~~~~~~~~~~~~~~~
進入正題~~區別!!!!!
2.不同點
(1)粒子群演算法。粒子群演算法是一種原理相當簡單的啟發式演算法,與其他仿生演算法相比,它所需的程式碼和引數較少。
粒子群演算法通過當前搜尋到的最優點進行共享資訊,很大程度上這是一種單項資訊共享機制。
粒子群演算法受所求問題維數的影響較小。
粒子群演算法的數學基礎相對較為薄弱,目前還缺乏深刻且具有普遍意義的理論分析。在對收斂性分析方面研究還需進一步將確定性向隨機性轉化。
(2)蟻群演算法。蟻群演算法採用了正反饋機制,這是不同於其他仿生演算法最為顯著的一個特點。
蟻群演算法中那個個體只能感知區域性資訊,不能直接利用全域性資訊。
基本蟻群演算法一般需要較長的搜尋時間,且容易出現停滯現象。
蟻群演算法的收斂效能對初始化引數的設定較為敏感。
蟻群演算法已經有了較成熟的收斂性分析方法,並且可對收斂速度進行估計。