導航:首頁 > 源碼編譯 > 學粒子群演算法有什麼用

學粒子群演算法有什麼用

發布時間:2024-07-08 20:18:51

㈠ 離散粒子群優化演算法的背景和意義是什麼

定義粒子群優化演算法(Particle Swarm optimization,PSO)又翻譯為粒子群演算法、微粒群演算法、或微粒群優化演算法。是通過模擬鳥群覓食行為而發展起來的一種基於群體協作的隨機搜索演算法。通常認為它是群集智能 (Swarm intelligence, SI) 的一種。它可以被納入多主體優化系統 (Multiagent Optimization System, MAOS). 粒子群優化演算法是由Eberhart博士和kennedy博士發明。PSO模擬鳥群的捕食行為PSO模擬鳥群的捕食行為。一群鳥在隨機搜索食物,在這個區域里只有一塊食物。所有的鳥都不知道食物在那裡。但是他們知道當前的位置離食物還有多遠。那麼找到食物的最優策略是什麼呢。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。從模型中得到的啟示PSO從這種模型中得到啟示並用於解決優化問題。PSO中,每個優化問題的解都是搜索空間中的一隻鳥。我們稱之為「粒子」。所有的粒子都有一個由被優化的函數決定的適應值(fitnessvalue),每個粒子還有一個速度決定他們飛翔的方向和距離。然後粒子們就追隨當前的最優粒子在解空間中搜索。PSO初始化PSO初始化為一群隨機粒子(隨機解),然後通過疊代找到最優解,在每一次疊代中,粒子通過跟蹤兩個「極值」來更新自己。第一個就是粒子本身所找到的最優解,這個解叫做個體極值pBest,另一個極值是整個種群目前找到的最優解,這個極值是全局極值gBest。另外也可以不用整個種群而只是用其中一部分最優粒子的鄰居,那麼在所有鄰居中的極值就是局部極值。編輯本段演算法介紹在找到這兩個最優值時, 粒子根據如下的公式來更新自己的速度和新的位置v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)present[] = persent[] + v[] (b)v[] 是粒子的速度, persent[] 是當前粒子的位置. pbest[] and gbest[] 如前定義 rand () 是介於(0, 1)之間的隨機數. c1, c2 是學習因子. 通常 c1 = c2 = 2.程序的偽代碼如下For each particle____Initialize particleENDDo____For each particle________Calculate fitness value________If the fitness value is better than the best fitness value (pBest) in history____________set current value as the new pBest____End____Choose the particle with the best fitness value of all the particles as the gBest____For each particle________Calculate particle velocity according equation (a)________Update particle position according equation (b)____EndWhile maximum iterations or minimum error criteria is not attained在每一維粒子的速度都會被限制在一個最大速度Vmax,如果某一維更新後的速度超過用戶設定的Vmax,那麼這一維的速度就被限定為Vmax。編輯本段遺傳演算法和PSO的比較共同點①種群隨機初始化。②對種群內的每一個個體計算適應值(fitness value)。適應值與最優解的距離直接有關。③種群根據適應值進行復制 。④如果終止條件滿足的話,就停止,否則轉步驟② 。從以上步驟,我們可以看到PSO和遺傳演算法有很多共同之處。兩者都隨機初始化種群,而且都使用適應值來評價系統,而且都根據適應值來進行一定的隨機搜索。兩個系統都不是保證一定找到最優解。但是,PSO沒有遺傳操作如交叉(crossover)和變異(mutation),而是根據自己的速度來決定搜索。粒子還有一個重要的特點,就是有記憶。不同點與遺傳演算法比較,PSO的信息共享機制是很不同的。在遺傳演算法中,染色體(chromosomes)互相共享信息,所以整個種群的移動是比較均勻的向最優區域移動。在PSO中, 只有gBest (orlBest) 給出信息給其他的粒子, 這是單向的信息流動。整個搜索更新過程是跟隨當前最優解的過程。與遺傳演算法比較, 在大多數的情況下,所有的粒子可能更快的收斂於最優解。編輯本段人工神經網路和PSO定義人工神經網路(ANN)是模擬大腦分析過程的簡單數學模型,反向轉播演算法是最流行的神經網路訓練演算法。進來也有很多研究開始利用演化計算(evolutionary computation)技術來研究人工神經網路的各個方面。研究方面演化計算可以用來研究神經網路的三個方面:網路連接權重,網路結構(網路拓撲結構,傳遞函數),網路學習演算法。不過大多數這方面的工作都集中在網路連接權重,和網路拓撲結構上。在GA中,網路權重和/或拓撲結構一般編碼為染色體(Chromosome),適應函數(fitness function)的選擇一般根據研究目的確定。例如在分類問題中,錯誤分類的比率可以用來作為適應值優缺點演化計算的優勢在於可以處理一些傳統方法不能處理的例子例如不可導的節點傳遞函數或者沒有梯度信息存在。但是缺點在於:1、在某些問題上性能並不是特別好。2. 網路權重的編碼而且遺傳運算元的選擇有時比較麻煩。最近已經有一些利用PSO來代替反向傳播演算法來訓練神經網路的論文。研究表明PSO 是一種很有潛力的神經網路演算法。PSO速度比較快而且可以得到比較好的結果。而且還沒有遺傳演算法碰到的問題。舉例這里用一個簡單的例子說明PSO訓練神經網路的過程。這個例子使用分類問題的基準函數 (Benchmark function)IRIS數據集。(Iris 是一種鳶尾屬植物) 在數據記錄中,每組數據包含Iris花的四種屬性:萼片長度,萼片寬度,花瓣長度,和花瓣寬度,三種不同的花各有50組數據. 這樣總共有150組數據或模式。我們用3層的神經網路來做分類。現在有四個輸入和三個輸出。所以神經網路的輸入層有4個節點,輸出層有3個節點我們也可以動態調節隱含層節點的數目,不過這里我們假定隱含層有6個節點。我們也可以訓練神經網路中其他的參數。不過這里我們只是來確定網路權重。粒子就表示神經網路的一組權重,應該是4*6+6*3=42個參數。權重的范圍設定為[-100,100] (這只是一個例子,在實際情況中可能需要試驗調整).在完成編碼以後,我們需要確定適應函數。對於分類問題,我們把所有的數據送入神經網路,網路的權重有粒子的參數決定。然後記錄所有的錯誤分類的數目作為那個粒子的適應值。現在我們就利用PSO來訓練神經網路來獲得盡可能低的錯誤分類數目。PSO本身並沒有很多的參數需要調整。所以在實驗中只需要調整隱含層的節點數目和權重的范圍以取得較好的分類效果。

