當前位置:首頁 » 操作系統 » 粒子群優化演算法的應用

粒子群優化演算法的應用

發布時間: 2024-06-02 20:09:30

❶ 粒子群優化演算法

         粒子群演算法 的思想源於對鳥/魚群捕食行為的研究,模擬鳥集群飛行覓食的行為,鳥之間通過集體的協作使群體達到最優目的,是一種基於Swarm Intelligence的優化方法。它沒有遺傳演算法的「交叉」(Crossover) 和「變異」(Mutation) 操作,它通過追隨當前搜索到的最優值來尋找全局最優。粒子群演算法與其他現代優化方法相比的一個明顯特色就是所 需要調整的參數很少、簡單易行 ,收斂速度快,已成為現代優化方法領域研究的熱點。

         設想這樣一個場景:一群鳥在隨機搜索食物。已知在這塊區域里只有一塊食物;所有的鳥都不知道食物在哪裡;但它們能感受到當前的位置離食物還有多遠。那麼找到食物的最優策略是什麼呢?

        1. 搜尋目前離食物最近的鳥的周圍區域

        2. 根據自己飛行的經驗判斷食物的所在。

        PSO正是從這種模型中得到了啟發,PSO的基礎是 信息的社會共享

        每個尋優的問題解都被想像成一隻鳥,稱為「粒子」。所有粒子都在一個D維空間進行搜索。

        所有的粒子都由一個fitness function 確定適應值以判斷目前的位置好壞。

        每一個粒子必須賦予記憶功能,能記住所搜尋到的最佳位置。

        每一個粒子還有一個速度以決定飛行的距離和方向。這個速度根據它本身的飛行經驗以及同伴的飛行經驗進行動態調整。

        粒子速度更新公式包含三部分: 第一部分為「慣性部分」,即對粒子先前速度的記憶;第二部分為「自我認知」部分,可理解為粒子i當前位置與自己最好位置之間的距離;第三部分為「社會經驗」部分,表示粒子間的信息共享與合作,可理解為粒子i當前位置與群體最好位置之間的距離。

        第1步   在初始化范圍內,對粒子群進行隨機初始化,包括隨機位置和速度

        第2步   根據fitness function,計算每個粒子的適應值

        第3步   對每個粒子,將其當前適應值與其個體歷史最佳位置(pbest)對應的適應值作比較,如果當前的適應值更高,則用當前位置更新粒子個體的歷史最優位置pbest

        第4步   對每個粒子,將其當前適應值與全局最佳位置(gbest)對應的適應值作比較,如果當前的適應值更高,則用當前位置更新粒子群體的歷史最優位置gbest

        第5步   更新粒子的速度和位置

        第6步   若未達到終止條件,則轉第2步

        【通常演算法達到最大迭代次數或者最佳適應度值得增量小於某個給定的閾值時演算法停止】

粒子群演算法流程圖如下:

