MATLAB內(nèi)置GA函數(shù),用以求解全局最優(yōu)化問題,適用于求解目標(biāo)函數(shù)最優(yōu)解問題。
一、GA函數(shù)原型:
二、函數(shù)介紹
常用的兩種分別是:
1.X = ga(fitnessfcn,nvars)
2.X = ga(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
其中,fitnessfcn為適應(yīng)度函數(shù)(也就目標(biāo)函數(shù)),其參數(shù)為向量,nvars是參數(shù)向量的維度,函數(shù)返回值X為適應(yīng)度函數(shù)最小值時的參數(shù)向量。
其它參數(shù),像A,b,Aeq,beq,lb,ub,nonlcon,IntCon用于約束X的取值,這里不多講述,有需要可詳細(xì)學(xué)習(xí)《MATLAB遺傳算法工具箱及應(yīng)用》,文末附本書電子版鏈接,供學(xué)習(xí)參考。
三、應(yīng)用實例
如,適應(yīng)度函數(shù)為,
f = (339-0.01x1-0.003x2)x1 + (399-0.004x1-0.01x2)x2 -(400000+195x1+225x2)
求該函數(shù)的最大值。
代碼:
此時執(zhí)行,X =ga(@myfit, 2)
結(jié)果顯示: Optimization terminated: maximum number of generations exceeded.
說明迭代達(dá)到最大次數(shù)仍未求得最優(yōu)解。因此下面通過options增大迭代次數(shù)。
結(jié)果顯示: Optimization terminated: average change in the fitness value less than options.TolFun.
在命令行窗口輸出X,F(xiàn)VAL
這個結(jié)果與對目標(biāo)函數(shù) x1、x2 分別求偏導(dǎo)得到的結(jié)果(x1=4735, x2=7043, y=553641)是一致的,表明結(jié)果正確。
四、optimoptions函數(shù)
首先,函數(shù)原型:options = optimoptions(SolverName,Name,Value)
附調(diào)用遺傳算法函數(shù)代碼,
options = optimoptions(‘ga’);
options = optimoptions(options,‘PopulationSize’, PopulationSize_Data);
options = optimoptions(options,‘CrossoverFraction’, CrossoverFraction_Data);
options = optimoptions(options,‘MigrationFraction’, MigrationFraction_Data);
options = optimoptions(options,‘MaxGenerations’, MaxGenerations_Data);
options = optimoptions(options,‘SelectionFcn’, @selectionroulette);
options = optimoptions(options,‘CrossoverFcn’, @crossovertwopoint);
options = optimoptions(options,‘MutationFcn’, { @mutationgaussian,scale,shrink });
1.PopulationSize:種群規(guī)模,初始化種群的數(shù)目
2.CrossoverFraction:交叉概率,種群產(chǎn)生下一代的比例,默認(rèn)是0.8
3.MigrationFraction:編譯概率,種群發(fā)生變異的比例
4.MaxGenerations:最多進(jìn)化的代數(shù)
5.SelectionFcn:進(jìn)化的方式,可供選擇的函數(shù)有五種,最常用的是’selectionroulette’,即輪盤賭方式,感興趣的可以查閱相關(guān)資料來學(xué)習(xí)
6.CrossoverFcn:交叉的方式,決定了子代的由來,可供選擇函數(shù)有六種,
‘crossoverscattered’、‘crossoversinglepoint’、‘crossovertwopoint’、
‘crossoverintermediate’、‘crossoverheuristic’、‘crossoverarithmetic’
7.MutationFcn:變異的方式,用以擴大GA算法的搜索空間,默認(rèn)為mutationgaussian,此變異函數(shù)服從均值為0的高斯分布,其標(biāo)準(zhǔn)差由參數(shù)scale、shrink、以及InitialPopulationRange option共同決定。文章來源:http://www.zghlxwxcb.cn/news/detail-478567.html
附電子文檔《MATLAB遺傳算法工具箱及應(yīng)用》
鏈接:https://pan.baidu.com/s/1tAHX9Rl3RCrTPPRVNFhlcg?pwd=pof8
提取碼:pof8文章來源地址http://www.zghlxwxcb.cn/news/detail-478567.html
到了這里,關(guān)于MATLAB利用遺傳算法求取最優(yōu)解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!