模型參數優化(二):粒子羣優化

1. 基本概念

       粒子羣優化,又稱微粒羣算法,來源於對—個簡化社會模型的模擬,主要用於求解優化問題。

       粒子羣優化算法是 Kennedy和 Eberhart受人工生命硏究結果的啓發,通過模擬鳥羣覓食過程中的遷徙和羣聚行爲而提出的一種基於羣體智能的全局隨機搜索算法。與遺傳算法一樣,它也是基於“種羣”和“進化”的概念,通過個體間的協作與競爭,實現複雜空間最優解的搜索。但是,粒子羣優化並不需要對個體進行選擇、交叉、變異等進化操作,而是將種羣中的個體看成是D維搜索空間中沒有質量和體積的粒子,每個粒子以一定的速度在解空間運動,並向粒子本身歷史最佳位置和種羣歷史最佳位置靠攏,以實現對候選解的進化。

       這種模型最開始來自於對鳥羣覓食的觀察。設想這樣一種場景:一羣鳥在隨機搜索食物,已知在這塊區域只有一塊食物,並且這些鳥都不知道食物在哪裏,但它們能感受到食物的位置離當前有多遠,那麼找到食物的最優策略是什麼呢?首先,搜索目前離食物最近的鳥的周圍區域;其次,根據自己飛行的經驗判斷食物的所在。粒子羣優化算法正是從這種模型中得到的啓發,

2. 實現步驟

算法的基本流程,主要分爲六步。

        第一步:初始化粒子羣,包括羣體規模,每個粒子的位置和速度,設置慣性權重、最大速度、加速度常數、最大迭代次數等初始值。

       第二步:設計適應度函數,並計算每個粒子的適應度值。

       第三步:對每個粒子,用它的適應度值和該粒子歷史最佳 pbest比較,如果前者大於後者,則更新pbest。

       第四步:對每粒子的 pbest,用它的最大值與種羣歷史最佳 gbest比較,如果前者大於後者,則更新 gbest

      第五步:根據更新公式,更新每粒子的速度和位置。

      第六步:如果滿足結束條件則退出,否則轉入第二步。

3. 代碼實現 

     補充。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章