国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
粒子群算法介紹(zt)- 長沙7喜 - 新浪BLOG

粒子群算法介紹

優(yōu)化問題是工業(yè)設(shè)計中經(jīng)常遇到的問題,許多問題最后都可以歸結(jié)為優(yōu)化問題. 為了解決各種各樣的優(yōu)化問題,人們提出了許多優(yōu)化算法,比較著名的有爬山法、遺傳算法等.優(yōu)化問題有兩個主要問題:一是要求尋找全局最小點,二是要求有較高的收斂速度. 爬山法精度較高,但是易于陷入局部極小. 遺傳算法屬于進化算法( Evolutionary Algorithms) 的一種,它通過模仿自然界的選擇與遺傳的機理來尋找最優(yōu)解. 遺傳算法有三個基本算子:選擇、交叉和變異. 但是遺傳算法的編程實現(xiàn)比較復(fù)雜,首先需要對問題進行編碼,找到最優(yōu)解之后還需要對問題進行解碼,另外三個算子的實現(xiàn)也有許多參數(shù),如交叉率和變異率,并且這些參數(shù)的選擇嚴重影響解的品質(zhì),而目前這些參數(shù)的選擇大部分是依靠經(jīng)驗.1995 年Eberhart 博士和kennedy 博士提出了一種新的算法;粒子群優(yōu)化(Partical Swarm Optimization -PSO) 算法 . 這種算法以其實現(xiàn)容易、精度高、收斂快等優(yōu)點引起了學(xué)術(shù)界的重視,并且在解決實際問題中展示了其優(yōu)越性.

粒子群優(yōu)化(Partical Swarm Optimization - PSO) 算法是近年來發(fā)展起來的一種新的進化算法( Evolu2tionary Algorithm - EA) .PSO 算法屬于進化算法的一種,和遺傳算法相似,它也是從隨機解出發(fā),通過迭代尋找最優(yōu)解,它也是通過適應(yīng)度來評價解的品質(zhì). 但是它比遺傳算法規(guī)則更為簡單,它沒有遺傳算法的“交叉”(Crossover) 和“變異”(Mutation) 操作. 它通過追隨當(dāng)前搜索到的最優(yōu)值來尋找全局最優(yōu) .

粒子群算法

1. 引言

粒子群優(yōu)化算法(PSO)是一種進化計算技術(shù)(evolutionary computation),有Eberhart博士和kennedy博士發(fā)明。源于對鳥群捕食的行為研究

PSO同遺傳算法類似,是一種基于疊代的優(yōu)化工具。系統(tǒng)初始化為一組隨機解,通過疊代搜尋最優(yōu)值。但是并沒有遺傳算法用的交叉(crossover)以及變異(mutation)。而是粒子在解空間追隨最優(yōu)的粒子進行搜索。詳細的步驟以后的章節(jié)介紹

同遺傳算法比較,PSO的優(yōu)勢在于簡單容易實現(xiàn)并且沒有許多參數(shù)需要調(diào)整。目前已廣泛應(yīng)用于函數(shù)優(yōu)化,神經(jīng)網(wǎng)絡(luò)訓(xùn)練,模糊系統(tǒng)控制以及其他遺傳算法的應(yīng)用領(lǐng)域

2. 背景: 人工生命

"人工生命"是來研究具有某些生命基本特征的人工系統(tǒng). 人工生命包括兩方面的內(nèi)容

1. 研究如何利用計算技術(shù)研究生物現(xiàn)象
2. 研究如何利用生物技術(shù)研究計算問題

我們現(xiàn)在關(guān)注的是第二部分的內(nèi)容. 現(xiàn)在已經(jīng)有很多源于生物現(xiàn)象的計算技巧. 例如, 人工神經(jīng)網(wǎng)絡(luò)是簡化的大腦模型. 遺傳算法是模擬基因進化過程的.

現(xiàn)在我們討論另一種生物系統(tǒng)- 社會系統(tǒng). 更確切的是, 在由簡單個體組成的群落與環(huán)境以及個體之間的互動行為. 也可稱做"群智能"(swarm intelligence). 這些模擬系統(tǒng)利用局部信息從而可能產(chǎn)生不可預(yù)測的群體行為

例如floys 和 boids, 他們都用來模擬魚群和鳥群的運動規(guī)律, 主要用于計算機視覺和計算機輔助設(shè)計.

在計算智能(computational intelligence)領(lǐng)域有兩種基于群智能的算法. 蟻群算法(ant colony optimization)和粒子群算法(particle swarm optimization). 前者是對螞蟻群落食物采集過程的模擬. 已經(jīng)成功運用在很多離散優(yōu)化問題上.

