粒子群算法(PSO)算法解析(簡略版)


粒子群算法(PSO)

1.粒子群算法(PSO)是一種基於群體的隨機優化技術; 初始化為一組隨機解,通過迭代搜尋最優解。

     PSO算法流程如圖所示(此圖是從PPT做好,復制過來的,有些模糊)

 

2.PSO模擬社會的三條規則:

①飛離最近的個體,以避免碰撞

②飛向目標(認知行為)——Pbest

③飛向群體的中心(社會行為)——Gbest

 

3.迭代公式:

 

舉一個粒子。。。在一維中,利用MATLAB中自帶的函數求極值

      

 

                                                                 搜索起始點位置

注:fmincon(有約束的非線性最小化) fminbnd(有邊界的標量非線性最小化) GlobalSearch(全局搜索)

左圖為用fminbnd函數求解情況;右圖為用GlobalSearch 在[0,20]內求解情況。

由右圖所示結果可以看出,采用fmincon進行有約束的非線性最小化求解,容易進入局部最優解;fminbnd在進行非線性最小化求解也容易掉進局部最優,導致在非連續函數下,使得求解結果不收斂。GlobalSearch在[0,20]內進行非線性最小化求解能夠很精確地尋最優值。

 但是由於基本的粒子群算法不滿足        因此它不是全局收斂。

                                       

對於一些較為復雜的二維,高維函數,它們具有廣泛的搜索空間,也存在很多局部最優解(極小值點),因此我們用PSO算法較難找到全局最優值。

因此,我們需要對基本粒子群算法進行改進, 以達到更快的收斂速度及盡量跳出局部最優的陷阱, 從而達到全局最優。(圖見上面可知)

PSO算法是一種很基礎的全局搜索算法,可以很好的達到搜索最小值的效果;但是由於算法原理的一些缺陷,也存在一些問題,對PSO算法的改進方法,在下次博客中再分享。

謝謝大家!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM