Python知識(shí)分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
解鎖粒子群算法:Python 帶你探尋函數(shù)優(yōu)化寶藏 PDF 下載
匿名網(wǎng)友發(fā)布于:2025-09-20 10:46:15
(侵權(quán)舉報(bào))
(假如點(diǎn)擊沒(méi)反應(yīng),多刷新兩次就OK!)

解鎖粒子群算法:Python 帶你探尋函數(shù)優(yōu)化寶藏 PDF 下載 圖1

 

 

資料內(nèi)容:

 

(一)核心概念大揭秘
1. 粒子(Particle):在粒子群算法中,粒子是最基本的組成單元,每個(gè)粒子都代表著問(wèn)題解空間中的
一個(gè)潛在解 。以函數(shù)優(yōu)化問(wèn)題為例,如果要優(yōu)化的函數(shù)是f(x,y)=x^2 + y^2,其中x,y的取值范圍是[-10,
10],那么粒子就可以用二維空間中的一個(gè)點(diǎn)(x,y)來(lái)表示,這個(gè)點(diǎn)的坐標(biāo)值就是函數(shù)的一組可能輸入值
,通過(guò)計(jì)算f(x,y)得到的結(jié)果則用于評(píng)估該粒子作為解的優(yōu)劣程度。粒子還具有速度(Velocity)屬性
,速度決定了粒子在解空間中移動(dòng)的方向和步長(zhǎng),它會(huì)隨著算法的迭代不斷更新,引導(dǎo)粒子向更優(yōu)解
的方向移動(dòng)。
2. 適應(yīng)值(Fitness):適應(yīng)值是根據(jù)目標(biāo)函數(shù)計(jì)算得出的,用于衡量每個(gè)粒子的優(yōu)劣程度,本質(zhì)上是對(duì)
粒子所代表的解的質(zhì)量評(píng)價(jià)。在上述函數(shù)優(yōu)化的例子中,直接將f(x,y)的計(jì)算結(jié)果作為適應(yīng)值,適應(yīng)值
越小,說(shuō)明該粒子對(duì)應(yīng)的解越接近函數(shù)的最小值,粒子也就越優(yōu)。在實(shí)際應(yīng)用中,適應(yīng)值的計(jì)算方式
會(huì)根據(jù)具體問(wèn)題而變化,比如在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,可能將預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽之間的誤差作為適應(yīng)值
,誤差越小,適應(yīng)值越好。
3. 個(gè)體最優(yōu)(pBest,personal best):個(gè)體最優(yōu)是指每個(gè)粒子在自身搜索過(guò)程中所經(jīng)歷過(guò)的具有最佳
適應(yīng)值的位置。繼續(xù)以上述函數(shù)優(yōu)化為例,假設(shè)某個(gè)粒子在初始位置(x_1,y_1)的適應(yīng)值為f(x_1,y_1) 
,在后續(xù)迭代中,它移動(dòng)到位置(x_2,y_2) ,此時(shí)適應(yīng)值為f(x_2,y_2),如果f(x_2,y_2) < f(x_1,y_1),那
么就將(x_2,y_2)更新為該粒子的個(gè)體最優(yōu)位置 pBest;若后續(xù)又移動(dòng)到新位置,計(jì)算得到的適應(yīng)值比f(wàn)(
x_2,y_2)更小,那么 pBest 就會(huì)再次更新。粒子在搜索過(guò)程中會(huì)始終記住自己的 pBest,作為自身搜索
經(jīng)驗(yàn)的參考。
4. 全局最優(yōu)(gBest,global best):全局最優(yōu)是整個(gè)粒子群在搜索過(guò)程中所有粒子出現(xiàn)過(guò)的最優(yōu)位置
,即所有粒子的 pBest 中適應(yīng)值最優(yōu)的那個(gè)位置。在一群粒子共同搜索函數(shù)f(x,y)最小值的過(guò)程中,每
個(gè)粒子都有自己的 pBest,通過(guò)比較所有粒子的 pBest 對(duì)應(yīng)的適應(yīng)值,找出其中最小的適應(yīng)值所對(duì)應(yīng)
的粒子位置,這個(gè)位置就是全局最優(yōu)位置 gBest。gBest 代表了整個(gè)粒子群目前找到的最優(yōu)解,對(duì)所有
粒子的搜索方向起到引導(dǎo)作用 。

 

(二)算法流程全解析
1. 初始化:在算法開始時(shí),需要隨機(jī)生成一群粒子,確定它們?cè)诮饪臻g中的初始位置和初始速度。假設(shè)
解空間是n維的,粒子群規(guī)模為m,那么就會(huì)生成m個(gè)n維向量來(lái)表示粒子的初始位置,每個(gè)維度的取
值通常在問(wèn)題規(guī)定的范圍內(nèi)隨機(jī)生成;同時(shí)也會(huì)生成m個(gè)n維向量表示粒子的初始速度,速度的取值范
圍也需提前設(shè)定。以優(yōu)化二維函數(shù)f(x,y)為例,粒子群規(guī)模設(shè)為 30,那么就會(huì)隨機(jī)生成 30 個(gè)形如(x,y
)的初始位置,x,y在[-10,10]內(nèi)隨機(jī)取值;初始速度也會(huì)生成 30 個(gè)二維向量,比如v_x,v_y在[-1,1]內(nèi)隨
機(jī)取值(速度范圍可根據(jù)實(shí)際問(wèn)題調(diào)整)。完成粒子位置和速度初始化后,計(jì)算每個(gè)粒子的適應(yīng)值,
并將每個(gè)粒子的初始位置設(shè)為其個(gè)體最優(yōu)位置 pBest,從所有粒子的 pBest 中找出適應(yīng)值最優(yōu)的位置
,將其設(shè)為全局最優(yōu)位置 gBest。