導航:首頁 > 五金知識 > 遺傳工具箱演算法舉例

遺傳工具箱演算法舉例

發布時間:2021-03-05 01:54:30

⑴ 遺傳演算法工具箱的具體使用

matlab遺傳演算法工具箱函數及實例講解 核心函數:
(1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始種群的生成函數
【輸出參數】
pop--生成的初始種群
【輸入參數】
num--種群中的個體數目
bounds--代表變數的上下界的矩陣
eevalFN--適應度函數
eevalOps--傳遞給適應度函數的參數
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)--遺傳演算法函數
【輸出參數】
x--求得的最優解
endPop--最終得到的種群
bPop--最優種群的一個搜索軌跡
【輸入參數】
bounds--代表變數上下界的矩陣
evalFN--適應度函數
evalOps--傳遞給適應度函數的參數
startPop-初始種群
opts[epsilon prob_ops display]--opts(1:2)等同於initializega的options參數,第三個參數控制是否輸出,一般為0。如[1e-6 1 0]
termFN--終止函數的名稱,如['maxGenTerm']
termOps--傳遞個終止函數的參數,如[100]
selectFN--選擇函數的名稱,如['normGeomSelect']
selectOps--傳遞個選擇函數的參數,如[0.08]
xOverFNs--交叉函數名稱表,以空格分開,如['arithXover heuristicXover simpleXover']
xOverOps--傳遞給交叉函數的參數表,如[2 0;2 3;2 0]
mutFNs--變異函數表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']
mutOps--傳遞給交叉函數的參數表,如[4 0 0;6 100 3;4 100 3;4 0 0]
【問題】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9
【分析】選擇二進制編碼,種群中的個體數目為10,二進制編碼長度為20,交叉概率為0.95,變異概率為0.08
【程序清單】
%編寫目標函數
function[sol,eval]=fitness(sol,options)
x=sol(1);
eval=x+10*sin(5*x)+7*cos(4*x);
%把上述函數存儲為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)
註:遺傳演算法一般用來取得近似最優解,而不是最優解。
遺傳演算法實例2
【問題】在-5<=Xi<=5,i=1,2區間內,求解
f(x1,x2)=-20*exp(-0.2*sqrt(0.5*(x1.^2+x2.^2)))-exp(0.5*(cos(2*pi*x1)+cos(2*pi*x2)))+22.71282的最小值。
【分析】種群大小10,最大代數1000,變異率0.1,交叉率0.3
【程序清單】
%源函數的matlab代碼
function [eval]=f(sol)
numv=size(sol,2);
x=sol(1:numv);
eval=-20*exp(-0.2*sqrt(sum(x.^2)/numv)))-exp(sum(cos(2*pi*x))/numv)+22.71282;
%適應度函數的matlab代碼
function [sol,eval]=fitness(sol,options)
numv=size(sol,2)-1;
x=sol(1:numv);
eval=f(x);
eval=-eval;
%遺傳演算法的matlab代碼
bounds=ones(2,1)*[-5 5];
[p,endPop,bestSols,trace]=ga(bounds,'fitness')
註:前兩個文件存儲為m文件並放在工作目錄下,運行結果為
p =
0.0000 -0.0000 0.0055
大家可以直接繪出f(x)的圖形來大概看看f(x)的最值是多少,也可是使用優化函數來驗證。matlab命令行執行命令:
fplot('x+10*sin(5*x)+7*cos(4*x)',[0,9])

⑵ 用遺傳演算法工具箱求解一個多目標優化問題,現在需要一個matlab程序,求高人指點

用遺傳演算法工具箱求解一個多目標優化問題的步驟:

1、根據題意,建立自定專義目標函數,ga_fun1(x)

2、在命令窗屬口中,輸入

>> optimtool %調用遺傳演算法工具箱

3、在遺傳演算法工具箱界面中,分別對Fitnessfunction框內輸入@ga_fun1();A框內輸入[1,1,1];b框內輸入16;Aeq框內輸入[];beq框內輸入[];Lower框內輸入[0,0,0];Upper框內輸入[];

4、單擊Start。得到x=4.508 y=2.513 z=1.912值。

