最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【BP預(yù)測(cè)】基生物地理算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)預(yù)附matlab代碼

2022-05-21 00:06 作者:Matlab工程師  | 我要投稿

1 簡(jiǎn)介

BP神經(jīng)網(wǎng)絡(luò)算法使用非常廣泛,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法雖然具有不錯(cuò)的擬合非線性函數(shù)的能力,但是容易陷入局部的極小值,并且傳統(tǒng)的算法收斂的速度慢.本篇文章詳細(xì)地論述了如何使用生物地理算法優(yōu)化傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法中初始的權(quán)值和閥值,通過(guò)相應(yīng)的驗(yàn)證和比較提出了該模型的有效性.

2 部分代碼

%BBO算法,主要是對(duì)消除重復(fù)樣本的操作進(jìn)行了改進(jìn),整理時(shí)間:2011.06.10clear allclose allG = 200; ? ? ? ? ? ? ? ? ? ? ? ? % 進(jìn)化代數(shù)Size = 50; ? ? ? ? ? ? ? ? ? ? ? % 種群規(guī)模pmodify = 1; ? ? ? ? ? ? ? ? ? ? % 遷移概率NumVar = 35; ? ? ? ? ? ? ? ? ? ? % 參數(shù)個(gè)數(shù)Keep = 3; ? ? ? ? ? ? ? ? ? ? ? ?% 精因個(gè)數(shù)pmutate = 0.05; ? ? ? ? ? ? ? ? ?% 變異概率lambdaLower = 0.0; ? ? ? ? ? ? ? % 對(duì)于每個(gè)基因的最小遷入率lambdaUpper = 1; ? ? ? ? ? ? ? ? % 對(duì)于每個(gè)基因的最大遷入率dt = 1; ? ? ? ? ? ? ? ? ? ? ? ? ?% 步長(zhǎng)I = 1; ? ? ? ? ? ? ? ? ? ? ? ? ? % 對(duì)于每個(gè)棲息地的最大遷入率e = 1; ? ? ? ? ? ? ? ? ? ? ? ? ? % 對(duì)于每個(gè)棲息地的最大遷出率%確定每個(gè)參數(shù)的取值范圍for i=1:1:NumVar ? ?MinX(i)=-32; ? ?MaxX(i)=32;end%初始化種群for i=1:1:NumVar ? ?E=MinX(i)+(MaxX(i)-MinX(i))*rand(Size,i);end%求適應(yīng)度值for i=1:1:Size ? ?Population(i).chrom=E(i,:); ? ?p=Population(i).chrom; ? ?Population(i).cost=Ackley(p);end%排序Population = PopSort(Population);%初始化種群概率for j = 1 : Size ? ?Prob(j) = 1 / Size; end%進(jìn)化開(kāi)始for kg = 1:1:G ? ?time(kg) = kg ; ? ? ?%保存最優(yōu)個(gè)體 ? ?for j = 1 : Keep ? ? ? ?chromKeep(j,:) = Population(j).chrom; ? ? ? ?costKeep(j) = Population(j).cost; ? ?end ? ?for i = 1 : length(Population) ? ? ? ?%求種群數(shù)量 ? ? ? ?if Population(i).cost < inf ? ? ? ? ? ?Population(i).SpeciesCount = Size - i; ? ? ? ?else ? ? ? ? ? ?Population(i).SpeciesCount = 0; ? ? ? ?end ? ? ? ?%計(jì)算每個(gè)棲息地的移入移出率 ? ? ? ?%余弦模型 ? ? ? ?lambda(i) = 0.5 * I * (cos(pi*Population(i).SpeciesCount / Size)+1); ? ? ? ?mu(i) = 0.5 * e * (-cos(pi*Population(i).SpeciesCount / Size)+1); ? ? ? ?%二次模型 ? ?% ? ? lambda(i) = ?I * (Population(i).SpeciesCount / Size -1)^2; ? ?% ? ? mu(i) = e * (Population(i).SpeciesCount / Size )^2; ? ? ? ?%指數(shù)模型 ? ?% ? ? lambda(i) = I * exp(-Population(i).SpeciesCount / Size); ? ?% ? ? mu(i) = e * exp(Population(i).SpeciesCount / Size - 1) ; ? ? ? ?%線性模型% ? ? ? ? lambda(i) = I * (1 - Population(i).SpeciesCount / Size);% ? ? ? ? mu(i) = e * Population(i).SpeciesCount / Size; ? ?end ? ?lambdaMin = min(lambda); ? ?lambdaMax = max(lambda); ? ?for k = 1:1 : Size ? ? ? ?if rand > pmodify ? ? ? ? ? ?continue; ? ? ? ?end ? ? ? ?%標(biāo)準(zhǔn)化移入率 ? ? ? ?lambdaScale = lambdaLower + (lambdaUpper - lambdaLower) * (lambda(k) - lambdaMin) / (lambdaMax - lambdaMin); ? ? ? ?%遷移操作,概率的輸入新的信息到棲息地i ? ? ? ?for j = 1 : NumVar ? ? ? ? ? ?if rand < lambdaScale ? ? ? ? ? ? ? ? ? ? ? ?RandomNum = rand * sum(mu); ? ? ? ? ? ? ? ?Select = mu(1); ? ? ? ? ? ? ? ?SelectIndex = 1; ? ? ? ? ? ? ? ?while (RandomNum > Select) & (SelectIndex < Size) ? ? ? ? ? ? ? ? ? ?SelectIndex = SelectIndex + 1; ? ? ? ? ? ? ? ? ? ?Select = Select + mu(SelectIndex); ? ? ? ? ? ? ? ?end ? ? ? ? ? ? ? ?Island(k,j) = Population(SelectIndex).chrom(j); ? ? ? ? ? ?else ? ? ? ? ? ? ? ?Island(k,j) = Population(k).chrom(j); ? ? ? ? ? ?end ? ? ? ?end ? ?end for j = 1 : 1 :Size ? ? ? ? %余弦模型 ? ? ? ?lambdaMinus = 0.5 * I * (cos(pi*(Population(j).SpeciesCount-1) / Size)+1); ? ? ? ?muPlus = 0.5 * e * (-cos(pi*(Population(j).SpeciesCount+1) / Size)+1); ? ? ? ?%二次模型% ? ? ? ? lambdaMinus = ?I * ((Population(j).SpeciesCount-1) / Size -1)^2;% ? ? ? ? muPlus = e * ((Population(j).SpeciesCount+1) / Size )^2; ? ? ? ?%指數(shù)模型% ? ? ? ? lambdaMinus = I * exp(-(Population(j).SpeciesCount-1) / Size);% ? ? ? ? muPlus = e * exp((Population(j).SpeciesCount+1) / Size - 1) ; ? ? ? ?%線性模型% ? ? ? ? lambdaMinus = I * (1 - (Population(j).SpeciesCount-1) / Size);% ? ? ? ? muPlus = e * (Population(j).SpeciesCount+1) / Size; ? ? ? ?if j < Size ? ? ? ? ? ?ProbMinus = Prob(j+1); ? ? ? ?else ? ? ? ? ? ?ProbMinus = 0; ? ? ? ?end ? ? ? ?if j > 1 ? ? ? ? ? ?ProbPlus = Prob(j-1); ? ? ? ?else ? ? ? ? ? ?ProbPlus = 0; ? ? ? ?end ? ? ? ?ProbDot(j) = -(lambda(j) + mu(j)) * Prob(j) + lambdaMinus * ProbMinus + muPlus * ProbPlus;end ? ?% 計(jì)算每個(gè)棲息地的種群數(shù)量概率P(si) ? ?Prob = Prob + ProbDot * dt; ? ?Prob = max(Prob, 0); ? ?Prob = Prob / sum(Prob); ? ?%變異操作 ? ?Pmax = max(Prob); ? ?MutationRate = pmutate * (1 - Prob / Pmax); ? ?for k = (Size/2): 1: Size ? ? ? ?for parnum = 1 : NumVar ? ? ? ? ? ?if MutationRate(k) > rand ? ? ? ? ? ? ? ?Island(k,parnum) = MinX(parnum)+(MaxX(parnum)-MinX(parnum))*rand; ? ? ? ? ? ?end ? ? ? ?end ? ?end ? ?for i=1:1:Size ? ? ? ?Q(i)=Ackley(Island(i,:)); ? ? ? ?if Q(i)<Population(i).cost ? ? ? ? ? ?Population(i).cost=Q(i); ? ? ? ? ? ?Population(i).chrom=Island(i,:); ? ? ? ?end ? ?end ? ?%排序 ? ?Population = PopSort(Population); ? ?for k = 1 : Keep ? ? ? ?Population(Size-k+1).chrom = chromKeep(k,:); ? ? ? ?Population(Size-k+1).cost = costKeep(k); ? ?end ? ?%對(duì)超出取值范圍的樣本進(jìn)行重新賦值 ? ?for i = 1 : Size ? ? ? ?for k = 1 : NumVar ? ? ? ? ? ?Population(i).chrom(k) = max(Population(i).chrom(k), MinX(k)); ? ? ? ? ? ?Population(i).chrom(k) = min(Population(i).chrom(k), MaxX(k)); ? ? ? ?end ? ?end ? ?%對(duì)相同的樣本進(jìn)行重新賦值 ? ?for i = 1 : length(Population) ? ? ? ?Chrom1 = sort(Population(i).chrom); ? ? ? ?for j = i+1 : length(Population) ? ? ? ? ? ?Chrom2 = sort(Population(j).chrom); ? ? ? ? ? ?if isequal(Chrom1, Chrom2) ? ? ? ? ? ? ? ?parnum = ceil(length(Population(j).chrom) * rand); ? ? ? ? ? ? ? ?Population(j).chrom(parnum) = min(Chrom1)+(max(Chrom2)-min(Chrom1))*rand; ? ? ? ? ? ?end ? ? ? ?end ? ?end ? ?BestJ(kg) = Population(1).cost; ? ?kg ?%進(jìn)化次數(shù) ? ?BestJ(kg)endb=Population(1).chrom;figure(1);plot(time,BestJ);title('最小誤差進(jìn)化過(guò)程')xlabel('進(jìn)化次數(shù)');ylabel('最小誤差');save BBO b;

3 仿真結(jié)果

4 參考文獻(xiàn)

[1]肖雄. PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)巖爆預(yù)測(cè)的Matlab實(shí)現(xiàn)[J]. 中國(guó)房地產(chǎn)業(yè), 2018(17):1.

博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無(wú)人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問(wèn)題可私信交流。

部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。



【BP預(yù)測(cè)】基生物地理算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)預(yù)附matlab代碼的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
凌云县| 平阳县| 叶城县| 沾化县| 喜德县| 克拉玛依市| 浪卡子县| 玉树县| 客服| 财经| 邯郸市| 西丰县| 阜阳市| 福建省| 海宁市| 浏阳市| 海盐县| 盖州市| 奈曼旗| 西城区| 旬邑县| 璧山县| 祁东县| 大名县| 泽州县| 镇沅| 玛沁县| 策勒县| 宾阳县| 肃南| 福海县| 陇川县| 永丰县| 平乡县| 旅游| 和政县| 武功县| 卓尼县| 若羌县| 雅江县| 潢川县|