以Ras函數(Rastrigin's Function)為目標函數,求其在x1,x2∈[-5,5]上的最小值。這個函數對模擬退火、進化計算等演算法具有很強的欺騙性,因為它有非常多的局部最小值點和局部最大值點,很容易使演算法陷入局部最優,而不能得到全局最優解。如下圖所示,該函數只在(0,0)處存在全局最小值0。

❷ 粒子群演算法

粒子群演算法(particle swarm optimization,PSO)是計算智能領域中的一種生物啟發式方法,屬於群體智能優化演算法的一種,常見的群體智能優化演算法主要有如下幾類:

除了上述幾種常見的群體智能演算法以外,還有一些並不是廣泛應用的群體智能演算法,比如螢火蟲演算法、布穀鳥演算法、蝙蝠演算法以及磷蝦群演算法等等。

而其中的粒子群優化演算法(PSO)源於對鳥類捕食行為的研究,鳥類捕食時,找到食物最簡單有限的策略就是搜尋當前距離食物最近的鳥的周圍。

設想這樣一個場景:一群鳥在隨機的搜索食物。在這個區域里只有一塊食物,所有的鳥都不知道食物在哪。但是它們知道自己當前的位置距離食物還有多遠。那麼找到食物的最優策略是什麼?最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。

Step1:確定一個粒子的運動狀態是利用位置和速度兩個參數描述的,因此初始化的也是這兩個參數;
Step2:每次搜尋的結果(函數值)即為粒子適應度,然後記錄每個粒子的個體歷史最優位置和群體的歷史最優位置;
Step3:個體歷史最優位置和群體的歷史最優位置相當於產生了兩個力,結合粒子本身的慣性共同影響粒子的運動狀態,由此來更新粒子的位置和速度。

位置和速度的初始化即在位置和速度限制內隨機生成一個N x d 的矩陣,而對於速度則不用考慮約束,一般直接在0~1內隨機生成一個50x1的數據矩陣。

此處的位置約束也可以理解為位置限制,而速度限制是保證粒子步長不超限制的,一般設置速度限制為[-1,1]。

粒子群的另一個特點就是記錄每個個體的歷史最優和種群的歷史最優,因此而二者對應的最優位置和最優值也需要初始化。其中每個個體的歷史最優位置可以先初始化為當前位置,而種群的歷史最優位置則可初始化為原點。對於最優值,如果求最大值則初始化為負無窮,相反地初始化為正無窮。

每次搜尋都需要將當前的適應度和最優解同歷史的記錄值進行對比,如果超過歷史最優值,則更新個體和種群的歷史最優位置和最優解。

速度和位置更新是粒子群演算法的核心,其原理表達式和更新方式:

每次更新完速度和位置都需要考慮速度和位置的限制,需要將其限制在規定范圍內,此處僅舉出一個常規方法,即將超約束的數據約束到邊界(當位置或者速度超出初始化限制時,將其拉回靠近的邊界處)。當然,你不用擔心他會停住不動,因為每個粒子還有慣性和其他兩個參數的影響。

粒子群演算法求平方和函數最小值,由於沒有特意指定函數自變數量綱,不進行數據歸一化。

❸ 粒子群演算法在任務調度中的應用

畢業論文(設計)題目: 粒子群演算法及其在任務調度中的應用
題目類型 理論研究 題目來源 教師科研題
畢業論文(設計)時間從 2008年2月24日至 2008年6月14日
1畢業論文(設計內容要求):
多處理機調度問題是指有n台相同的處理機和m個獨立的作業, 處理機以互不相關的方式處理作業,其中,任何作業可以在任何一台處理機上運行,但未完工前不允許中斷作業,作業也不能拆分成更小的作業,使n個作業在盡可能短的時間內由這m台相同的處理機完成。粒子群演算法是模擬鳥群覓食的過程,採用速度- 位置模型進行搜索。每個優化問題的解都是搜索空間的一隻鳥,稱為粒子,粒子群中的每個粒子通過追隨個體最優粒子和全局最優粒子進行搜索.
本課題要求學生查找資料,學習、理解、掌握遺傳演算法的基本思想,總結遺傳演算法的改進方法,選定一種粒子群演算法應用到多處理機調度問題並編程實現該演算法,對該演算法與首次最優匹配法在調度長度上進行實驗比較 。
通過本次畢業設計,學生懂得如何查找資料並對資料進行分析總結,培養科研與獨立分析問題的能力,掌握一門程序開發語言,培養程序開發技巧和能力。

❹ 粒子群演算法及應用的介紹

粒子群演算法是一種新的模仿鳥類群體行為的智能優化演算法,現已成為進化演算法的一個新的重要分支。全書共分為八章,分別論述了基本粒子群演算法和改進粒子群演算法的原理,並且詳細介紹了粒子群演算法在函數優化、圖像壓縮和基因聚類中的應用,最後給出了粒子群演算法的應用綜述和相關程序代碼。

❺ 粒子群演算法(一):粒子群演算法概述

  本系列文章主要針對粒子群演算法進行介紹和運用,並給出粒子群演算法的經典案例,從而進一步加深對粒子群演算法的了解與運用(預計在一周內完成本系列文章)。主要包括四個部分:

  粒子群演算法也稱粒子群優化演算法(Particle Swarm Optimization, PSO),屬於群體智能優化演算法,是近年來發展起來的一種新的進化演算法(Evolutionary Algorithm, EA)。 群體智能優化演算法主要模擬了昆蟲、獸群、鳥群和魚群的群集行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經驗和其他成員的經驗來不斷地改變搜索的方向。 群體智能優化演算法的突出特點就是利用了種群的群體智慧進行協同搜索,從而在解空間內找到最優解。
  PSO 演算法和模擬退火演算法相比,也是 從隨機解出發,通過迭代尋找最優解 。它是通過適應度來評價解的品質,但比遺傳演算法規則更為簡單,沒有遺傳演算法的「交叉」和「變異」,它通過追隨當前搜索到的最大適應度來尋找全局最優。這種演算法以其 容易實現、精度高、收斂快 等優點引起了學術界的重視,並在解決實際問題中展示了其優越性。

  在粒子群演算法中,每個優化問題的解被看作搜索空間的一隻鳥,即「粒子」。演算法開始時首先生成初始解,即在可行解空間中隨機初始化 粒子組成的種群 ,其中每個粒子所處的位置 ,都表示問題的一個解,並依據目標函數計算搜索新解。在每次迭代時,粒子將跟蹤兩個「極值」來更新自己, 一個是粒子本身搜索到的最好解 ,另一個是整個種群目前搜索到的最優解 。 此外每個粒子都有一個速度 ,當兩個最優解都找到後,每個粒子根據如下迭代式更新:

  其中參數 稱為是 PSO 的 慣性權重(inertia weight) ,它的取值介於[0,1]區間;參數 和 稱為是 學習因子(learn factor) ;而 和 為介於[0,1]之間的隨機概率值。
  實踐證明沒有絕對最優的參數,針對不同的問題選取合適的參數才能獲得更好的收斂速度和魯棒性,一般情況下 , 取 1.4961 ,而 採用 自適應的取值方法 ,即一開始令 , 使得 PSO 全局優化能力較強 ;隨著迭代的深入,遞減至 , 從而使得PSO具有較強的局部優化能力

  參數 之所以被稱之為慣性權重,是因為 實際 反映了粒子過去的運動狀態對當前行為的影響,就像是我們物理中提到的慣性。 如果 ,從前的運動狀態很少能影響當前的行為,粒子的速度會很快的改變;相反, 較大,雖然會有很大的搜索空間,但是粒子很難改變其運動方向,很難向較優位置收斂,由於演算法速度的因素,在實際運用中很少這樣設置。也就是說, 較高的 設置促進全局搜索,較低的 設置促進快速的局部搜索。

熱點內容
linux修改遠程埠 發布:2024-11-26 22:35:53 瀏覽:981
卡通農場伺服器怎麼連不上 發布:2024-11-26 22:26:54 瀏覽:194
馬嘉祺密碼1的答案是什麼 發布:2024-11-26 22:19:16 瀏覽:954
linux常用命令vi 發布:2024-11-26 22:17:40 瀏覽:4
sqlserver教材 發布:2024-11-26 22:07:21 瀏覽:632
安卓p圖工具哪個好 發布:2024-11-26 22:02:25 瀏覽:320
稅控盤密碼在哪裡改 發布:2024-11-26 21:55:54 瀏覽:611
美版安卓系統為什麼連不了網 發布:2024-11-26 21:51:36 瀏覽:613
用公司伺服器搭建網站 發布:2024-11-26 21:42:00 瀏覽:357
忘記密碼魅族手機如何清除數據 發布:2024-11-26 21:34:17 瀏覽:156