日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

利用神经网络 遗传算法求得函数极小极大值

發(fā)布時間:2025/4/16 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用神经网络 遗传算法求得函数极小极大值 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.



<span style="font-size:18px;">clc cleartic %% 訓練數(shù)據(jù)預測數(shù)據(jù)提取及歸一化 %下載輸入輸出數(shù)據(jù) load data1 input output%從1到2000間隨機排序 k=rand(1,4000); [m,n]=sort(k);%找出訓練數(shù)據(jù)和預測數(shù)據(jù) input_train=input(n(1:3900),:)'; output_train=output(n(1:3900),:)'; input_test=input(n(3901:4000),:)'; output_test=output(n(3901:4000),:)';%選連樣本輸入輸出數(shù)據(jù)歸一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train);%% BP網(wǎng)絡訓練 % %初始化網(wǎng)絡結構 net=newff(inputn,outputn,5);net.trainParam.epochs=100; net.trainParam.lr=0.1; net.trainParam.goal=0.0000004;%網(wǎng)絡訓練 net=train(net,inputn,outputn);%% BP網(wǎng)絡預測 %預測數(shù)據(jù)歸一化 inputn_test=mapminmax('apply',input_test,inputps);%網(wǎng)絡預測輸出 an=sim(net,inputn_test);%網(wǎng)絡輸出反歸一化 BPoutput=mapminmax('reverse',an,outputps);%% 結果分析figure(1) plot(BPoutput,':og') hold on plot(output_test,'-*'); legend('預測輸出','期望輸出','fontsize',12) title('BP網(wǎng)絡預測輸出','fontsize',12) xlabel('樣本','fontsize',12) ylabel('輸出','fontsize',12)%預測誤差 error=BPoutput-output_test;figure(2) plot(error,'-*') title('神經(jīng)網(wǎng)絡預測誤差')figure(3) plot((output_test-BPoutput)./BPoutput,'-*'); title('神經(jīng)網(wǎng)絡預測誤差百分比')errorsum=sum(abs(error))tocsave data net inputps outputps</span>


遺傳算法部分:


<span style="font-size:18px;">%% 該代碼為基于神經(jīng)網(wǎng)絡遺傳算法的系統(tǒng)極值尋優(yōu) %% 清空環(huán)境變量 clc clear%% 初始化遺傳算法參數(shù) %初始化參數(shù) maxgen=100; %進化代數(shù),即迭代次數(shù) sizepop=20; %種群規(guī)模 pcross=[0.4]; %交叉概率選擇,0和1之間 pmutation=[0.2]; %變異概率選擇,0和1之間lenchrom=[1 1]; %每個變量的字串長度,如果是浮點變量,則長度都為1 bound=[-5 5;-5 5]; %數(shù)據(jù)范圍individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %將種群信息定義為一個結構體 avgfitness=[]; %每一代種群的平均適應度 bestfitness=[]; %每一代種群的最佳適應度 bestchrom=[]; %適應度最好的染色體%% 初始化種群計算適應度值 % 初始化種群 for i=1:sizepop%隨機產(chǎn)生一個種群individuals.chrom(i,:)=Code(lenchrom,bound); x=individuals.chrom(i,:);%計算適應度individuals.fitness(i)=fun(x); %染色體的適應度 end %找最好的染色體 [bestfitness bestindex]=min(individuals.fitness); bestchrom=individuals.chrom(bestindex,:); %最好的染色體 avgfitness=sum(individuals.fitness)/sizepop; %染色體的平均適應度 % 記錄每一代進化中最好的適應度和平均適應度 trace=[avgfitness bestfitness]; %% 迭代尋優(yōu) % 進化開始 for i=1:maxgeni% 選擇individuals=Select(individuals,sizepop); avgfitness=sum(individuals.fitness)/sizepop;%交叉individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);% 變異individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);% 計算適應度 for j=1:sizepopx=individuals.chrom(j,:); %解碼individuals.fitness(j)=fun(x); end%找到最小和最大適應度的染色體及它們在種群中的位置[newbestfitness,newbestindex]=min(individuals.fitness);[worestfitness,worestindex]=max(individuals.fitness);% 代替上一次進化中最好的染色體if bestfitness>newbestfitnessbestfitness=newbestfitness;bestchrom=individuals.chrom(newbestindex,:);endindividuals.chrom(worestindex,:)=bestchrom;individuals.fitness(worestindex)=bestfitness;avgfitness=sum(individuals.fitness)/sizepop;trace=[trace;avgfitness bestfitness]; %記錄每一代進化中最好的適應度和平均適應度 end %進化結束%% 結果分析 [r c]=size(trace); plot([1:r]',trace(:,2),'r-'); title('適應度曲線','fontsize',12); xlabel('進化代數(shù)','fontsize',12);ylabel('適應度','fontsize',12); axis([0,100,0,1]) disp('適應度 變量'); x=bestchrom; % 窗口顯示 disp([bestfitness x]); </span>

《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的利用神经网络 遗传算法求得函数极小极大值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。