粒子群優(yōu)化算法介紹及matlab程序

粒子群優(yōu)化算法介紹及matlab程序

ID:9085206

大?。?65.00 KB

頁(yè)數(shù):18頁(yè)

時(shí)間:2018-04-17

粒子群優(yōu)化算法介紹及matlab程序_第1頁(yè)
粒子群優(yōu)化算法介紹及matlab程序_第2頁(yè)
粒子群優(yōu)化算法介紹及matlab程序_第3頁(yè)
粒子群優(yōu)化算法介紹及matlab程序_第4頁(yè)
粒子群優(yōu)化算法介紹及matlab程序_第5頁(yè)
資源描述:

《粒子群優(yōu)化算法介紹及matlab程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、粒子群優(yōu)化算法(1)—粒子群優(yōu)化算法簡(jiǎn)介PSO算法就是模擬一群鳥尋找食物的過(guò)程,每個(gè)鳥就是PSO中的粒子,也就是我們需要求解問(wèn)題的可能解,這些鳥在尋找食物的過(guò)程中,不停改變自己在空中飛行的位置與速度。大家也可以觀察一下,鳥群在尋找食物的過(guò)程中,開始鳥群比較分散,逐漸這些鳥就會(huì)聚成一群,這個(gè)群忽高忽低、忽左忽右,直到最后找到食物。這個(gè)過(guò)程我們轉(zhuǎn)化為一個(gè)數(shù)學(xué)問(wèn)題。尋找函數(shù)y=1-cos(3*x)*exp(-x)的在[0,4]最大值。該函數(shù)的圖形如下:當(dāng)x=0.9350-0.9450,達(dá)到最大值y=1.3706。為了得到該函數(shù)的最

2、大值,我們?cè)赱0,4]之間隨機(jī)的灑一些點(diǎn),為了演示,我們放置兩個(gè)點(diǎn),并且計(jì)算這兩個(gè)點(diǎn)的函數(shù)值,同時(shí)給這兩個(gè)點(diǎn)設(shè)置在[0,4]之間的一個(gè)速度。下面這些點(diǎn)就會(huì)按照一定的公式更改自己的位置,到達(dá)新位置后,再計(jì)算這兩個(gè)點(diǎn)的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706這個(gè)點(diǎn)停止自己的更新。這個(gè)過(guò)程與粒子群算法作為對(duì)照如下:這兩個(gè)點(diǎn)就是粒子群算法中的粒子。該函數(shù)的最大值就是鳥群中的食物。計(jì)算兩個(gè)點(diǎn)函數(shù)值就是粒子群算法中的適應(yīng)值,計(jì)算用的函數(shù)就是粒子群算法中的適應(yīng)度函數(shù)。更新自己位置的公式就是粒子群算法中的位置速度更

3、新公式。下面演示一下這個(gè)算法運(yùn)行一次的大概過(guò)程:第一次初始化第一次更新位置18  第二次更新位置  第21次更新最后的結(jié)果(30次迭代)最后所有的點(diǎn)都集中在最大值的地方。18粒子群優(yōu)化算法(2)—標(biāo)準(zhǔn)粒子群優(yōu)化算法在上一節(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è)

4、為x1=1.5,x2=2.5;這里的點(diǎn)是一個(gè)標(biāo)量,但是我們經(jīng)常遇到的問(wèn)題可能是更一般的情況—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

5、=(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)常用到,它們是:是保持原來(lái)速度的系數(shù),所以叫做慣性權(quán)重。是粒子跟蹤

6、自己歷史最優(yōu)值的權(quán)重系數(shù),它表示粒子自身的認(rèn)識(shí),所以叫“認(rèn)知”。通常設(shè)置為2。是粒子跟蹤群體最優(yōu)值的權(quán)重系數(shù),它表示粒子對(duì)整個(gè)群體知識(shí)的認(rèn)識(shí),所以叫做“社會(huì)知識(shí)”,經(jīng)常叫做“社會(huì)”。通常設(shè)置為2。是[0,1]區(qū)間內(nèi)均勻分布的隨機(jī)數(shù)。是對(duì)位置更新的時(shí)候,在速度前面加的一個(gè)系數(shù),這個(gè)系數(shù)我們叫做約束因子。通常設(shè)置為1。這樣一個(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)

7、改變自己的位置預(yù)速度的,所以又叫做全局版本的標(biāo)準(zhǔn)粒子群優(yōu)化算法。18粒子群優(yōu)化算法(3)—標(biāo)準(zhǔn)粒子群算法(局部?jī)?yōu)化版本)在全局版的標(biāo)準(zhǔn)粒子群算法中,每個(gè)粒子的速度的更新是根據(jù)兩個(gè)因素來(lái)變化的,這兩個(gè)因素是:1.粒子自己歷史最優(yōu)值pi。2.粒子群體的全局最優(yōu)值pg。如果改變粒子速度更新公式,讓每個(gè)粒子的速度的更新根據(jù)以下兩個(gè)因素更新,A.粒子自己歷史最優(yōu)值pi。B.粒子鄰域內(nèi)粒子的最優(yōu)值pnk。其余保持跟全局版的標(biāo)準(zhǔn)粒子群算法一樣,這個(gè)算法就變?yōu)榫植堪娴牧W尤核惴?。一般一個(gè)粒子i的鄰域隨著迭代次數(shù)的增加而逐漸增加,開始第一次迭

8、代,它的鄰域?yàn)?,隨著迭代次數(shù)鄰域線性變大,最后鄰域擴(kuò)展到整個(gè)粒子群,這時(shí)就變成全局版本的粒子群算法了。經(jīng)過(guò)實(shí)踐證明:全局版本的粒子群算法收斂速度快,但是容易陷入局部最優(yōu)。局部版本的粒子群算法收斂速度慢,但是很難陷入局部最優(yōu)?,F(xiàn)在的粒子群算法大都在收斂速度與擺脫局部最優(yōu)這兩個(gè)方面下功夫。其

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。