粒子群优化算法及其应用
產生背景
粒子群優化(Particle Swarm Optimization, PSO)算法是由美國普渡大學的Kennedy和Eberhart于1995年提出,它的基本概念源于對鳥群覓食行為的研究。
設想這樣一個場景:
一群鳥在隨機搜尋食物,在這個區域里只有一塊食物,所有的鳥都不知道食物在哪里,但是它們知道當前的位置離食物還有多遠。那么找到食物的最優策略是什么呢?
最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。
粒子群優化算法的基本原理
基本思想
將每個個體看作n維搜索空間中一個沒有體積質量的粒子,在搜索空間中以一定的速度飛行,該速度決定粒子飛行的方向和距離。所有粒子有一個由優化函數決定的適應值。
基本原理
PSO初始化為一群隨機粒子,然后通過迭代找到最優解。在每一次迭代中,粒子通過跟蹤兩個“極值”來更新自己。第一個就是粒子本身所找到的最優解,這個解稱為個體極值。另個一是整個種群目前找到的最優解,這個解稱為全局極值。
算法定義
在n 維連續搜索空間中,對粒子群中的第i (i=1, 2, ?, m)個粒子進行定義:
第1部分是粒子在前一時刻的速度;
第2部分為個體“認知”分量,表示粒子本身的思考,將現有的位置和曾經經歷過的最優位置相比。
第3部分是群體“社會(social)”分量,表示粒子間的信息共享與相互合作。
分別控制個體認知分量和群體社會分量相對貢獻的學習率。
隨機系數增加搜索方向的隨機性和算法多樣性。
基于學習率
Kennedy給出以下4種類型的PSO模型:
粒子群優化算法的流程:
(1)初始化每個粒子。在允許范圍內隨機設置每個粒子的初始位置和速度。
(2)評價每個粒子的適應度。計算每個粒子的目標函數。
(3)設置每個粒子的Pi。對每個粒子,將其適應度與其經 歷過的最好位置Pi進行比較,如果優于Pi,則將其作為該粒子的最好位置Pi。
(4)設置全局最優值Pg。對每個粒子,將其適應度與群體經歷過的最好位置Pg進行比較,如果優于Pg,則將其作為當前群體的最好位置Pg。
(5)更新粒子的速度和位置。根據式(6.20)更新粒子的速度和位置。
(6)檢查終止條件。如果未達到設定條件(預設誤差或者迭代的次數),則返回第(2)步。
粒子群優化算法流程圖
粒子群優化算法的參數分析
PSO算法的參數
最大速度Vmax
權重因子
位置更新方程中各部分的影響
參數設置
粒子群優化算法應用領域
粒子群優化算法已在諸多領域得到應用,歸納如下:
(1)神經網絡訓練 (7)經濟領域
(2)化工系統領域 (8)圖像處理領域
(3)電力系統領域 (9)生物信息領域
(4)機械設計領域 (10)醫學領域
(5)通訊領域 (11)運籌學領域
(6)機器人領域 ………….
粒子群優化算法求解車輛路徑問題
車輛路徑問題(VRP)的模型
編碼與初始種群
實驗結果
粒子群優化算法的各個參數設置如下:
種群規模:50
迭代次數:1000
c1的初始值為1,隨迭代的進行,線性減小到0
C2=c3=1.4
Vmax<1000
優化結果及其與遺傳算法的比較如表所示。
歡迎大家加我微信交流討論(請備注csdn上添加)
總結
以上是生活随笔為你收集整理的粒子群优化算法及其应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web下的整体测试
- 下一篇: 编址与存储相关计算(一)——软考之路