freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于matlab的遺傳算法研究及仿真-wenkub.com

2024-11-27 13:45 本頁面
   

【正文】 ); ylabel(39。 39。) legend(39。); %ylabel Y 軸名 %*************原函數(shù)和遺傳算法求得的最值點(diǎn)的綜合圖像 ****************** m=1; for i=0::4 %如果要求別的函數(shù)的 最 值 , 只要修改那個(gè)fitness_f 就行了 x(m)=i; % 保存 自變量 y(m)=fitness_f(i); % 函數(shù)值輸出量 m=m+1; end figure(3) plot(x, y) hold on %hold 當(dāng)前圖上重畫的切換開關(guān) scatter(X1_max, bfi, 39。); figure(2) plot(bfi_min); xlabel(39。 ga_maxmin(80, 100, 10, 4, 0, , ) y_Max = BestS = 1 1 1 1 1 1 1 1 1 1 x_max = 4 y_min = BestS_min = 0 1 0 1 0 1 1 1 0 1 x_min = y_1_max = y_1_min = 其原函數(shù)和遺傳算法求得的最值點(diǎn)的綜合圖像如圖 11 所示: 圖 11 原函數(shù)和遺傳算法求得的最值點(diǎn)的綜合圖像 附錄 解碼: function x_Max=uncodeing(CodeL, m, umax, umin) y1=0; % 解碼需要的初始值 m1=m(1:1:CodeL); % 編碼給 x_Max for i=1:1:CodeL %1:1:CodeL 指 從 1 到 CodeL 間隔是 1 y1=y1+m1(i)*2^(i1); % 計(jì)算編碼數(shù)值 由 2 進(jìn)制轉(zhuǎn)化為 10 進(jìn)制 end x_Max=(umaxumin)*y1/(2^CodeL1)+umin; % 要把該編碼化到要求范圍內(nèi) , 這其實(shí)是把編碼 和區(qū)間進(jìn)行了對(duì)應(yīng) ,01023 是編碼的范圍 ( 最大最小 值 一樣 的 , 所以就只寫最大值的) 適度函數(shù): function y=fitness_f(x) y=(sin(2*x)+cos(3*x))^3+2; % 給定函數(shù) , 即所求最大值函數(shù) %y_min=(sin(2*x_min)+cos(3*x_min))^3+2; % 給定函數(shù) , 即所求最小值函數(shù) ( 最大最小 值實(shí)質(zhì)上是 一樣 的 , 所以就只寫最大值的) 選擇: function y=select_reproduce(fi, Oderfi, Size, Indexfi, E) fi_sum=sum(fi); % 求出適應(yīng)度(函數(shù)值)之和 fi_Size=(Oderfi/fi_sum)*Size; % 找出優(yōu)秀編碼 (與平均值作比較 適應(yīng)度大于平均值的認(rèn)為優(yōu)秀) fi_S=floor(fi_Size); % floor 向負(fù)無窮取整 取整數(shù) 只舍不入 kk=1; for i=1:1:Size for j=1:1:fi_S(i) % 選擇復(fù)制 TempE(kk, :)=E(Indexfi(i), :); % 大于平均值的認(rèn)為是 優(yōu)秀的 保留 kk=kk+1; % 記錄復(fù)制個(gè)數(shù) end end y=TempE; %輸出復(fù)制結(jié)果 交叉: function y=crossover_operation(probability_crossover, Size, TempE, E, BestS, CodeL) pc=probability_crossover; % 交叉概率 n=ceil(CodeL*rand); % ceil 向正無窮取整 產(chǎn)生 0Size 的隨機(jī)數(shù) 作為一點(diǎn)交叉切斷處 for i=1:2:(Size1) % 上下兩個(gè)進(jìn)行交叉 所以每步兩個(gè) temp=rand; % 隨機(jī)產(chǎn)生數(shù)值 作為概率比較 if pctemp % 大于設(shè)定則進(jìn)行交叉 for j=n:1:CodeL % 從切斷點(diǎn)向后開始進(jìn)行交叉運(yùn)算 TempE(i, j)=E(i+1, j); %把 E 的第 i+1 行 j 列數(shù)值給 TempE 的第 i 行第 j 列 TempE(i+1, j)=E(i, j); end end end TempE(Size, :)=BestS; % 最大適應(yīng)度的編碼保存在最后 , Size, :表示第 Size 行 所有列 y=TempE; 變異: function y= mutation_operation(probability_mutation, Size, CodeL, TempE, BestS) pm=probability_mutation; % 變異概率 for i=1:1:Size % 對(duì)每行編碼查看是否變異 for j=1:1:CodeL % 對(duì)每個(gè)編碼進(jìn)行查看是否變異 temp=rand; % 產(chǎn)生變異概率 if pmtemp % 大于設(shè)定概率則進(jìn)行變異 TempE(i, j)=not(TempE(i, j)); % 如果該位置編碼為 0 就變?yōu)?1, 為 1就變成 0; end end end TempE(Size, :)=BestS; % 最大適應(yīng)度的編碼保存在最后 y=TempE; 主函數(shù): %ga_maxmin(80, 100, 10, 4, 0, , ) Function ga_maxmin=ga_maxmin(pop_size , gen_max, code_length, u_max, u_min,probability_crossover, probability_mutation) %Parameters %參數(shù) Size=pop_size; % 種群規(guī)模 G=gen_max; % 最大進(jìn)化代數(shù) CodeL=code_length; % 設(shè)定編碼長度 umax=u_max; % 最大值變量范圍 umin=u_min; % 最小值變量范圍 E_min=zeros(Size, CodeL); % 初始化最小值編碼 隨機(jī)產(chǎn)生 需要種群 *設(shè)定位數(shù)長度 二進(jìn)制編碼 并四舍五入 E_max=zeros(Size, CodeL); % 初始化最小值編碼 隨機(jī)產(chǎn)生 需要種群 *設(shè)定位數(shù)長度 二進(jìn)制編碼 并四舍五入 %Main Program %主程序 for k=1:1:G % 對(duì)每代進(jìn)行操作 time(k)=k; % 保存本次進(jìn)化 代序號(hào) for s=1:1:Size % 對(duì)每條編碼進(jìn)行尋優(yōu) m=E_max(s, :); % 提取當(dāng)前編碼 m_min=E_min(s, :); % 提取最小值部分當(dāng)前編碼 %%%%%%%%%解碼 x_max=uncodeing(CodeL, m, umax, umin); x_min=uncodeing(CodeL, m_min, umax, umin); %%%%%%%%%計(jì)算適應(yīng)度(函數(shù)值) F(1, s)=fitness_f(x_max); % 最大值部分 F(2, s)=x_max; % 最大值部分 保存對(duì)應(yīng)的 x 值 F_min(1, s)=fitness_f(x_min); % 最小值部分 F_min(2, s)=x_min; % 最小值部分 保存對(duì)應(yīng)的 x 值 end %Ji=1./F; % 求倒數(shù)得出當(dāng)前目標(biāo)函數(shù)值 fi=F(1, :); % 將適應(yīng)度傳遞給 fi fi_min=F_min(1, :); % 將最小值部分適應(yīng)度傳 fi_min [Oderfi, Indexfi]=sort(fi); % 將 fi 進(jìn)行排序 Oderfi: 由小到大的新排列 ; Indexfi :元素在原來數(shù)列中序號(hào) [Oderfi_min, Indexfi_min]=sort(fi_min); % 將最小值部分 fi_min 進(jìn)行排序 Oderfi_min: 由小到大的新排列 ; Indexfi_min :元素在原來數(shù)列中序號(hào) Bestfi=Oderfi(Size); % 得到最大適應(yīng)度的值 Bestfi_min=Oderfi_min(1); % 得到最小值部分最大適應(yīng)度的值 BestS=E_max(Indexfi(Size), :); % 得到最大適應(yīng)度所在排列中 序號(hào)所代表的編碼列 BestS_min=E_min(Indexfi_min(1), :); % 得到最小值部分最大適應(yīng)度所在排列中 序號(hào)所代表的編碼列 bfi(k)=Bestfi; % 保存本次代數(shù)所得到的最大函數(shù)值 X1_max(k)=F(2, Indexfi(Size)); % 保存本次代數(shù)所得到的最大函數(shù)值所對(duì)應(yīng)自變量值 bfi_min(k)=Bestfi_min; % 保存本次代數(shù)所得到的最小值部分函數(shù)值 X1_min(k)=F_min(2, Indexfi_min(1)); % 保存本次代數(shù)所得到的最小函數(shù)值所對(duì)應(yīng)自變量值 %****** Step 2 : 選擇復(fù)制運(yùn)算 ****** TempE_max=select_reproduce(fi, Oderfi, Size, Indexfi, E_max); TempE_min=sele
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1