matlab遗传算法输出参数太多,用遗传算法工具箱时错误提示太多输出参数?
核心函數(shù):
(1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始種群的生成函數(shù)
【輸出參數(shù)】
pop--生成的初始種群
【輸入?yún)?shù)】
num--種群中的個體數(shù)目
bounds--代表變量的上下界的矩陣
eevalFN--適應(yīng)度函數(shù)
eevalOps--傳遞給適應(yīng)度函數(shù)的參數(shù)
options--選擇編碼形式(浮點編碼或是二進制編碼)[precision F_or_B],如
precision--變量進行二進制編碼時指定的精度
F_or_B--為1時選擇浮點編碼,否則為二進制編碼,由precision指定精度)
(2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,。
。。
termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遺傳算法函數(shù)
【輸出參數(shù)】
x--求得的最優(yōu)解
endPop--最終得到的種群
bPop--最優(yōu)種群的一個搜索軌跡
【輸入?yún)?shù)】
bounds--代表變量上下界的矩陣
evalFN--適應(yīng)度函數(shù)
evalOps--傳遞給適應(yīng)度函數(shù)的參數(shù)
startPop-初始種群
opts[epsilon prob_ops display]--opts(1:2)等同于initializega的options參數(shù),第三個參數(shù)控制是否輸出,一般為0。
如[1e-6 1 0]
termFN--終止函數(shù)的名稱,如['maxGenTerm']
termOps--傳遞個終止函數(shù)的參數(shù),如[100]
selectFN--選擇函數(shù)的名稱,如['normGeomSelect']
selectOps--傳遞個選擇函數(shù)的參數(shù),如[0。
08]
xOverFNs--交叉函數(shù)名稱表,以空格分開,如['arithXover heuristicXover simpleXover']
xOverOps--傳遞給交叉函數(shù)的參數(shù)表,如[2 0;2 3;2 0]
mutFNs--變異函數(shù)表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']
mutOps--傳遞給交叉函數(shù)的參數(shù)表,如[4 0 0;6 100 3;4 100 3;4 0 0]
注意】matlab工具箱函數(shù)必須放在工作目錄下
【問題】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9
【分析】選擇二進制編碼,種群中的個體數(shù)目為10,二進制編碼長度為20,交叉概率為0。
95,變異概率為0。08
【程序清單】
%編寫目標函數(shù)
function[sol,eval]=fitness(sol,options)
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
%把上述函數(shù)存儲為fitness。
m文件并放在工作目錄下
initPop=initializega(10,[0 9],'fitness');%生成初始種群,大小為10
[x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',。
。。
[0。08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遺傳迭代
運算借過為:x =
7。8562 24。8553(當x為7。8562時,f(x)取最大值24。
8553)
注:遺傳算法一般用來取得近似最優(yōu)解,而不是最優(yōu)解。
你還是去圖書館找一下那本Matlab遺傳算法工具箱教程的書看看吧。
遺傳算法不一定可以在短時間內(nèi)收斂的,要看你的適應(yīng)度定義了,還有你的交叉、變異的參數(shù)都有關(guān)。
MATLAB遺傳算法工具箱及應(yīng)用
作者: 日期:
出版:西安電子科技大學出版社 精裝:膠版紙
開本: 版次:2005年4月第1版
頁數(shù): ISBN:756061484
原價:26。
0 元。
全部
總結(jié)
以上是生活随笔為你收集整理的matlab遗传算法输出参数太多,用遗传算法工具箱时错误提示太多输出参数?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] 如何使用CSS实现段落首字
- 下一篇: windows8 初始界面和功能