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

正文內(nèi)容

遺傳算法畢業(yè)論文-遺傳算法在實際數(shù)值函數(shù)優(yōu)化問題中的應(yīng)用研究-其中以解決函數(shù)問題為例-資料下載頁

2025-01-11 05:00本頁面
  

【正文】 dechrom(pop5,1,chromlength)*10/1023。 pop=newpop。 end y(i) fplot(39。11*sin(6*x)+7*cos(5*x)39。,[0 2*pi]) grid on hold on 蘇州大學(xué) 自學(xué) 考試 畢業(yè)論文(設(shè)計) 29 plot(x,y,39。r*39。) hold off % 初始化 (編碼 ) % 函數(shù)的功能是實現(xiàn)群體的初始化, popsize 表示群體的大小, chromlength 表示染色體的長度 (二值數(shù)的長度 ), % 長度大小取決于變量的二進制編碼的長度 (在本例中取 8 位 )。 %遺傳算法子程序 %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength))。 % rand 隨機產(chǎn)生每個單元為 {0,1} 行數(shù)為 popsize,列數(shù)為 chromlength 的矩陣, %roud 對矩陣的每個單元進行圓整。 這樣產(chǎn)生的初始種群 % 計算目標函數(shù)值 % 將二進制數(shù)轉(zhuǎn)化為十進制數(shù) (1) %遺傳算法子程序 %產(chǎn)生 [2^n 2^(n1) ... 1] 的行向量,然后求和,將二進制轉(zhuǎn)化為十進制 function pop2=decodebinary(pop) [px,py]=size(pop)。 %求 pop 行和例數(shù) for i=1:py pop1(:,i)=2.^(py1).*pop(:,i)。 %pop 的每一個行向量(二進制表示), for 循環(huán)語句將每個二進制行向量按位置 py=py1。 % 乘上權(quán)重 end pop2=sum(pop1,2)。 %求 pop1 的每行之和,即得到每行二進制表示變?yōu)槭M制表示值,實現(xiàn)二進制到十進制的轉(zhuǎn)變 % 將二進制編碼轉(zhuǎn)化為十進制數(shù) (2) %函數(shù)的功能是將染色體 (或二進制編碼 )轉(zhuǎn)換為十進制,參數(shù) spoint 表示待解碼的二進制串的起始位置 蘇州大學(xué) 自學(xué) 考試 畢業(yè)論文(設(shè)計) 30 % (對于多個變量而言,如有兩個變量,采用 20 為表示,每個變量 10 為,則第 一個變量從1 開始,另一個變量從 11 開始。本例為 1), % 參數(shù) 1ength 表示所截取的長度(本例為 8)。 %遺傳算法子程序 %將二進制編碼轉(zhuǎn)換成十進制 function pop2=decodechrom(pop,spoint,length) pop1=pop(:,spoint:spoint+length1)。 %將從第“ spoint”位開始到第“ spoint+length1”位(這段碼位表示一個參數(shù))取出 pop2=decodebinary(pop1)。 %利用上面函數(shù)“ decodebinary(pop)”將用二進制表示的個體基因變?yōu)槭M制數(shù) % 計算目標函數(shù)值 %函數(shù)的功能是實現(xiàn)目標函數(shù)的計算,其公式采用本文示例仿真,可根據(jù)不同優(yōu)化問題予以修改。 %遺傳算法子程序 %實現(xiàn)目標函數(shù)的計算 function [objvalue]=calobjvalue(pop) temp1=decodechrom(pop,1,8)。%將 pop 每行轉(zhuǎn)化成十進制數(shù) x=temp1*10/1023。%將二值域 中的數(shù)轉(zhuǎn)化為變量域 的數(shù) objvalue=11*sin(6*x)+7*cos(5*x)。%計算目標函 數(shù)值 % 計算個體的適應(yīng)值 %遺傳算法子程序 %計算個體的適應(yīng)值 function fitvalue=calfitvalue(objvalue) global Cmin。 Cmin=0。 [px,py]=size(objvalue)。 for i=1:px if objvalue(i)+Cmin0 temp=Cmin+objvalue(i)。 蘇州大學(xué) 自學(xué) 考試 畢業(yè)論文(設(shè)計) 31 else temp=。 end fitvalue(i)=temp。 end fitvalue=fitvalue39。 % 選擇復(fù)制 % 選擇 或復(fù)制操作是決定哪些個體可以進入下一代。程序中采用賭輪盤選擇法選擇,這種方法較易實現(xiàn)。 % 根據(jù)方程 pi=fi/∑ fi=fi/fsum ,選擇步驟: % 1)在第 t 代,由( 1)式計算 fsum 和 pi % 2)產(chǎn)生 {0,1} 的隨機數(shù) rand( .),求 s=rand( .)*fsum % 3)求 ∑ fi≥ s 中最小的 k ,則第 k 個個體被選中 % 4)進行 N 次 2)、 3)操作,得到 N 個個體,成為第 t=t+1 代種群 %遺傳算法子程序 %選擇復(fù)制 function [newpop]=selection(pop,fitvalue) totalfit=sum(fitvalue)。%求適應(yīng)值之和 fitvalue=fitvalue/totalfit。%單個個體被選擇的概率 fitvalue=cumsum(fitvalue)。 %如 fitvalue=[1 2 3 4],則 cumsum(fitvalue)=[1 3 6 10] [px,py]=size(pop)。 ms=sort(rand(px,1))。 %從小到大排列,將 rand(px,1)產(chǎn)生的一列隨機數(shù)變成輪盤賭形式的表示方法 ,由小到大排列 fitin=1。 %fivalue 是一向量, fitin 代表向量中元素位,即 fitvalue(fitin)代表第 fitin 個個體的單個個體被選擇的概率 newin=1。 %同理 while newin=px if(ms(newin))fitvalue(fitin) %ms(newin)表示的是 ms 列向量中第 newin位數(shù)值,同理 fitvalue(fitin) newpop(newin,:)=pop(fitin,:)。 %賦值 ,即將舊種群中 的第 fitin 個個體保留到下一代蘇州大學(xué) 自學(xué) 考試 畢業(yè)論文(設(shè)計) 32 (newpop) newin=newin+1。 else fitin=fitin+1。 end end % 交叉 % 交叉 (crossover),群體中的每個個體之間都以一定的概率 pc 交叉,即兩個個體從各自字符串的某一位置 % (一般是隨機確定)開始互相交換,這類似生物進化過程中的基因分裂與重組。例如,假設(shè) 2 個父代個體 x1, x2 為: % x1=0100110 % x2=1010001 % 從每個個體的第 3 位開始交叉,交又后得到 2 個新的子代個體 y1, y2 分別為: % y1= 0100001 % y2= 1010110 % 這樣 2 個子代個體就分別具有了 2 個父代個體的某些特征。利用交又我們有可能由父代個體在子代組合成具有更高適合度的個體。 % 事實上交又是遺傳算法區(qū)別于其它傳統(tǒng)優(yōu)化方法的主要特點之一。 %遺傳算法子程序 %交叉 function [newpop]=crossover(pop,pc) [px,py]=size(pop)。 newpop=ones(size(pop))。 for i=1:2:px1 if(randpc) cpoint=round(rand*py)。 newpop(i,:)=[pop(i,1:cpoint) pop(i+1,cpoint+1:py)]。 newpop(i+1,:)=[pop(i+1,1:cpoint) pop(i,cpoint+1:py)]。 else 蘇州大學(xué) 自學(xué) 考試 畢業(yè)論文(設(shè)計) 33 newpop(i,:)=pop(i,:)。 newpop(i+1,:)=pop(i+1,:)。 end end % 變異 % 變異 (mutation),基因的突變普遍存在于生物的進化過程中。變異是指父代中的每個個體的每一位都以概率 pm 翻轉(zhuǎn),即由“ 1”變?yōu)椤?0”, % 或由“ 0”變?yōu)?“ 1”。遺傳算法的變異特性可以使求解過程隨機地搜索到解可能存在的整個空間,因此可以在一定程度上求得全局最優(yōu)解。 %遺傳算法子程序 %變異 function [newpop]=mutation(pop,pm) [px,py]=size(pop)。 newpop=ones(size(pop))。 for i=1:px if(randpm) %產(chǎn)生一隨機數(shù)與變異概率比較 mpoint=round(rand*py)。 if mpoint=0 mpoint=1。 end newpop(i,:)=pop(i,:)。 if any(newpop(i,mpoint))==0 newpop(i,mpoint)=1。 else newpop(i,mpoint)=0。 end else newpop(i,:)=pop(i,:)。 end end 蘇州大學(xué) 自學(xué) 考試 畢業(yè)論文(設(shè)計) 34 % 求出群體中最大 的 適應(yīng)值及其個體 %遺傳算法子程序 %求出群體中適應(yīng)值最大的值 function [bestindividual,bestfit]=best(pop,fitvalue) [px,py]=size(pop)。 bestindividual=pop(1,:)。 bestfit=fitvalue(1)。 for i=2:px if fitvalue(i)bestfit bestindividual=pop(i,:)。 bestfit=fitvalue(i)。 end end % 求出最佳個體的對應(yīng) X 值是多少 %遺傳算法子程序 %求出最佳個體的對應(yīng) X 值 function t=decodebinary2(pop) [px,py]=size(pop)。 for j=1:py。 pop1(:,j)=2.^(py1).*pop(:,j)。 py=py1。 end temp2=sum(pop1,2)。 t=temp2*2*pi/1023。
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1