㈡ 粒子群演算法的優點

第一,演算法規則簡單,容易實現,在工程應用中比較廣;第二,收斂速度快,且有很多措施可以避免陷入局部最優;第三,可調參數少,並且對於參數的選擇已經有成熟的理論研究成果,見Eberhart的論文。

㈢ 粒子群演算法的優缺點

優點:PSO同遺傳演算法類似,是一種基於迭代的優化演算法。系統初始化為一組隨機解,通過迭代搜尋最優值。同遺傳演算法比較,PSO的優勢在於簡單容易實現,並且沒有許多參數需要調整。

缺點:在某些問題上性能並不是特別好。網路權重的編碼而且遺傳運算元的選擇有時比較麻煩。最近已經有一些利用PSO來代替反向傳播演算法來訓練神經網路的論文。

(3)學粒子群演算法有什麼用擴展閱讀:

注意事項:

基礎粒子群演算法步驟較為簡單。粒子群優化演算法是由一組粒子在搜索空間中運動,受其自身的最佳過去位置pbest和整個群或近鄰的最佳過去位置gbest的影響。

對於有些改進演算法,在速度更新公式最後一項會加入一個隨機項,來平衡收斂速度與避免早熟。並且根據位置更新公式的特點,粒子群演算法更適合求解連續優化問題。

㈣ 粒子群演算法

粒子群演算法(Particle Swarm Optimization),又稱鳥群覓食演算法,是由數學家J. Kennedy和R. C. Eberhart等開發出的一種新的進化演算法。它是從隨機解開始觸發,通過迭代尋找出其中的最優解。本演算法主要是通過適應度來評價解的分數,比傳統的遺傳演算法更加的簡單,它沒有傳統遺傳演算法中的「交叉」和「變異」等操作,它主要是追隨當前搜索到的最優值來尋找到全局最優值。這種演算法實現容易,精度高,收斂快等特點被廣泛運用在各個問題中。

粒子群演算法是模擬鳥群覓食的所建立起來的一種智能演算法,一開始所有的鳥都不知道食物在哪裡,它們通過找到離食物最近的鳥的周圍,再去尋找食物,這樣不斷的追蹤,大量的鳥都堆積在食物附近這樣找到食物的幾率就大大增加了。粒子群就是這樣一種模擬鳥群覓食的過程,粒子群把鳥看成一個個粒子,它們擁有兩個屬性——位置和速度,然後根據自己的這兩個屬性共享到整個集群中,其他粒子改變飛行方向去找到最近的區域,然後整個集群都聚集在最優解附近,最後最終找到最優解。

演算法中我們需要的數據結構,我們需要一個值來存儲每個粒子搜索到的最優解,用一個值來存儲整個群體在一次迭代中搜索到的最優解,這樣我們的粒子速度和位置的更新公式如下:

其中pbest是每個粒子搜索到的最優解,gbest是整個群體在一次迭代中搜索到的最優解,v[i]是代表第i個粒子的速度,w代表慣性系數是一個超參數,rang()表示的是在0到1的隨機數。Present[i]代表第i個粒子當前的位置。我們通過上面的公式不停的迭代粒子群的狀態,最終得到全局最優解

閱讀全文

與學粒子群演算法有什麼用相關的資料

熱點內容
程序員走了 瀏覽:272
linux設置時間伺服器 瀏覽:282
機械人焊接編程教學視頻 瀏覽:552
體重小本app怎麼樣 瀏覽:777
編程語言需求 瀏覽:935
當兵體重怎麼個演算法 瀏覽:169
加密的電腦文件帶出去怎麼打開 瀏覽:849
死循環會在編譯的時候出錯嗎 瀏覽:986
c51單片機特殊寄存器的原理 瀏覽:578
閃耀永恆特利加密鑰 瀏覽:762
如何誇程序員 瀏覽:781
天津期貨python招聘 瀏覽:267
單片機機器語言寫的程序 瀏覽:554
韓國直播軟體app叫什麼名 瀏覽:920
軍營訓練不聽教官的命令 瀏覽:263
v開頭的音樂播放器是什麼APP 瀏覽:122
單片機是怎麼做出來的 瀏覽:319
博圖怎麼作為opc伺服器 瀏覽:104
編譯做題軟體 瀏覽:298
橋梁檢測pdf 瀏覽:689