matlab遺傳算法2——利用遺傳算法求解Rastrigin函數(shù)的(全局)最小值

Rastrigin函數(shù)經(jīng)常被用來(lái)作為研究智能優(yōu)化算法時(shí)的測(cè)試函數(shù)。 Rastrigin函數(shù)有兩個(gè)變量,它具有很多的局部最小值,但全局只有一個(gè)最小值,所以這個(gè)函數(shù)由遺傳算法來(lái)求解全局最小值,可以更好的說(shuō)明遺傳算法是一種全局尋優(yōu)的優(yōu)化算法。
一、分析Rastrigin函數(shù)

Rastrigin函數(shù)的函數(shù)形式為:

為了更好地理解上述表達(dá)式,這樣的函數(shù)形式到底描繪怎樣的圖像,以及是否可以通過(guò)繪制圖形來(lái)大概判斷出Rastrigin函數(shù)全局最小值的位置或大致范圍。 為此先編寫(xiě)代碼繪制出Rastrigin函數(shù)三維圖形如圖1所示,從圖中可以看出Rastrigin函數(shù)確實(shí)存在眾多的局部最小值,同時(shí)可以看到圖形從邊緣向中心收縮(沿x軸和y軸),所以初步判斷全局最小值的位置應(yīng)該位于中心位置。

圖1

繪制Rastrigin函數(shù)圖像的代碼為:
surf(X1,X2,z,'EdgeColor','none','FaceColor','interp')
為了驗(yàn)證上面的推斷,所以進(jìn)一步繪制該函數(shù)二維等高線圖如圖2所示,在圖中分別從x軸和y軸的正負(fù)方向觀察,可以得到和前面相同的分析結(jié)果,所以此時(shí)確定Rastrigin函數(shù)全局最小值的位置位于(0,0)。

圖2

繪制Rastrigin函數(shù)等高線的代碼為:
contour(X1,X2,z)
二、利用遺傳算法尋找Rastrigin函數(shù)的(全局)最小值 前文中通過(guò)對(duì)Rastrigin函數(shù)圖形的分析,得到此函數(shù)的全局最小值位于 (0,0),那么遺傳算法作為全局尋優(yōu)算法得到的結(jié)果又如何呢? 因此,利用MATLAB中optimtool工具箱中的遺傳算法來(lái)求解Rastrigin函數(shù)的(全局)最小值,如圖3所示為求解過(guò)程中擬合結(jié)果、變量變化等參數(shù)圖形。

optimtool工具箱調(diào)用遺傳算法的代碼為:
options = optimoptions('ga');
調(diào)用遺傳算法求解Rastrigin函數(shù)(全局)最小值的代碼為:
[x,fval,exitflag,output,population,score]=ga(@rastrigin,nvars,options);
參考文獻(xiàn) 周琛琛.基于Matlab遺傳算法工具箱的函數(shù)優(yōu)化問(wèn)題求解[J].現(xiàn)代計(jì)算機(jī),2006(12):84-86.
獲取代碼,后臺(tái)回復(fù)“Rastrigin?and?GA”或“RGA
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容