當前位置:首頁 » 操作系統 » 粒子計演算法

粒子計演算法

發布時間: 2022-07-22 23:32:12

1. 粒子群演算法屬於什麼學科

粒子群演算法屬於計算智能的范疇,如果按照學科分的話當然是計算機學科。
另外粒子群演算法是一種進化計算技術(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源於對鳥群捕食的行為研究 。
——————————————————————————
另外關於計算智能的相關介紹便可以了解
計算智能的主要方法有人工神經網路、遺傳演算法、遺傳程序、演化程序、局部搜索、模擬退火等等。這些方法具有以下共同的要素:自適應的結構、隨機產生的或指定的初始狀態、適應度的評測函數、修改結構的操作、系統狀態存儲器、終止計算的條件、指示結果的方法、控制過程的參數。計算智能的這些方法具有自學習、自組織、自適應的特徵和簡單、通用、魯棒性強、適於並行處理的優點。在並行搜索、聯想記憶、模式識別、知識自動獲取等方面得到了廣泛的應用。
典型的代表如遺傳演算法、免疫演算法、模擬退火演算法、蟻群演算法、微粒群演算法(也就是粒子群演算法,翻譯不同罷了),都是一種仿生演算法,基於「從大自然中獲取智慧」的理念,通過人們對自然界獨特規律的認知,提取出適合獲取知識的一套計算工具。總的來說,通過自適應學習的特性,這些演算法達到了全局優化的目的。

2. 粒子濾波演算法的具體流程是怎樣的

粒子濾波(PF: Particle Filter)演算法起源於20世紀50年代Poor Man's Monte Carlo問題的研究,但第一個具有應用性的粒子濾波演算法於1993年由Gordon等提出(「A novel Approach to nonlinear/non-Gaussian Bayesian State estimation」)。它是利用粒子集來表示概率,可以用在任何形式的狀態空間模型上。其核心思想是通過從後驗概率中抽取的隨機狀態粒子來表示其分布情況,是一種順序重要性采樣法(Sequential Importance Sampling)。

粒子濾波的應用非常廣泛,尤其是在目標跟蹤(「A probabilistic framework for matching temporal trajectories」)等視覺任務方面。粒子濾波演算法有許多不同的改進方式。針對不同的問題,PF演算法被改造以適應更好的問題。本文主要側重於目標跟蹤方面的應用。以人臉跟蹤為例,下圖展示了粒子濾波的跟蹤結果。下面介紹下粒子濾波的基本過程:初始化、概率轉移、權重重計算和重采樣四個階段。

1.初始化階段

跟蹤區域初始化。在使用粒子濾波演算法進行目標跟蹤前需要選擇要跟蹤的目標物體。這個過程可以用人工劃定方法和自動識別方法。使用人工的方法可以通過滑鼠在圖像區域標記出一個感興趣矩形;使用自動的方法就是利用自動的目標檢測技術,初步檢測出圖像中要跟蹤物體的大致位置。以人臉跟蹤為例,人工方法就是滑鼠劃定視頻第一幀中人臉的區域;自動方法就是可以使用人臉檢測演算法檢測出人臉的初始位置。

粒子初始化。對於本文人臉檢測的示例,粒子就是圖像中的矩形區域,主要由矩形中心(x,y)和寬高(w,h)四個變數表示。粒子初始化的步驟,就是在圖像中選擇指定數量的粒子(矩形),比如N=100個粒子。粒子初始化過程就是在圖像中隨機或指定方式放粒子。比如說,我們可以指定100個粒子初始狀態和跟蹤區域一致,即粒子參數和跟蹤區域的(x,y,w,h)相等。

2.狀態轉移階段

使用粒子濾波演算法來對目標進行跟蹤,即是通過前一次的先驗概率來估算出當前環境下的後驗概率密度,這個過程也是由粒子來完成的。具體來說,即根據上一幀中粒子的狀態(x,y,w,h)t-1,來估計出本幀中各個粒子的狀態(x,y,w,h)t。從上一幀圖像的粒子狀態轉變為當前幀粒子的狀態,這個變異過程就叫作轉移(transmission)。粒子濾波的轉移方程跟Kalman濾波的差不多:

上面的是狀態轉移方程,下面的為觀測方程,wk和vk是高斯雜訊。在本文示例中,xk=(x,y,w,h)t。變數x,y,w,h可以依據公式(1)分別更新。在不同的演算法中,f採用的函數也不相同。如果xk=xk-1+wk,則狀態轉移方程其實是隨機遊走過程;如果xk=Axk-1+wk,狀態轉移方程則為一階自回歸方程;如果xk=A1xk-1+A2xk-2+wk,則狀態轉移方程為二階自回歸方程。

3.權重重計算階段

轉移階段將上一幀中粒子的位置進行了轉移,得到當前幀中新的位置。但並不是所有粒子的作用都有用。也就是有些粒子並不是跟蹤區域所要所移動的位置。因此,在此階段,粒子濾波演算法將對每個粒子進行打分,將得分較低的粒子刪除,將得分多的粒子生成更多的粒子(重采樣過程完成)。具體打分的方法根據不同的需求會不同,例如人臉跟蹤方法中使用距離作為衡量的標准。將每個粒子與跟蹤區域進行相似度計算(在這里,分別提取粒子和跟蹤區域的視覺特徵進行計算,比如顏色直方圖),使用相似度作為相應粒子的權重。每一個粒子都需要計算其權重,並且需要將其歸一化。該階段其實也是後驗概率進行更新的過程。

4.重采樣階段

粒子濾波演算法會淘汰權值低的粒子,讓權值高的粒子來產生出更多的粒子,這就使得演算法朝著權值高的地方收斂。假設有100個粒子,1號粒子的權重為0.02而2號粒子的權重為0.003。於是在重采樣階段,1號粒子生孩子的指標是0.02×100=2,2號粒子的指標是0.003×100=0.3,可以發現,1號粒子除了剛產生的粒子外還要再額外的產生一個粒子,而2號粒子就被鏟除了。如此,最後得到的100個粒子即為所求,然後取個加權平均就得到了目標的狀態值。

3. 關於各種粒子的摩爾計算方法

質量m棲5705;爾質量M(g/mol)=物質的量n(mol)

4. 粒子群優化演算法和多模態優化演算法有什麼區別

摘 要:,粒子群演算法據自己的速度來決定搜索過程,只有最優的粒子把信息給予其他的粒子,整個搜索更新過程是跟隨當前最優解的過程,所有的粒子還可以更快的收斂於最優解。由於微粒群演算法簡單,容易實現,與其它求解約束優化問題的方法相比較,具有一定的優勢。實驗結果表明,對於無約束的非線性求解,粒子群演算法表現出較好的收斂性和健壯性。
關鍵詞:粒子群演算法;函數優化;極值尋優
0 引言
非線性方程的求根問題是多年來數學家努力解決的問題之一。長期以來,人們已找出多種用於解決方程求根的方法,例如牛頓法、弦割法、拋物線法等。然而,很多傳統的方法僅能運用於相應的小的問題集,推廣性相對較差。對於一個現實世界中的優化問題,必須嘗試很多不同的方法,甚至要發明相應的新的方法來解決,這顯然是不現實的。我們需要另外的方法來克服這樣的困難。
粒子群演算法是一種現代啟發式演算法,具有推廣性強、魯棒性高等特點[1]。該演算法具有群體智能、內在並行性、迭代格式簡單、可快速收斂到最優解所在區域等優點[2]。本文採用粒子群演算法,對函數的極值進行尋優計算,實現了對函數的極值求解。
1 粒子群演算法
1.1 基本原理
粒子群演算法(PSO)是一種基於群體的隨機優化技術,它的思想來源於對鳥群捕食行為的研究與模擬。粒子群演算法與其它基於群體的進化演算法相類似,選用「群體」和「進化」的概念,按照個體的適應度值進行操作,也是一種基於迭代的尋優技術。區別在於,粒子群演算法中沒有交叉變異等進化運算元,而是將每個個體看作搜索空間中的微粒,每個微粒沒有重量和體積,但都有自己的位置向量、速度向量和適應度值。所有微粒以一定的速度飛行於搜索空間中,其中的飛行速度是由個體飛行經驗和群體的飛行經驗動態調整,通過追蹤當前搜索到的最優值來尋找全局最優值。
1.2 參數選擇
粒子群演算法需要修改的參數很少,但對參數的選擇卻十分敏感。El-Gallad A, El-Hawary M, Sallam A, Kalas A[3]主要對演算法中的種群規模、迭代次數和粒子速度的選擇方法進行了詳細分析,利用統計方法對約束優化問題的求解論證了這 3 個參數對演算法性能的影響,並給出了具有一定通用性的3 個參數選擇原則[4]。
種群規模:通常根據待優化問題的復雜程度確定。
最大速度:決定粒子在一次迭代中的最大移動距離,通常設定為不超過粒子的范圍寬度。
加速常數:加速常數c1和c2通常是由經驗值決定的,它代表粒子向pbest和gbest靠攏的加速項的權重。一般取值為:c1=c2=2。
中止條件:達到最大迭代次數或得到最小誤差要求,通常要由具體問題確定。
慣性權重:慣性權重能夠針對待優化問題調整演算法的局部和全局搜索能力。當該值較大時有利於全局搜索,較小時有利於局部搜索。所以通常在演算法開始時設置較大的慣性權重,以便擴大搜索范圍、加快收斂。而隨著迭代次數的增加逐漸減小慣性權重的值,使其進行精確搜索,避免跳過最優解。
1.3 演算法步驟
PSO演算法步驟如下:
Step1:初始化一個規模為 m 的粒子群,設定初始位置和速度。
初始化過程如下:
(1)設定群體規模m;
(2)對任意的i,s,在[-xmax, xmax]內均勻分布,產生初始位置xis;
(3)對任意的i,s,在[-vmax, vmax]內均勻分布,產生速度vis;
(4)對任意的i,設yi=xi,保存個體。
Step2:計算每個粒子的適應度值。
Step3:對每個粒子的適應度值和得到過的最好位置pis的適應度值進行比較,若相對較好,則將其作為當前的最好位置。
Step4:對每個粒子的適應度值和全局得到過的最好位置pgs的適應度值進行比較,若相對較好,則將其作為當前的全局最好位置。
Step5:分別對粒子的所在位置和速度進行更新。
Step6:如果滿足終止條件,則輸出最優解;否則,返回Step2。
1.4 粒子群演算法函數極值求解
粒子群演算法優化是計算機智能領域,除蟻群演算法外的另一種基於群體智能的優化演算法。粒子群演算法是一種群體智能的煙花計算技術。與遺傳演算法相比,粒子群演算法沒有遺傳演算法的選擇(Selection)、交叉(Crossover)、變異(Mutation)等操作,而是通過粒子在解空間追隨最優的粒子進行搜索。
粒子群演算法流程如圖所示:

粒子群為由n個粒子組成的種群X = (X1,X2,X3,…Xn).
第i個粒子表示一個D維向量Xi = (X1,X2,X3,…XD)T.
第i個粒子的速度為Vi = (Vi1,Vi2,Vi3,…ViD)T.
個體極值為Pi = (Pi1,Pi2,Pi3,…PiD)T.
全局極值為Pg = (Pg1,Pg2,Pg3,…PgD)T.
速度更新為,式中,c1和c2為其兩個學習因子的參數值;r1和r2為其兩個隨機值。
位置更新為.
2 粒子群演算法應用舉例
2.1 實驗問題
這是一個無約束函數的極值尋優,對於Ackley函數,
.
其中c1=20,e=2. 71289。
2.2 實驗步驟
對於Ackley函數圖形,選取一個凹峰進行分析,程序運行結果如圖所示。

圖1 Ackley函數圖形
可以看出,選取區間內的Ackley函數圖形只有一個極小值點。因此,對於該段函數進行尋優,不會陷入局部最小。採用粒子群演算法對該函數進行極值尋優。
首先,進行初始化粒子群,編寫的MATLAB代碼如下:
% 初始化種群
for i=1:sizepop
x1 = popmin1 (popmax1-popmin1)*rand;
% 產生隨機個體
x2 = popmin2 (popmax2-popmin2)*rand;
pop(i,1) = x1; % 保存產生的隨機個體
pop(i,2) = x2;
fitness(i) = fun([x1,x2]); % 適應度值
V(i,1) = 0; % 初始化粒子速度
V(i,2) = 0;
end
程序運行後所產生的個體值為:
表1 函數個體值

然後,根據待尋優的目標函數,計算適應度值。待尋優的目標函數為:
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2x(2)^2)/2))-exp((cos(2*pi*x(1)) cos(2*pi*x(2)))/2) 20 2.71289;
根據每一組個體,通過目標函數,得到的適應度值為:

表2 函數適應度值

搜索個體最優極值,即搜索最小的適應度值,我們可利用MATLAB繪圖將所有個體的適應度值繪成plot圖查看相對最小值。

圖3 函數適應度plot圖
從圖中可看出,當個體=20時,得到相對最小值,在程序中,將其保存下來。
之後進行迭代尋優,直到滿足終止條件。
最後,得到的最優值為:

圖4 MATLAB運行得到結果
迭代後得到的運行結果圖如下:

圖5 迭代曲線圖
2.3 實驗結果
通過圖5中可看出,該函數的尋優是收斂的,最優個體和實際情況較吻合。因此,採用粒子群演算法進行函數極值尋優,快速、准確且魯棒性較好。
3 結論
本文闡述了粒子群演算法求解最化問題的過程,實驗結果表明了該演算法對於無約束問題的可行性。與其它的進化演算法相比,粒子群演算法容易理解、編碼簡單、容易實現。但是參數的設置對於該演算法的性能卻有很大的影響,例如控制收斂,避免早熟等。在未來的工作中,將努力於將其它計算智能演算法或其它優化技術應用於粒子群演算法中,以進一步提高粒子群演算法的性能。

5. 怎麼算粒子的直徑

將一定體積的粒子輕輕的滴在某種能使他浮在上面的液體上,計算出它的面積,根據V=SH,可求出該粒子群的直徑