粒子群優(yōu)化算法(PSO) 也是起源對簡單社會系統(tǒng)的模擬. 最初設(shè)想是模擬鳥群覓食的過程. 但后來發(fā)現(xiàn)PSO是一種很好的優(yōu)化工具.

3. 算法介紹

如前所述,PSO模擬鳥群的捕食行為。設(shè)想這樣一個場景:一群鳥在隨機搜索食物。在這個區(qū)域里只有一塊食物。所有的鳥都不知道食物在那里。但是他們知道當(dāng)前的位置離食物還有多遠。那么找到食物的最優(yōu)策略是什么呢。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區(qū)域。

PSO從這種模型中得到啟示并用于解決優(yōu)化問題。PSO中,每個優(yōu)化問題的解都是搜索空間中的一只鳥。我們稱之為“粒子”。所有的例子都有一個由被優(yōu)化的函數(shù)決定的適應(yīng)值(fitness value),每個粒子還有一個速度決定他們飛翔的方向和距離。然后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索

PSO 初始化為一群隨機粒子(隨機解)。然后通過疊代找到最優(yōu)解。在每一次疊代中,粒子通過跟蹤兩個"極值"來更新自己。第一個就是粒子本身所找到的最優(yōu)解。這個解叫做個體極值pBest. 另一個極值是整個種群目前找到的最優(yōu)解。這個極值是全局極值gBest。另外也可以不用整個種群而只是用其中一部分最為粒子的鄰居,那么在所有鄰居中的極值就是局部極值。

在找到這兩個最優(yōu)值時, 粒子根據(jù)如下的公式來更新自己的速度和新的位置

v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)
present[] = persent[] + v[] (b)

v[] 是粒子的速度, persent[] 是當(dāng)前粒子的位置. pbest[] and gbest[] 如前定義 rand () 是介于(0, 1)之間的隨機數(shù). c1, c2 是學(xué)習(xí)因子. 通常 c1 = c2 = 2.

程序的偽代碼如下

For each particle
____Initialize particle
END

Do
____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)
____End
While maximum iterations or minimum error criteria is not attained

在每一維粒子的速度都會被限制在一個最大速度Vmax,如果某一維更新后的速度超過用戶設(shè)定的Vmax,那么這一維的速度就被限定為Vmax

4. 遺傳算法和 PSO 的比較

大多數(shù)演化計算技術(shù)都是用同樣的過程
1. 種群隨機初始化
2. 對種群內(nèi)的每一個個體計算適應(yīng)值(fitness value).適應(yīng)值與最優(yōu)解的距離直接有關(guān)
3. 種群根據(jù)適應(yīng)值進行復(fù)制
4. 如果終止條件滿足的話,就停止,否則轉(zhuǎn)步驟2

從以上步驟,我們可以看到PSO和GA有很多共同之處。兩者都隨機初始化種群,而且都使用適應(yīng)值來評價系統(tǒng),而且都根據(jù)適應(yīng)值來進行一定的隨機搜索。兩個系統(tǒng)都不是保證一定找到最優(yōu)解

但是,PSO 沒有遺傳操作如交叉(crossover)和變異(mutation). 而是根據(jù)自己的速度來決定搜索。粒子還有一個重要的特點,就是有記憶。

與遺傳算法比較, PSO 的信息共享機制是很不同的. 在遺傳算法中,染色體(chromosomes) 互相共享信息,所以整個種群的移動是比較均勻的向最優(yōu)區(qū)域移動. 在PSO中, 只有g(shù)Best (or lBest) 給出信息給其他的粒子,這是單向的信息流動. 整個搜索更新過程是跟隨當(dāng)前最優(yōu)解的過程. 與遺傳算法比較, 在大多數(shù)的情況下,所有的粒子可能更快的收斂于最優(yōu)解

5. 人工神經(jīng)網(wǎng)絡(luò) 和 PSO

人工神經(jīng)網(wǎng)絡(luò)(ANN)是模擬大腦分析過程的簡單數(shù)學(xué)模型,反向轉(zhuǎn)播算法是最流行的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。進來也有很多研究開始利用演化計算(evolutionary computation)技術(shù)來研究人工神經(jīng)網(wǎng)絡(luò)的各個方面。

演化計算可以用來研究神經(jīng)網(wǎng)絡(luò)的三個方面:網(wǎng)絡(luò)連接權(quán)重,網(wǎng)絡(luò)結(jié)構(gòu)(網(wǎng)絡(luò)拓撲結(jié)構(gòu),傳遞函數(shù)),網(wǎng)絡(luò)學(xué)習(xí)算法。