⑶ 請教一下,用遺傳演算法工具箱怎麼求下面函數的最小值

題主給出函數用遺傳演算法工具箱求其最小值,可以這樣來做:

1、自定義函數,並保存專為leijia.m文件。

2、在當前屬目錄下,執行 optimtool,打開最優化工具箱,再選擇遺傳演算法工具箱

3、按表中格式,輸入相關內容,最後執行可以得到

⑷ 有關怎麼應用matlab遺傳演算法工具箱計算實例的問題

你現在會了嗎,我也不會這個,能教教我嗎

⑸ matlab遺傳演算法工具箱里用的是哪種遺傳演算法

是Matrix
Laboratory公司自己聘人做出來的,就是最標準的遺傳演算法
不是那種什麼神經網路遺版傳演算法,也不是什權么遺傳退火演算法。
如果你自己有這類混雜演算法的工具箱,只能自己去下載第三方的工具箱,當然前提是有人編過
英國謝菲爾德大學有一套自己的遺傳演算法工具箱,比MATLAB默認功能強大一些,但是相對難用
如果你不是有什麼特殊的需求,默認的已經夠了

⑹ 如何調用MATLAB遺傳演算法工具箱

1、打開MATLAB軟體。

⑺ 遺傳演算法工具箱是什麼

遺傳工具箱是MATLAB中的一個工具,主要是用來求解優化問題的

⑻ 雷英傑編著的《MATLAB遺傳演算法工具箱及應用》第七章的第一個例子

程序倒數第六行應該是variable',還有注釋掉倒數12行。把hold on的分號都去掉。
figure(1);
fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);
nind=40;
maxgen=25;
preci=20;
ggap=0.9;
trace=zeros(2,maxgen);
fieldd=[20;-1;2;1;0;1;1];
chrom=crtbp(nind, preci);
gen=0;
variable=bs2rv(chrom,fieldd);
objv=variable.*sin(10*pi*variable)+2.0
while gen<maxgen
fitnv=ranking(-objv);
selch=select('sus',chrom,fitnv,ggap);
selch=recombin('xovsp',selch,0.7);
selch=mut(selch);
variable=bs2rv(selch,fieldd);
objvsel=variable.*sin(10*pi*variable)+2.0;
[chrom objv]=reins(chrom,selch,1,1,objv,objvsel);
gen=gen+1;
[y,i]=max(objv);
hold on;
%plot(variable(i),y,'bo')
trace(1,gen)=max(objv);
trace(2,gen)=sum(objv)/length(objv);
end
variable=bs2rv(chrom,fieldd);
hold on
grid;
plot(variable',objv','b*');
figure(2)
plot(trace(1,:)');
hold on
plot(trace(2,:)','-.');grid;
legend('解的變化','種群均值的變化')

閱讀全文

與遺傳工具箱演算法舉例相關的資料

熱點內容
福州五金機電在哪裡 瀏覽:530
雪佛蘭開拓者如何在儀表查油耗 瀏覽:855
大眾途觀換完機油怎麼消除儀表盤 瀏覽:217
超聲波機器壓不緊怎麼回事 瀏覽:856
設備上330是什麼意思 瀏覽:101
沃得500植保機械多少錢 瀏覽:686
魚線輪軸承數81是什麼意思 瀏覽:247
對什麼什麼做實驗裝置 瀏覽:333
機械設備安全防護裝置分類 瀏覽:156
學校檢查儀容儀表的部門叫什麼 瀏覽:197
鴻順德五金機電城7棟怎麼樣 瀏覽:524
如何更換汽車儀表盤的時間表 瀏覽:303
有什麼儀器可以隔牆傷人 瀏覽:3
輪軸承壽命多少公里 瀏覽:895
世嘉經典軸承間隔怎麼調整 瀏覽:369
現代機車採用什麼軸承軸箱 瀏覽:850
蒸氣閥門需要年檢嗎 瀏覽:163
水域救援器材配件有哪些 瀏覽:66
鋁鑄造砂眼氣孔怎麼回事 瀏覽:515
冰箱製冷液泄漏怎麼查 瀏覽:566