一種梯度粒子群混合優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于人工智能算法技術(shù)領(lǐng)域,具體涉及一種梯度粒子群混合優(yōu)化方法,結(jié) 合梯度和粒子群的混合優(yōu)化算法,可用于解決地球科學(xué)領(lǐng)域非線性反演等優(yōu)化領(lǐng)域的尋優(yōu) 問(wèn)題。
【背景技術(shù)】
[0002] 常用的尋優(yōu)反演算法一般分為全局尋優(yōu)類方法和局部尋優(yōu)類方法。其中,全局尋 優(yōu)類算法一般以隨機(jī)方法為代表,這類算法包括大家所熟知的蒙特卡洛法、模擬退火法等, 由于其全局尋優(yōu)能力強(qiáng),對(duì)初始模型的依賴性小,多用于強(qiáng)非線性多極值類尋優(yōu)問(wèn)題,然 而,這類算法由于計(jì)算過(guò)程中需要大量的耗時(shí),對(duì)CPU和內(nèi)存要求都較高;以迭代方法為代 表的局部尋優(yōu)類方法,如牛頓法、高斯牛頓法等,雖然收斂速度快,但算法收斂結(jié)果強(qiáng)烈依 賴于初始模型,容易陷入局部極值。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的在于解決上述現(xiàn)有技術(shù)中存在的難題,提供一種梯度粒子群混合優(yōu) 化方法,解決地球科學(xué)領(lǐng)域的高度非線性反演,如石油工業(yè)領(lǐng)域的速度結(jié)構(gòu)反演、疊前AVO 反演等。
[0004] 本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0005] -種梯度粒子群混合優(yōu)化方法,包括:
[0006] 步驟1,初始化一種群粒子,賦予隨機(jī)位置和速度,置k : = 0 ;
[0007] 步驟2,計(jì)算每個(gè)粒子的適應(yīng)度值
[0008] 步驟3,將力》與當(dāng)前最好位置Pj的適應(yīng)度值fitness (Pj)比較,若 優(yōu)于fitness (P]),則將該粒子賦值為P],然后轉(zhuǎn)入步驟4 ;否則進(jìn)入步驟4 ;
[0009] 步驟4,將/?^)與全局經(jīng)歷的最好位置pg的適應(yīng)度值fitness (pg)比較,若 優(yōu)于fitness (pg),則將該粒子賦值為pg,然后轉(zhuǎn)入步驟5 ;否則進(jìn)入步驟5 ;
[0010] 步驟5,用式(1)、式⑵計(jì)算粒子的速度Vf y和位置U其中:j = 1,2,..., m,m為種群內(nèi)粒子個(gè)數(shù):
[0011] Vis (t+Ι) = ω · Vis (t)+C^1 (pis(t)-Xis (t))+c2r2(pgs(t)-Xis (t))
[0012] (I)
[0013] xis (t+1) = xis(t)+vis(t+l)
[0014] (2);
[0015] 步驟6,若達(dá)到預(yù)設(shè)梯度算法啟動(dòng)條件,返回全局最優(yōu)個(gè)體pg,轉(zhuǎn)向步驟7 ;否則, k : = k+1,轉(zhuǎn)步驟2 ;
[0016] 步驟7,進(jìn)行梯度算法:以步驟6返回的pg為梯度算法的初始點(diǎn),進(jìn)行迭代;
[0017] 步驟8,若達(dá)到終止條件,則結(jié)束,輸出當(dāng)前結(jié)果作為所求問(wèn)題的最優(yōu)解;否則轉(zhuǎn) 步驟7。
[0018] 所述步驟2中的適應(yīng)度值/?<Κν;.?:>.為待求問(wèn)題的目標(biāo)函數(shù)。
[0019] 所述步驟3中的當(dāng)前最好位置Ρ]是指粒子群算法里當(dāng)次迭代的最優(yōu)解;
[0020] 所述步驟4中的全局經(jīng)歷的最好位置pg是指粒子群算法里整個(gè)所有迭代過(guò)程中 的最優(yōu)解。
[0021] 所述步驟8中的終止條件為:終止誤差ε > 0或達(dá)到設(shè)定的最大迭代次數(shù)。
[0022] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
[0023] (1)能夠保持梯度算法的快速收斂性;
[0024] (2)能夠保持粒子群算法的全局收斂性;
[0025] (3)能夠兼顧梯度算法和粒子群算法的優(yōu)點(diǎn)。
【附圖說(shuō)明】
[0026] 圖1二維Rastrigin函數(shù)曲面圖。
[0027] 圖2 -維情況下Rastrigin函數(shù)梯度法尋優(yōu)示意圖。
[0028] 圖3分別利用梯度方法、粒子群方法以及梯度粒子群混合方法尋得的最優(yōu)解。
[0029] 圖4本發(fā)明方法的步驟框圖。
【具體實(shí)施方式】
[0030] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述:
[0031] 近年來(lái),隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,需要大量計(jì)算、復(fù)雜度高的地球科學(xué)、氣象 科學(xué)等領(lǐng)域的反演問(wèn)題也變得可能,使用全局優(yōu)化和局部尋優(yōu)的方法來(lái)解決這類問(wèn)題都有 嘗試。由于局部尋優(yōu)方法具有確定的收斂方向、較快的局部收斂性,而隨機(jī)方法具有很好地 全局性,因此將兩種方法按照一定的方式結(jié)合起來(lái)的綜合算法能吸納兩種算法的優(yōu)點(diǎn),結(jié) 合的關(guān)鍵問(wèn)題在于找到恰當(dāng)?shù)慕尤朦c(diǎn)。本發(fā)明將全局算法中的粒子群算法與局部尋優(yōu)的梯 度算法結(jié)合,提出一種梯度粒子群混合算法,該算法可用于解決地球科學(xué)領(lǐng)域的高度非線 性反演,如石油工業(yè)領(lǐng)域的速度結(jié)構(gòu)反演、疊前AVO反演等。
[0032] 粒子群優(yōu)化算法是近年來(lái)發(fā)展起來(lái)的一種全局性的群體智能隨機(jī)搜索算法,最早 由美國(guó)社會(huì)心理學(xué)家R. Eberhart和J. Kennedy于1995年受人工生命研究結(jié)果的啟發(fā)、通 過(guò)模擬鳥群覓食活動(dòng)中遷徙和群居行為而提出來(lái)的。算法的基本思想是,通過(guò)對(duì)簡(jiǎn)單社會(huì) 系統(tǒng)的模擬,在多維解空間中構(gòu)造"粒子群",把待求問(wèn)題潛在的可行解看作群體中的每個(gè) 粒子,并賦予與目標(biāo)函數(shù)相關(guān)的適應(yīng)度值。群體中每個(gè)粒子通過(guò)跟蹤自己和群體所發(fā)現(xiàn)的 最優(yōu)值,修正粒子飛翔的前進(jìn)方向和速度,從而帶領(lǐng)整個(gè)粒子群體實(shí)現(xiàn)尋優(yōu),實(shí)現(xiàn)對(duì)問(wèn)題最 優(yōu)解的搜索。
[0033] 設(shè)在η維搜索空間中,種群X = X1, X2,…,Xi,…,Xm內(nèi)包含m個(gè)粒子,粒子i的 "位置"記為X i= (xn,xi2,".,Xin)'"速度"記為Vi= (vn,vi2,···,〇'其經(jīng)歷的最優(yōu)位 置記作Pi= (Ρη,Ρ?;!,…,Pim)T,整個(gè)粒子群經(jīng)歷過(guò)的最優(yōu)位置記作P g= (Pgi,Pg;!,…,PgJ T,粒子X1將按式(1)、式(2)改變速度和位置。
[0034] vis (t+1) = ω · vis (t)+C^1 (pis(t)-xis (t))+c2r2(pgs(t)-xis (t))
[0035] (I)
[0036] xis (t+1) = xis (t)+vis (t+1)
[0037] (2)
[0038] 式中,s = 1,2,···,!!,代表搜索空間的維數(shù),ω為慣性權(quán)值,代表前一次速度對(duì)當(dāng) 前速度的影響:若ω較小,粒子容易陷入局部極值,若ω較大,粒子雖容易跳出局部極值, 但收斂速度較慢。因此ω的取值可以平衡粒子收斂性和計(jì)算速度。迭代初期ω取值較大 以獲得較快的收斂速度,ω隨著迭代過(guò)程逐漸變小,在迭代后期可以使得解跳出局部極值。 C1為粒子自身的加速度權(quán)重系數(shù),代表粒子向自身經(jīng)驗(yàn)的學(xué)習(xí),C2為全局加速度權(quán)重系數(shù), 代表粒子向整個(gè)群體經(jīng)驗(yàn)的學(xué)習(xí)。 ri、r2為介于[0,1]間的相互獨(dú)立的隨機(jī)數(shù),用來(lái)動(dòng)態(tài)調(diào) 節(jié)粒子向自身經(jīng)驗(yàn)學(xué)習(xí)和向群體經(jīng)驗(yàn)學(xué)習(xí)的權(quán)重。為了減少進(jìn)化過(guò)程中粒子離開搜索空間 的可能,一般還需對(duì)速度加以約束,使之限定在一個(gè)范圍[v_,v_]之內(nèi),并且通過(guò)先驗(yàn)信 息對(duì)粒子的位置進(jìn)行合理化評(píng)估。
[0039] 梯度法(Gradi ent method),又名最速下降法(Steepest-descent method),是一 種求解無(wú)約束多元函數(shù)極值的數(shù)值方法,早在1847年就已由柯西(Cauchy)提出。梯度法 由于計(jì)算消耗內(nèi)存小,對(duì)初始值的要求不太高,存儲(chǔ)量也較少,是無(wú)約束優(yōu)化方法中最基本 的方法之一,也是導(dǎo)出其他更為實(shí)用、有效的優(yōu)化方法的理論基礎(chǔ)。
[0040] 梯度法(最速下降法)的基本思想是:假設(shè)目標(biāo)函數(shù)f :Rn - R1 -階連續(xù)可微。從 當(dāng)前點(diǎn)Xk出發(fā),取函數(shù)在Xk點(diǎn)處下降最快的方向作為搜索方向。
[0041] 由f (X)的Taylor展開式知:
[0042]
[0043] (3)
[0044] 略去t的高階無(wú)窮小項(xiàng)不計(jì),可見在式⑶中取// !時(shí),函數(shù)值下降得最 多。換而言之,函數(shù)在當(dāng)前點(diǎn)梯度相反的方向(負(fù)梯度方向)下降得最快。
[0045] 梯度法的實(shí)現(xiàn)步驟為:
[0046] 步驟1選定初始點(diǎn)x°,給定終止誤差ε > 〇,令k : = 0 ;
[0047] 步驟2計(jì)算f (Xk)的梯度臀以\若|啰?)^^停止迭代,輸出。;否則轉(zhuǎn)步驟3;
[0048] 步驟 3 取 / = -;
[0049] 步驟 4 進(jìn)行一維搜索,求 tk,使得/試 +礦> /(V +f ) t令 xk+1 = xk+tkpk,k := k+1,轉(zhuǎn)步驟2。其中,步長(zhǎng)#可用一維尋優(yōu)法求得。
[0050] 要將粒子群算法與梯度算法結(jié)合起來(lái),得到梯度粒子群混合算法。一種可行的實(shí) 現(xiàn)思想是,在算法迭代之初使用粒子群算法,選取多個(gè)不同的初始模型(體現(xiàn)在下面的步 驟1),用粒子群算法迭代找到適應(yīng)值較好地初始模型,然后利用梯度算法的快速局部收斂 特性尋找最優(yōu)解。這樣做的好處是可以盡可能地降低初始模型的選取對(duì)梯度算法的影響。
[0051] 如圖4所示,本發(fā)明方法的具體步驟為:
[0052] 步驟1初始化一種群粒子(具體到實(shí)際問(wèn)題時(shí),可以把待求的變量作為粒子,如 求取地層速度參數(shù)時(shí),可以把速度參數(shù)作為待求解的粒子),賦予隨機(jī)位置和速度,置k := O ;
[0053] 步驟2計(jì)算每個(gè)粒子的適應(yīng)度值^此處適應(yīng)度值無(wú)具體計(jì)算公式,是指 待求問(wèn)題的目標(biāo)函數(shù),如具體求解地層速度問(wèn)題,則一種可能的目標(biāo)函數(shù)為地層速度的最 小二乘解。
[0054] 步驟3將,/Weys(Xf)與當(dāng)前最好位置p](在粒子群算法里,當(dāng)前