粒子群優化演算法
1. 概念
粒子群優化演算法(pso) 是一種進化計算技術。
源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想:是通過群體中個體之間的協作和資訊共享來尋找最優解.
pso的優勢:在於簡單容易實現並且沒有許多引數的調節。目前已被廣泛應用於函式優化、神經網路訓練、模糊系統控制以及其他遺傳演算法的應用領域。
2. 演算法2.1 問題抽象
鳥被抽象為沒有質量和體積的微粒(點),並延伸到n維空間,粒子i在n維空間的位置表示為向量xi=(x1,x2,…,xn),飛行速度表示為向量vi=(v1,v2,…,vn)。每個粒子都有乙個由目標函式決定的適應值(fitness value),並且知道自己到目前為止發現的最好位置(pbest)和現在的位置xi。這個可以看作是粒子自己的飛行經驗。除此之外,每個粒子還知道到目前為止整個群體中所有粒子發現的最好位置(gbest)(gbest是pbest中的最好值),這個可以看作是粒子同伴的經驗。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。
2.2 更新規則
pso初始化為一群隨機粒子(隨機解)。然後通過迭代找到最優解。在每一次的迭代中,粒子通過跟蹤兩個「極值」(pbest,gbest)來更新自己。在找到這兩個最優值後,粒子通過下面的公式來更新自己的速度和位置。
公式(1)的第一部分稱為【記憶項】,表示上次速度大小和方向的影響;公式(1)的第二部分稱為【自身認知項】,是從當前點指向粒子自身最好點的乙個向量,表示粒子的動作**於自己經驗的部分;公式(1)的第三部分稱為【群體認知項】,是乙個從當前點指向種群最好點的向量,反映了粒子間的協同合作和知識共享。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。
以上面兩個公式為基礎,形成了pso的標準形式。
![在這裡插入描述](
公式(2)和 公式(3)被視為標準pso演算法。
2.3 標準pso演算法流程標準pso演算法的流程:
1)初始化一群微粒(群體規模為n),包括隨機位置和速度;
2)評價每個微粒的適應度;
3)對每個微粒,將其適應值與其經過的最好位置pbest作比較,如果較好,則將其作為當前的最好位置pbest;
4)對每個微粒,將其適應值與其經過的最好位置gbest作比較,如果較好,則將其作為當前的最好位置gbest;
5)根據公式(2)、(3)調整微粒速度和位置;
6)未達到結束條件則轉第2)步。
迭代終止條件根據具體問題一般選為最大迭代次數gk或(和)微粒群迄今為止搜尋到的最優位置滿足預定最小適應閾值。
公式(2)和(3)中pbest和gbest分別表示微粒群的區域性和全域性最優位置。
當c1=0時,則粒子沒有了認知能力,變為只有社會的模型(social-only):
被稱為全域性pso演算法。粒子有擴充套件搜尋空間的能力,具有較快的收斂速度,但由於缺少區域性搜尋,對於複雜問題
比標準pso 更易陷入區域性最優。
當c2=0時,則粒子之間沒有社會資訊,模型變為只有認知(cognition-only)模型:
被稱為區域性pso演算法。由於個體之間沒有資訊的交流,整個群體相當於多個粒子進行盲目的隨機搜尋,收斂速度慢,因而得到最優解的可能性小。
2.4 引數分析
引數:群體規模n,慣性因子 ,學習因子c1和c2,最大速度vmax,最大迭代次數gk。
群體規模n:一般取20~40,對較難或特定類別的問題可以取到100~200。
最大速度vmax:決定當前位置與最好位置之間的區域的解析度(或精度)。如果太快,則粒子有可能越過極小點;如果太慢,則粒子不能在區域性極小點之外進行足夠的探索,會陷入到區域性極值區域內。這種限制可以達到防止計算溢位、決定問題空間搜尋的粒度的目的。
權重因子:包括慣性因子和學習因子c1和c2。使粒子保持著運動慣性,使其具有擴充套件搜尋空間的趨勢,有能力探索新的區域。c1和c2代表將每個粒子推向pbest和gbest位置的統計加速項的權值。較低的值允許粒子在被拉回之前可以在目標區域外徘徊,較高的值導致粒子突然地衝向或越過目標區域。
引數設定:
1) 如果令c1=c2=0,粒子將一直以當前速度的飛行,直到邊界。很難找到最優解。
2) 如果=0,則速度只取決於當前位置和歷史最好位置,速度本身沒有記憶性。假設乙個粒子處在全域性最好位置,它將保持靜止,其他粒子則飛向它的最好位置和全域性最好位置的加權中心。粒子將收縮到當前全域性最好位置。在加上第一部分後,粒子有擴充套件搜尋空間的趨勢,這也使得的作用表現為針對不同的搜尋問題,調整演算法的全域性和區域性搜尋能力的平衡。較大時,具有較強的全域性搜尋能力;較小時,具有較強的區域性搜尋能力。
3) 通常設c1=c2=2。suganthan的實驗表明:c1和c2為常數時可以得到較好的解,但不一定必須等於2。clerc引入收斂因子(constriction factor) k來保證收斂性。
通常取為4.1,則k=0.729.實驗表明,與使用慣性權重的pso演算法相比,使用收斂因子的pso有更快的收斂速度。其實只要恰當的選取和c1、c2,兩種演算法是一樣的。因此使用收斂因子的pso可以看作使用慣性權重pso的特例。
原文:
粒子群優化演算法 粒子群演算法
粒子群演算法 particle swarm optimization,pso 屬於進化演算法的一種,該演算法最初是受到飛鳥集群活動的規律性啟發,進而利用群體智慧型建立的乙個簡化模型。粒子群演算法在對動物集群活動行為觀察基礎上,利用群體中的個體對資訊的共享使整個群體的運動在問題求解空間中產生從無序到有...
粒子群優化演算法
與ga演算法比較 粒子群優化 clc,clear all x 0 0.01 4 y hanshu x figure plot x,y hold on w 1 慣性因子 c1 2 c2 2 maxgen 30 迭代次數 sizepop 5 粒子個數 vmax 1 vmin 1 速度限制 popmax ...
粒子群優化演算法思考
一 粒子群演算法和真正模型的區別 粒子群優化演算法是根據飛鳥覓食的模型設計的演算法,模型和真正的飛鳥覓食的過程有一些不同之處。1 離散和連續的不同 飛鳥飛行的過程中是進行連續的飛行,路途中的所有 線 組成了可覓食的位置 模型中的粒子的運動是離散的,是由 點 所組成的可覓食位置。如果在模型中的粒子速度...