亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于加權(quán)聚合的最小中心粒子群優(yōu)化方法與流程

文檔序號:12672277閱讀:388來源:國知局
一種基于加權(quán)聚合的最小中心粒子群優(yōu)化方法與流程

本發(fā)明涉及粒子群優(yōu)化算法領(lǐng)域,特別是涉及一種基于加權(quán)聚合的最小中心粒子群優(yōu)化方法。



背景技術(shù):

粒子群優(yōu)化(PSO)求解優(yōu)化問題時,問題的解對應(yīng)于搜索空間中某一粒子的位置,稱為“粒子”(particle)或“主體”(agent)。每個粒子都有自己的位置和速度,還有一個由被優(yōu)化函數(shù)決定的適應(yīng)值。各個粒子記憶、追隨當(dāng)前的最優(yōu)粒子,在解空間中搜索。每次迭代的過程不是完全隨機的,如果找到較好解,將會以此為依據(jù)來尋找下一個解。

令PSO初始化為一群隨機粒子(隨機解),在每一次迭代中,粒子通過跟蹤兩個“極值”來更新自己:第一次就是粒子本身所找到的最好解,叫做體極值點(用Pbest表示其位置),全局版PSO中的另一個極值點是整個種群目前找到的最好解,稱為全局極值點(用gbest表示其位置),而局部版PSO不用整個種群而是用其中一部分作為粒子的鄰居,所有的鄰居中的最好解就是局部極值點(用lbest表示其位置)。在找到這兩個最好解后,粒子根據(jù)如下公式(1)和(2)來更新自己的速度和位置。粒子i的信息可以用D維向量表示,位置表示為Xi=(xi1,xi2,......xiD)T,其他向量類似。則速度和位置更新方程為:

vi(d+1)=vi(d)+c1r1(pi(d)-xi(d))+c2r2(pg(d)-xi(d))(式1)

xi(d+1)=xi(d)+vi(d+1)(式2)

步驟一:初始化

初始搜索點的位置及其速度通常是在允許的范圍內(nèi)隨機產(chǎn)生的,每個粒子pbest坐標(biāo)設(shè)置為其當(dāng)前位置,且計算出其相應(yīng)的個體極值(即個體極值點的適應(yīng)度值),而全局極值(即全局極值點的適應(yīng)度值)就是個體極值中最好的,記錄該最好值的粒子序號,并將gbest設(shè)置為該最好粒子的當(dāng)前位置。

步驟二:評價每一個粒子

計算粒子的適應(yīng)度值,如果好于該粒子當(dāng)前的個體極值,則將pbest設(shè)置為該粒子的位置,且更新個體極值。如果所有粒子的個體極值中最好的好于當(dāng)前的全局極值,則將gbest設(shè)置為該粒子的位置,記錄該粒子的序號,且更新全局極值。

步驟三:粒子的更新

用式(1)和式(2)對每一個粒子的速度和位置進行更新。

步驟四:檢驗是否符合結(jié)束條件

如果當(dāng)前的迭代次數(shù)達到了預(yù)先設(shè)定的最大次數(shù)(或達到最小錯誤要求),則停止迭代,輸出最優(yōu)解,否則轉(zhuǎn)到步驟二。

在PSO的算法中,根據(jù)最好的粒子得出信息,它的表現(xiàn)是其他個體會會快速的向最好粒子的一點收斂,因此,運用PSO算法處理多目標(biāo)優(yōu)化問題,結(jié)果容易收斂在非劣最優(yōu)域的局部。PSO算法在迭代次數(shù)一般多比較麻煩,運行的時間也相對較長。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明的目的是提供一種基于加權(quán)聚合的最小中心粒子群優(yōu)化方法,避免了早熟收斂,增強全局搜索能力,同時提高非劣最優(yōu)解的精度。

本發(fā)明采用以下方案實現(xiàn):一種基于加權(quán)聚合的最小中心粒子群優(yōu)化方法,包括以下步驟:

步驟S1:初始化:對粒子群算法進行初始化,選取0.1%≤c1≤1.5%,0.5%≤c2≤2.5%,且c1<c2,作為參數(shù)的取值范圍;并將粒子數(shù)設(shè)置為100,迭代次數(shù)為500;

步驟S2:域約束:在給定的范圍內(nèi)求最優(yōu)解,域約束表示如下:

粒子的取值上限為b=[1.5;2.5];粒子的取值下限為a=[0.1;0.5];

并設(shè)置權(quán)重的變化頻率F=100;

步驟S3:設(shè)置粒子的位置和速度;

步驟S4:進入主程序粒子群優(yōu)化:針對當(dāng)前粒子的位置算出一個最小中心,在這個中心上每個函數(shù)取值最小,然后算出每個粒子離這個中心的距離,則離中心最近的點即為全局最優(yōu)位置,再根據(jù)粒子群算法的公式進行迭代。

進一步地,所述步驟S4具體為:

步驟S41:首先初始化粒子群,種群的大小為N,隨機初始化每個粒子的xi,vi;

步驟S42:分別計算各個子目標(biāo)的函數(shù)值;

步驟S43:目標(biāo)函數(shù)中加入懲罰函數(shù)后,計算粒子的適應(yīng)度;

步驟S44:計算粒子個體以及全局歷史最佳的Pi和Pg

步驟S45:運用足夠大(小)的適應(yīng)度函數(shù)值來進行對比,選擇新的最佳;

步驟S46:按照下述公式更新粒子位置和速度:

vi(d+1)=wvi(d)+c1r1(pi(d)-xi(d))+c2r2(pg(d)-xi(d))

xi(d+1)=xi(d)+vi(d+1);

如果粒子某一維超過邊界,那么就需要重新隨機初始化這一維數(shù)據(jù);

步驟S47:對當(dāng)前粒子群中的非劣解進行篩選,并把其加入到精英集,并且去除精英集合中存在的劣解;

步驟S48:驗證是否滿足終止條件,如果滿足就退出,否則就返回步驟S42。

與現(xiàn)有技術(shù)相比,本發(fā)明對算法做了如下改進,避免了早熟收斂,增強全局搜索能力,同時提高非劣最優(yōu)解的精度:

(1)針對多目標(biāo)優(yōu)化問題的非劣最優(yōu)解集的搜索,提出了一種基于最小中心方法的粒子群優(yōu)化算法(簡稱PSMCO),這種方法在每次迭代選全局最優(yōu)位置的時候,針對當(dāng)前粒子的位置算出一個最小中心,在這個中心上每個函數(shù)取值最小。然后算出每個粒子離這個中心的距離,則離中心最近的點即為全局最優(yōu)位置,再根據(jù)粒子群算法的公式進行迭代。

(2)在解決多目標(biāo)優(yōu)化問題上,傳統(tǒng)的方法是通過加權(quán)求和,將多目標(biāo)問題轉(zhuǎn)化為單目標(biāo)問題來解決,這種方法稱為加權(quán)聚合粒子群算法(WAPSO)。這種方法要求對問題本身有很強的先驗認識,本發(fā)明將其與粒子群最小中心優(yōu)化算法進行結(jié)合,形成基于加權(quán)聚合的最小中心粒子群算法(WAPSMCO),即在求解過程中為每一個目標(biāo)函數(shù)賦予一定的動態(tài)權(quán)重,因此將多目標(biāo)問題轉(zhuǎn)化為單目標(biāo)優(yōu)化問題,接著再通過最小中心法對全局求優(yōu)。

附圖說明

圖1是本發(fā)明實施例中函數(shù)一非劣最優(yōu)解集圖。

圖2是本發(fā)明實施例中函數(shù)二非劣最優(yōu)解集圖。

圖3是本發(fā)明實施例中函數(shù)一的3種算法的優(yōu)化值比較示意圖。

圖4是本發(fā)明實施例中函數(shù)一的3種算法的運行時間比較示意圖。

圖5是本發(fā)明實施例中函數(shù)二的3種算法優(yōu)化值比較示意圖。

圖6是本發(fā)明實施例中函數(shù)二的3種算法的運行時間比較示意圖。

具體實施方式

下面結(jié)合附圖及實施例對本發(fā)明做進一步說明。

本實施例提供一種基于加權(quán)聚合的最小中心粒子群優(yōu)化方法,粒子群最小中心優(yōu)化算法是在決策變量空間初始化一個粒子群的位置周圍的最小空間,在該過程中多目標(biāo)優(yōu)化問題中的各個目標(biāo)函數(shù)能共同影響粒子在決策變量空間中的飛行,并使其能在最終位于非劣最優(yōu)解集中,也就是說,在目標(biāo)函數(shù)空間,粒子將會落入非劣最有目標(biāo)域。具體的算法過程如下:

(1)在第t步迭代的時候,先確定PSO算法中每個粒子i個體最優(yōu)位置pbest[t,i]:將粒子當(dāng)前位置pposition與pbest[t-1,i]作比較,檢測pposition是否對pbest[t-1,i]占優(yōu)(dominate),若占優(yōu),則更新pbest[t,i]為pposition[i];否則,保留pbest[t,i]為pbest[t-1,i]。稱一個位置A對另一個位置B占優(yōu),說的是,對于所有的函數(shù)fj,j<=n(n是函數(shù)總個數(shù)),都有fj在fj(A)>=fj(B),并且存在一個函數(shù)fk使得fk(A)>fk(B)。若一個解是pareto最優(yōu)的,則它一定不可能被其他位置占優(yōu),所以這個檢測條件保證了每步都向pareto最優(yōu)解逼近。

(2)在確定全局最優(yōu)位置gbest的時候,先根據(jù)粒子當(dāng)前位置各個函數(shù)的最優(yōu)值,即對每個函數(shù)fj,找到一個粒子mj,使其達到最小值,即mj=argmin_{i}f(pposition[i])。這樣就對這個函數(shù)集合找到了一個最小中心位置center=(m1,…,mn)。然后計算每個粒子i離中心位置的距離,即d(i,center)=f1(pposition[i])-f(m1)+f2(pposition[i])-f(m2)+……+fn(pposition[i])-f(mn)。最后把全局最優(yōu)解定義為到最小中心最近的那個粒子gbest=argmin_{i}d(I,center)。在實驗中可以看到,這個算法由于其實現(xiàn)簡單,運行速度比前面的更高效,而且其效果也和前人的算法不相上下。

加權(quán)聚合即對每個目標(biāo)函數(shù)給予一定的權(quán)重,是解決多目標(biāo)優(yōu)化問題最常用的方法。根據(jù)這一方法,所有的目標(biāo)都賦以加權(quán)組合其中Wi,i=1,...,k,均為非負權(quán)重。通常設(shè)定這些權(quán)重在優(yōu)化過程中可以是定值也可以動態(tài)調(diào)整。如果權(quán)重是固定的,就是傳統(tǒng)加權(quán)聚合方法(CWA)。使用這個方法,每次優(yōu)化運行只能得到一個非劣最優(yōu)解,并且需要搜索空間的先驗知識,以便選擇適當(dāng)?shù)臋?quán)重。因此,為了得到所需數(shù)量的非劣最優(yōu)解,需要進行重復(fù)多次的搜索。然而,由于時間的限制和繁重的計算成本,這個方法對于大多數(shù)問題都不太適用。因此,提出其他加權(quán)聚合方法來彌補CWA的局限性。對于多目標(biāo)優(yōu)化問題,在優(yōu)化過程換中,可根據(jù)以下公式進行權(quán)重修正:

w(1)=sign(sin(2*pi*t/F)),w(2)=(1-w(1))w(1),...w(k)=1-w(1)-...-w(k-1),

其中k是目標(biāo)函數(shù)的個數(shù),t是迭代指數(shù),F(xiàn)是權(quán)重的變化頻率。這就是"Bang-Bang"加權(quán)算法(BWA)。據(jù)此,權(quán)重可以通過sign(-)功能突然改變。另外,權(quán)重也可以根據(jù)以下方程進行逐步修正:

w(1)=|sin(2*pi*t/F)|,w(2)=(1-w(1))w(1),...w(k)=1-w(1)-...-w(k-1),這就是所謂的動態(tài)加權(quán)聚合方法(DWA)。

本實施例主要采用DWA方法,同時也考慮了BWA方法,根據(jù)檢測函數(shù)的實驗,發(fā)現(xiàn)這兩種方法得出的結(jié)果差別不大。依據(jù)上面所講的公式原理,本實施例的方法流程包括以下步驟:

步驟S1:初始化:一般情況粒子群算法的初始化是采取隨機初始化的方式,應(yīng)該充分利用先驗信息,如果完全隨機初始化,必然會導(dǎo)致在一些沒有意義的解上浪費時間。選取0.1%≤c1≤1.5%,0.5%≤c2≤2.5%,且c1<c2,作為參數(shù)的取值范圍。將粒子數(shù)設(shè)置為100,迭代次數(shù)為500。程序源代碼如下:

function OUT=mo_pso(vec_func,dim)%vec_func is a cell of function names

dim=2;

numpar=30;

numfunc=numel(vec_func);

mv=1.4;%upper bound on velocity

pro=1/2;%probability threshold of choosing different updating strategies

在程序里取不同的pro值(取值0到1之間),就可以調(diào)整算法的側(cè)重點,從而對算法做出比較。當(dāng)程序里面的pro取0的時候,用的是方法最小中心算法;當(dāng)程序里面的pro取1的時候,用的是加權(quán)聚合算法;當(dāng)程序里面的pro取1/2的時候,是這兩種方法的結(jié)合;

步驟S2:域約束:對于實際問題,一般要求解空間不是整個的實數(shù)空間,而是在給定的范圍內(nèi)求最優(yōu)解。這種對于解的約束,稱為域約束,表示如下:

粒子的取值上限為b=[1.5;2.5];粒子的取值下限為a=[0.1;0.5];

并設(shè)置權(quán)重的變化頻率F=100;

步驟S3:設(shè)置粒子的位置和速度:

在粒子群算法中,parvel和parpos分別為粒子的速度和位置,而numpar為粒子數(shù)(number of particles),numiter為迭代次數(shù)(number of iteration)。程序源代碼如下:

parpos(1:numpar,1)=a(1)+(b(1)-a(1)).*rand(numpar,1);

parpos(1:numpar,2)=a(2)+(b(2)-a(2)).*rand(numpar,1);

%parvel(1:numpar,1:dim)=-mv+2*mv.*rand(numpar,dim);

parvel(1:numpar,1:dim)=zeros(numpar,dim);

%mutalparpos=zeros(numfunc,numpar,dim);

%bestparpos and bestglopos

bestparpos=parpos;

%bestmutalparpos=repmat(parpos,);

bestglopos=parpos(1,:);

%pardistance contain the function values of each particle in each

iteration

pardistance=zeros(numpar,numfunc);

pval=zeros(numpar,numfunc);

numiter=100;

步驟S4:進入主程序粒子群優(yōu)化:針對當(dāng)前粒子的位置算出一個最小中心,在這個中心上每個函數(shù)取值最小,然后算出每個粒子離這個中心的距離,則離中心最近的點即為全局最優(yōu)位置,再根據(jù)粒子群算法的公式進行迭代。

在本實施例中,所述步驟S4具體為:

步驟S41:首先初始化粒子群,種群的大小為N,隨機初始化每個粒子的xi,vi

步驟S42:分別計算各個子目標(biāo)的函數(shù)值;

步驟S43:目標(biāo)函數(shù)中加入懲罰函數(shù)后,計算粒子的適應(yīng)度;

步驟S44:計算粒子個體以及全局歷史最佳的Pi和Pg;

步驟S45:運用足夠大(小)的適應(yīng)度函數(shù)值來進行對比,選擇新的最佳;

步驟S46:按照下述公式更新粒子位置和速度:

vi(d+1)=wvi(d)+c1r1(pi(d)-xi(d))+c2r2(pg(d)-xi(d))

xi(d+1)=xi(d)+vi(d+1);

如果粒子某一維超過邊界,那么就需要重新隨機初始化這一維數(shù)據(jù);

步驟S47:對當(dāng)前粒子群中的非劣解進行篩選,并把其加入到精英集,并且去除精英集合中存在的劣解;

步驟S48:驗證是否滿足終止條件,如果滿足就退出,否則就返回步驟S42。

在處理多目標(biāo)約束優(yōu)化問題的時侯,PSO算法主要是解決自身和群體最佳位置,對于自身最佳位置的選擇要求是通過較少的比較次數(shù)達到非劣解的更新,對于群體最佳位置的選擇,一是所得到的解要在Pareto邊界上具有一定得分散性,二是要求算法收斂速度好。在處理約束時,PSO算法多采用懲罰函數(shù)法。將懲罰函數(shù)作為粒子適值,使得PSO可以用來解決多目標(biāo)約束優(yōu)化問題。約束優(yōu)化處理的是單個約束組成或者等式和不等式優(yōu)化的問題。問題的解既要達到目標(biāo)函數(shù)的要求又要符合約束條件。