6. 摩爾質量、物質的量、粒子數目的計算方法

摩爾質量在數值上就是等於物質的分子或原子質量。物質的量就用物質的質量除以該物質的摩爾質量。粒子數目就可以用阿伏伽德羅常數乘以該物質的物質的量。懂了么?

7. 粒子穿過兩個磁場怎麼求半徑

找到圓心,就可以用數學的方法來計算半徑的大小。
帶電粒子在磁場中運動的半徑計算方法。半徑本來是一個長度計算量,所以它的方法不外乎是數學方法,可以用三角函數、正弦定理、餘弦定理等數學方法來計算。但是,關鍵的問題就是要找到半徑,就是要找圓心。找圓心的方法,上課的時候老師曾經講過。兩條洛倫茲力線的交點就是找圓心的第一個方法。還有就是一條洛倫茲力的線與一條弦的垂直平分線的交點也可以找到圓心。也可以用對稱法找到圓心。既然可以找到圓心,就可以用數學的方法來計算半徑的大小。
粒子指能夠以自由狀態存在的最小物質組分。最早發現的粒子是原子、電子和質子,1932年又發現中子,確認原子由電子、質子和中子組成,它們比起原子來是更為基本的物質組分,於是稱之為基本粒子。以後這類粒子發現越來越多,累計已超過幾百種,且還有不斷增多的趨勢。此外這些粒子中有些粒子迄今的實驗尚未發現其有內部結構,有些粒子實驗顯示具有明顯的內部結構。看來這些粒子並不屬於同一層次,因此基本粒子一詞已成為歷史,如今統稱為粒子。粒子並不是像中子、質子等實際存在的具體的物質,而是它們的統稱,是一種模型理念。

熱點內容
壓縮段的作 發布:2025-01-20 07:04:13 瀏覽:378
安卓studio字體如何居中 發布:2025-01-20 07:04:13 瀏覽:151
edge瀏覽器無法訪問 發布:2025-01-20 06:52:57 瀏覽:330
c語言inline函數 發布:2025-01-20 06:45:43 瀏覽:747
安卓手機如何把鎖屏時間去掉 發布:2025-01-20 06:34:16 瀏覽:435
linux卸載jdk17 發布:2025-01-20 06:33:29 瀏覽:231
猿編程使用 發布:2025-01-20 06:17:58 瀏覽:453
編譯lichee 發布:2025-01-20 06:16:33 瀏覽:157
f5演算法 發布:2025-01-20 06:11:39 瀏覽:256
吃雞游戲伺服器被鎖怎麼辦 發布:2025-01-20 06:04:21 瀏覽:176