遺傳算法是一種全局優化算法,但是也具有可能陷入局部極值的缺點。為了測試遺傳算法的全局搜索能力,我們使用Rastrigin函數對其進行測試。
Rastrigin函數的表達式為
打開文件JSOP/shell/testfunction.m,可以看到該函數的代碼
function y=testfunction(x1,x2)
y=20+x1.^2+x2.^2-10*(cos(2*pi*x1)+cos(2*pi*x2));
end
運行文件JSOP/shell/plot_testfunction.m,可以看到該函數的圖像
從圖中可以看到,該函數在定義域內分布着大量的局部極小值,其中全局最小值在(0,0)處。大量的局部極小值為遺傳算法尋找全局最小值增加了難度。我們將使用該函數測試JSOP的性能。