算法主程序源代碼如下所示,其中需要說明,dominate.m是mo_pso.m調(diào)用的程序,用以判斷一個解是不是比另一個解好,是不是非劣最優(yōu)的。最終的精英集即為PSO算法所得非劣解集,也就是所需要達到的目標(biāo):

在本實施例中,算法的時間復(fù)雜度分析是衡量一個算法的重要指標(biāo),因此通過分析算法的運行時間來比較算法的優(yōu)劣性。為了衡量本實施例提出的多目標(biāo)算法的性能,必須度量該算法得到抗體的收斂性,采用opt優(yōu)化值來反映抗體的這種屬性。通過2個有代表性的多目標(biāo)檢測函數(shù)來衡量算法的性能。

為了檢驗算法的性能,下面對標(biāo)準(zhǔn)測試函數(shù)進行仿真實驗,實驗的結(jié)果得到了用于解決這些多目標(biāo)問題的運行結(jié)果,其非劣最優(yōu)解的前沿圖例。所使用的公式如下:

Vi=w×Vi+c1×rand()×(pBest[i]-Xi)+c2×Rand()×(pBest[g]-Xi,)

Xi=Xi+Vi

在PSO公式中,參數(shù)設(shè)置如下:慣性權(quán)重w從0.5線性遞減到0.4,加速度系數(shù)c1、c2均為0.5。

此外,為了畫圖的簡潔明了,為3個算法分配對應(yīng)的名稱,方法一為加權(quán)聚合算法,方法二為粒子群最小中心法,方法三為二者的結(jié)合。如圖1、圖2所示,圖中橫坐標(biāo)的對應(yīng)函數(shù)f1,縱坐標(biāo)對應(yīng)函數(shù)f2,此圖可以很好地反映數(shù)據(jù)的統(tǒng)計分布情況。

函數(shù)一:

min f1=x1

Yi∈[0.1],n=30.

參數(shù)設(shè)置為:b=1,a=0,mv=1,numpar=100,numiter=100,其中b為粒子的取值上限,a為粒子的取值下限,mv為速度的取值上限,numpar為粒子數(shù),numiter為迭代次數(shù),得到非劣最優(yōu)解集如圖1所示,圖1為函數(shù)一非劣最優(yōu)解集圖。

函數(shù)二:

minf2(x)=(x-5)2

參數(shù)設(shè)置為:b=10,a=-5,mv=15,numpar=100,numiter=100,得到非劣最優(yōu)解集如圖2所示,圖2為函數(shù)二非劣最優(yōu)解集圖。

本實施例用3種算法對函數(shù)一和函數(shù)二連續(xù)運行10次所得函數(shù)全局最小值的平均值和運行時間進行比較。為了更好地評價算法的收斂性能,測試結(jié)果如圖3所示,從中可以看出算法收斂速度的快慢。對運行結(jié)果進行比較分析,對于函數(shù)一,運行10次以后,每次的優(yōu)化值opt如圖3所示,圖3為函數(shù)一的3種算法的優(yōu)化值比較示意圖;比較這兩個算法的運行時間:即對每個算法分別運行10次,得到的運行時間分別如圖4所示,圖4為函數(shù)一的3種算法的運行時間比較示意圖。對于函數(shù)二,運行10次以后,每次的優(yōu)化值opt如圖5所示,圖5為函數(shù)二的3種算法優(yōu)化值比較示意圖。比較三種算法的運行時間:即對每個算法分別運行10次,得到的運行時間分別如圖6所示,圖6為函數(shù)二的3種算法的運行時間比較

從圖3至圖6可以明顯地看出,相對于基本的加權(quán)聚合粒子群算法(WAPSO)和粒子群最小中心算法(PSMCO),加權(quán)聚合最小中心粒子群算法(WAPSMCO)以更少的迭代次數(shù)得到精度更高的解,并且此算法的收斂速度是非??斓摹=?jīng)過上述的兩個標(biāo)準(zhǔn)測試函數(shù)的數(shù)值模擬的實驗,可以輕易看出WAPSMCO的算法優(yōu)于其它兩種算法。

以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1