不過大多數(shù)這方面的工作都集中在網(wǎng)絡(luò)連接權(quán)重,和網(wǎng)絡(luò)拓撲結(jié)構(gòu)上。在GA中,網(wǎng)絡(luò)權(quán)重和/或拓撲結(jié)構(gòu)一般編碼為染色體(Chromosome),適應(yīng)函數(shù)(fitness function)的選擇一般根據(jù)研究目的確定。例如在分類問題中,錯誤分類的比率可以用來作為適應(yīng)值

演化計算的優(yōu)勢在于可以處理一些傳統(tǒng)方法不能處理的例子例如不可導(dǎo)的節(jié)點傳遞函數(shù)或者沒有梯度信息存在。但是缺點在于:在某些問題上性能并不是特別好。2. 網(wǎng)絡(luò)權(quán)重的編碼而且遺傳算子的選擇有時比較麻煩

最近已經(jīng)有一些利用PSO來代替反向傳播算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)的論文。研究表明PSO 是一種很有潛力的神經(jīng)網(wǎng)絡(luò)算法。PSO速度比較快而且可以得到比較好的結(jié)果。而且還沒有遺傳算法碰到的問題

這里用一個簡單的例子說明PSO訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程。這個例子使用分類問題的基準(zhǔn)函數(shù)(Benchmark function)IRIS數(shù)據(jù)集。(Iris 是一種鳶尾屬植物) 在數(shù)據(jù)記錄中,每組數(shù)據(jù)包含Iris花的四種屬性:萼片長度,萼片寬度,花瓣長度,和花瓣寬度,三種不同的花各有50組數(shù)據(jù). 這樣總共有150組數(shù)據(jù)或模式。

我們用3層的神經(jīng)網(wǎng)絡(luò)來做分類。現(xiàn)在有四個輸入和三個輸出。所以神經(jīng)網(wǎng)絡(luò)的輸入層有4個節(jié)點,輸出層有3個節(jié)點我們也可以動態(tài)調(diào)節(jié)隱含層節(jié)點的數(shù)目,不過這里我們假定隱含層有6個節(jié)點。我們也可以訓(xùn)練神經(jīng)網(wǎng)絡(luò)中其他的參數(shù)。不過這里我們只是來確定網(wǎng)絡(luò)權(quán)重。粒子就表示神經(jīng)網(wǎng)絡(luò)的一組權(quán)重,應(yīng)該是4*6+6*3=42個參數(shù)。權(quán)重的范圍設(shè)定為[-100,100] (這只是一個例子,在實際情況中可能需要試驗調(diào)整).在完成編碼以后,我們需要確定適應(yīng)函數(shù)。對于分類問題,我們把所有的數(shù)據(jù)送入神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)的權(quán)重有粒子的參數(shù)決定。然后記錄所有的錯誤分類的數(shù)目作為那個粒子的適應(yīng)值。現(xiàn)在我們就利用PSO來訓(xùn)練神經(jīng)網(wǎng)絡(luò)來獲得盡可能低的錯誤分類數(shù)目。PSO本身并沒有很多的參數(shù)需要調(diào)整。所以在實驗中只需要調(diào)整隱含層的節(jié)點數(shù)目和權(quán)重的范圍以取得較好的分類效果。

6. PSO的參數(shù)設(shè)置

