粒子群算法怎么用_niuyongjie的專欄
本文關(guān)鍵詞:粒子群算法,由筆耕文化傳播整理發(fā)布。
標(biāo)準(zhǔn)的粒子群算法
在上一節(jié)的敘述中,唯一沒有給大家介紹的就是函數(shù)的這些隨機(jī)的點(diǎn)(粒子)是如何運(yùn)動(dòng)的,只是說(shuō)按照一定的公式更新。這個(gè)公式就是粒子群算法中的位置速度更新公式。下面就介紹這個(gè)公式是什么。在上一節(jié)中我們求取函數(shù)y=1-cos(3*x)*exp(-x)的在[0,4]最大值。并在[0,4]之間放置了兩個(gè)隨機(jī)的點(diǎn),這些點(diǎn)的坐標(biāo)假設(shè)為x1=1.5; x2=2.5;這里的點(diǎn)是一個(gè)標(biāo)量,但是我們經(jīng)常遇到的問題可能是更一般的情況--x為一個(gè)矢量的情況,比如二維的情況 z=2*x1+3*x22的情況。這個(gè)時(shí)候我們的每個(gè)粒子為二維,記粒子P1=(x11,x12),P2=(x21,x22),P3=(x31,x32),......Pn=(xn1,xn2)。這里n為粒子群群體的規(guī)模,也就是這個(gè)群中粒子的個(gè)數(shù),,每個(gè)粒子的維數(shù)為2。更一般的是粒子的維數(shù)為q,這樣在這個(gè)種群中有n個(gè)粒子,每個(gè)粒子為q 維。
由n個(gè)粒子組成的群體對(duì)Q維(就是每個(gè)粒子的維數(shù))空間進(jìn)行搜索。每個(gè)粒子表示為:xi=(xi1,xi2,xi3,...,xiQ),每個(gè)粒子對(duì)應(yīng)的速度可以表示為vi=(vi1,vi2,vi3,....,viQ),每個(gè)粒子在搜索時(shí)要考慮兩個(gè)因素:
1。自己搜索到的歷史最優(yōu)值 pi ,pi=(pi1,pi2,....,piQ),i=1,2,3,....,n。
2。全部粒子搜索到的最優(yōu)值pg,pg=(pg1,pg2,....,pgQ),注意這里的pg只有一個(gè)。
下面給出粒子群算法的位置速度更新公式:
這里有幾個(gè)重要的參數(shù)需要大家記憶,因?yàn)樵谝院蟮闹v解中將會(huì)經(jīng)常用到:
它們是:
這樣一個(gè)標(biāo)準(zhǔn)的粒子群算法就結(jié)束了。
下面對(duì)整個(gè)基本的粒子群的過(guò)程給一個(gè)簡(jiǎn)單的圖形表示:
判斷終止條件可是設(shè)置適應(yīng)值到達(dá)一定的數(shù)值或者循環(huán)一定的次數(shù)。
注意:這里的粒子是同時(shí)跟蹤自己的歷史最優(yōu)值與全局(群體)最優(yōu)值來(lái)改變自己的位置預(yù)速度的,所以又叫做全局版本的標(biāo)準(zhǔn)粒子群優(yōu)化算法。
本文關(guān)鍵詞:粒子群算法,由筆耕文化傳播整理發(fā)布。
本文編號(hào):120486
本文鏈接:http://sikaile.net/jianzhugongchenglunwen/120486.html