從上面的例子我們可以看到應(yīng)用PSO解決優(yōu)化問題的過程中有兩個重要的步驟: 問題解的編碼和適應(yīng)度函數(shù)
PSO的一個優(yōu)勢就是采用實數(shù)編碼, 不需要像遺傳算法一樣是二進制編碼(或者采用針對實數(shù)的遺傳操作.例如對于問題 f(x) = x1^2 + x2^2+x3^2 求解, 粒子可以直接編碼為 (x1, x2, x3), 而適應(yīng)度函數(shù)就是f(x). 接著我們就可以利用前面的過程去尋優(yōu).這個尋優(yōu)過程是一個疊代過程, 中止條件一般為設(shè)置為達到最大循環(huán)數(shù)或者最小錯誤

PSO中并沒有許多需要調(diào)節(jié)的參數(shù),下面列出了這些參數(shù)以及經(jīng)驗設(shè)置

粒子數(shù): 一般取 20 – 40. 其實對于大部分的問題10個粒子已經(jīng)足夠可以取得好的結(jié)果, 不過對于比較難的問題或者特定類別的問題, 粒子數(shù)可以取到100 或 200

粒子的長度: 這是由優(yōu)化問題決定, 就是問題解的長度

粒子的范圍: 由優(yōu)化問題決定,每一維可是設(shè)定不同的范圍

Vmax: 最大速度,決定粒子在一個循環(huán)中最大的移動距離,通常設(shè)定為粒子的范圍寬度,例如上面的例子里,粒子 (x1, x2, x3) x1 屬于 [-10, 10], 那么 Vmax 的大小就是 20

學(xué)習(xí)因子: c1 和 c2 通常等于 2. 不過在文獻中也有其他的取值. 但是一般 c1 等于 c2 并且范圍在0和4之間

中止條件: 最大循環(huán)數(shù)以及最小錯誤要求. 例如, 在上面的神經(jīng)網(wǎng)絡(luò)訓(xùn)練例子中, 最小錯誤可以設(shè)定為1個錯誤分類, 最大循環(huán)設(shè)定為2000, 這個中止條件由具體的問題確定.

全局PSO和局部PSO: 我們介紹了兩種版本的粒子群優(yōu)化算法: 全局版和局部版. 前者速度快不過有時會陷入局部最優(yōu). 后者收斂速度慢一點不過很難陷入局部最優(yōu). 在實際應(yīng)用中, 可以先用全局PSO找到大致的結(jié)果,再有局部PSO進行搜索.

另外的一個參數(shù)是慣性權(quán)重, 由Shi 和Eberhart提出, 有興趣的可以參考他們1998年的論文(題目: A modified particle swarm optimizer)

7.PSO網(wǎng)上資源

粒子群優(yōu)化算法的研究還處于初期階段, 還有很多未知的領(lǐng)域需要研究, 例如關(guān)于粒子群理論的數(shù)學(xué)證明
不過網(wǎng)上已經(jīng)由了很多的關(guān)于粒子群的資源, 下面列出一些:

http://www.particleswarm.net 關(guān)于粒子群理論的各方面資源

http://icdweb.cc.purdue.edu/~hux/PSO.shtml 有一份比較全的文獻列表以及網(wǎng)上論文

http://www.researchindex.com/ 可以搜索到關(guān)于PSO的很多論文及文獻

參考文獻

http://www.engr.iupui.edu/~eberhart/
http://users.erols.com/cathyk/jimk.html
http://www.alife.org
http://www.aridolan.com
http://www.red3d.com/cwr/boids/
http://iridia.ulb.ac.be/~mdorigo/ACO/ACO.html
http://www.engr.iupui.edu/~shi/Coference/psopap4.html
Kennedy, J. and Eberhart, R. C. Particle swarm optimization. Proc. IEEE int‘l conf. on neural networks Vol. IV, pp. 1942-1948. IEEE service center, Piscataway, NJ, 1995.
Eberhart, R. C. and Kennedy, J. A new optimizer using particle swarm theory. Proceedings of the sixth international symposium on micro machine and human science pp. 39-43. IEEE service center, Piscataway, NJ, Nagoya, Japan, 1995.
Eberhart, R. C. and Shi, Y. Particle swarm optimization: developments, applications and resources. Proc. congress on evolutionary computation 2001 IEEE service center, Piscataway, NJ., Seoul, Korea., 2001.
Eberhart, R. C. and Shi, Y. Evolving artificial neural networks. Proc. 1998 Int‘l Conf. on neural networks and brain pp. PL5-PL13. Beijing, P. R. China, 1998.
Eberhart, R. C. and Shi, Y. Comparison between genetic algorithms and particle swarm optimization. Evolutionary programming vii: proc. 7th ann. conf. on evolutionary conf., Springer-Verlag, Berlin, San Diego, CA., 1998.
Shi, Y. and Eberhart, R. C. Parameter selection in particle swarm optimization. Evolutionary Programming VII: Proc. EP 98 pp. 591-600. Springer-Verlag, New York, 1998.
Shi, Y. and Eberhart, R. C. A modified particle swarm optimizer. Proceedings of the IEEE International Conference on Evolutionary Computation pp. 69-73. IEEE Press, Piscataway, NJ, 1998

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
粒子群算法
非對稱臥式液壓機機架優(yōu)化設(shè)計
Python基于粒子群優(yōu)化的投資組合優(yōu)化研究
人工智能算法綜述
粒子群優(yōu)化算法(PSO)介紹 | 大學(xué)
超簡潔的隨機粒子群算法(PSO)程序(C/C++)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服