《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于MATLAB的遺傳算法實現

基于MATLAB的遺傳算法實現

2009-05-04
作者:殷 銘 張興華 戴先中

  摘 要: 運用MATLAB編程實現遺傳算法,數值仿真驗證了該實現方法的有效性,表明它能夠對函數進行全局尋優。這種實現方法既可以熟悉MATLAB語言,又可以加深對遺傳算法的認識和理解,以此來設計智能系統。
  關鍵詞: MATLAB 遺傳算法 優化


  遺傳算法(Genetic Algoritms,簡稱GA)是以自然選擇和遺傳理論為基礎,將生物進化過程中適者生存規則與群體內部染色體的隨機信息交換機制相結合的搜索算法。自從1975年John H.Holland教授出版GA的經典之作“Adaptation in Natural and Artificial Systems”以來,GA已獲得廣泛應用。

1 遺傳算法簡介
  遺傳算法是具有“生成+檢測”的迭代過程的搜索算法?;玖鞒倘鐖D1所示??梢?,遺傳算法是一種群體型操作,該操作以群體中的所有個體為對象。選擇(selection)、交叉(crossover)和變異(mutation)是遺傳算法的三個主要操作算子。遺傳算法包含如下6個基本要素:
  (1)參數編碼:由于遺傳算法不能直接處理解空間的解數據,因此必須通過編碼將它們表示成遺傳空間的基因型串結構數據。
  (2)生成初始群體:由于遺傳算法的群體型操作需要,所以必須為遺傳操作準備一個由若干初始解組成的初始群體。初始群體的每個個體都是通過隨機方法產生的。
  (3)適應度評估檢測:遺傳算法在搜索進化過程中一般不需要其他外部信息,僅用適應度(fitness)值來評估個體或解的優劣,并作為以后遺傳操作的依據。
  (4)選擇(selection):選擇或復制操作是為了從當前群體中選出優良的個體,使它們有機會作為父代為下一代繁殖子孫。個體適應度越高,其被選擇的機會就越多。本文采用與適應度成比例的概率方法進行選擇。具體地說,就是首先計算群體中所有個體適應度的總和(∑f),再計算每個個體的適應度所占的比例(fi/∑f),并以此作為相應的選擇概率ps。
  (5)交叉操作:交叉操作是遺傳算法中最主要的遺傳操作。簡單的交叉(即一點交叉)可分兩步進行:首先對種群中個體進行隨機配對;其次,在配對個體中隨機設定交叉處,配對個體彼此交換部分信息。
  (6)變異:變異操作是按位(bit)進行的,即把某一位的內容進行變異。變異操作同樣也是隨機進行的。一般而言,變異概率pm都取得較小。變異操作是十分微妙的遺傳操作,它需要和交叉操作配合使用,目的是挖掘群體中個體的多樣性,克服有可能限于局部解的弊病。
2 基于MATLAB的遺傳算法的實現
  為簡單起見,我們假設尋求一單變量函數F(x)的全局最優解,x對應于[a,b],下面介紹實現步驟。
2.1 初始化
  首先用二進制串表示初始種群中的個體,每一個體由一系列二進制位(0和1)組成,stringlength和popsize分別表示二進制序列的長度和初始種群的個體個數,每一個體用如圖2的方式來編碼,整個初始種群的數據結構由大小為popsize*(stringlength+2)的矩陣實現。
  


  第一列stringlength包括了初始真值x的二進制編碼,該串是隨機產生的,但必須滿足在x的定義域[a,b]中,交叉和變異操作將會對此串進行操作,第(stringlength+1)和(stringlength+2)列分別包含x真值和x的適應度函數F(x),于是用以下代碼實現初始化過程:
  function[pop]=initialise(popsize,stringlength,fun);
   pop=round(rand(popsize,stringlength+2));
   pop(:,stringlength+1)=sum(2.^(size(pop(;,1:stringlength),2)-1:-1:0).
  pop(:,1:stringlength)(b-a)/(2.^stringlength-1)+a;
  pop(:,stringlength+2)=fun(pop(;,stringlrngth+1);
  end
  在上面代碼中,首先隨機產生二進制串,然后用x的真值和目標函數填充到(stringlength+1)和(stringlength+2)中,其中fun為目標函數,以.m的文件形式存在。
2.2 交叉
  交叉過程選取兩個體作為父代parent1,parent2,產生出兩新的子代個體child1和child2,pc表示交叉概率,交叉算子的實現過程如下:
  function[child1,child2]=crossover(parent1,parent2,pc);
   if(rand<pc)
    cpoint=round(rand*stringlength-2))+1;
    child1=[parent(:,1:cpoint)parent2(:,cpoint1+1:stringlength)];
    child2=[parent2(:,1:cpoint)parent1(:,cpoint1+1:stringlength)];
    child1(:,stringlength+1)=sum(2.^(size(child1(:,1:stringlength),2)-1:-1:0).
    *child1(:,1:stringlength))*(b-a)/(2.^stringlength-1)+a;
    child2(:,stringlength+1)=sum(2.^(size(child2(:,1:stringlength),2)-1:-1:0).
    *child2(:,1:stringlength))*(b-a)/(2.^stringlength-1)+a;
    child1(:,stringlength+2)=fun(child1(:,stringlength+1));
    child2(:,stringlength+2)=fun(child1(:,stringlength+1));
   else
    child1=parent1;
    child2=parent2;
   end
  end
  在交叉過程的開始,先產生隨機數與交叉概率相比較,如果隨機數比pc小,則進行交叉運算,否則將不會進行交叉運算,直接返回父代。一旦進行交叉運算,交叉斷點cpoint將在1和stringlength之間選取,交叉點cpoint是由隨機函數在1和(stringlength-1)之間返回一偽隨機整數,于是獲得新的子代個體的真值和其適應度。
2.3 變異
  變異操作由一個父代parent產生單個子代child,pm表示變異概率,如果在目前父代允許變異的情況下,我們選擇變異點mpoint使該位取反,可同樣獲得新的子代的真值和適應度。
  function[child]=mutation(parent,pm);
  if(rand<pm)
  mpoint=round(rand*(stringlength-1))+1;
  child=parent;
  child[mpoint]=ads([parent[mpoint]-1);
  child(:,stringlength+1)=sum(2.^(size(child(:,1:stringlength),2)-1:-1:0).
  *child(:,1:stringlength))*(b-a)/(2.^stringlength-1)+a;
  child=(:,stringlength+2)=fun(child(:,stringlength+1);
  else
  child=parent;
  end
  end
2.4 選擇
  選擇或復制操作是決定哪些個體可以進入下一代。程序中采用賭輪盤選擇法選擇,這種方法較易實現。根據方程fi/∑f>0計算出每個個體被選擇的概率,向量prob包含了選擇概率之和,向量rns包含歸一化過的隨機數,經過比較rns和prob向量中的元素,我們可以選擇出進入下一代的個體。
  function[newpop]=roulette(oldpop);
  totalfit=sum(oldpop(:,stringlength+2);
  prob=oldpop(:,stringlength+2)/totalfit;
  prob=cumsum(prob);
  rns=sort(rand(popsize,1));
  fitin=1;newin=1;
  while newin<=popsize
  if(rns(newin)<prob(fitin))
  newpop(newin,:)=oldpop(fitin,:);
  newin=newin+1;
  else
  fitin=fitin+1;
  end
  end
3 仿真例
  為了驗證基于MATLAB設計的遺傳算法的全局尋優能力,舉例驗證??紤]一單變量函數為:
  f(x)=x+10*sin(5x)+7*cos(4x)????????? (2)
  x∈[0,9]。按照上述方法,取popsize=10,stringlength=20,pc=0.95,pm=.08。圖3為此函數的特性,圖中‘+’表示隨機產生的10個函數值;圖4中‘o’為經過一代遺傳,得到的尋優值;經過25代遺傳運算,得到函數的全局最大值,如圖5中的‘*’:即當x為7.8569時函數取得最大值24.8554。
  本文用MATLAB語言實現了遺傳算法的各項遺傳操作,如交叉、變異和選擇等,仿真例檢驗了該方法的有效性。采用這種方法既可以使大家熟悉MATLAB語言,又可以加深對遺傳算法的認識和理解,以此來設計智能系統。


參考文獻
1 D.E.Goldberg.Genetic algorithms in search,optimization and machine learning.Addison-Wesley,1989
2 孫增圻.智能控制理論與技術.北京:清華大學出版社,1997
3 席裕庚.遺傳算法綜述.控制理論及應用,1996,13(6):697-708
4 Y.J.Cao,Q.H.Wu.Teaching Genetic Algorithm Using MAT-LAB.Int.Journal Electrical Engineering on Education,1998(2):139-152

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美国产视频一区二区| 久久中文精品| 国产午夜精品在线| 亚洲精品美女| 国产精品一区二区欧美| 香蕉久久久久久久av网站| 影音先锋中文字幕一区| 欧美与黑人午夜性猛交久久久| 欧美成人免费一级人片100| 亚洲精品在线免费观看视频| 欧美欧美在线| 欧美成va人片在线观看| 亚洲第一免费播放区| 亚洲精品国偷自产在线99热| 一本久久知道综合久久| 欧美伊人久久久久久久久影院| 欧美中日韩免费视频| 亚洲——在线| 国产精品一香蕉国产线看观看| 国产精品xxxxx| 亚洲特级毛片| 久久国产精品久久久久久久久久| 日韩一二在线观看| 欧美一区深夜视频| 久久久久久婷| 欧美激情1区2区| 亚洲精品综合在线| 欧美一区在线看| 亚洲欧美一区二区三区久久| 欧美日本二区| 亚洲欧美一区二区原创| 欧美日韩中文在线观看| 久久一区免费| 亚洲日本中文字幕区| 国产亚洲精品久久久久久| 欧美精品一区三区在线观看| 亚洲自拍16p| 亚洲人成网站999久久久综合| 欧美a级一区二区| 欧美日韩国产综合在线| 国产精品视频免费| 亚洲免费观看视频| 亚洲日本成人网| 欧美国产在线电影| 一区二区高清在线观看| 国产一区二区剧情av在线| 国产精品久久久一区麻豆最新章节| 欧美色中文字幕| 亚洲精品一区在线观看| 亚洲桃花岛网站| 亚洲精品在线看| 精品51国产黑色丝袜高跟鞋| 亚洲精品少妇| 樱桃国产成人精品视频| 国产伦精品一区二区三区高清| 亚洲制服丝袜在线| 国产日韩欧美精品| 亚洲美女色禁图| 亚洲欧美成人综合| 一区在线影院| 久久久久久久久久码影片| 欧美一级二级三级蜜桃| 欧美全黄视频| 国产精品剧情在线亚洲| 欧美剧在线免费观看网站| 亚洲人体一区| 狂野欧美激情性xxxx欧美| 欧美激情精品久久久久久久变态| 先锋影音久久久| 欧美在线一二三四区| 欧美一区二区视频在线观看| 亚洲欧美福利一区二区| 亚洲国产综合在线看不卡| 亚洲在线国产日韩欧美| 国产精品久久久久天堂| 最新国产拍偷乱拍精品| 亚洲精品综合在线| 浪潮色综合久久天堂| 美女久久网站| 国产精品日韩电影| 国产精品av免费在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲一区二区欧美日韩| 久久国产一区二区| 久久不射网站| 国产精品美女主播在线观看纯欲| 欧美粗暴jizz性欧美20| 久久精品国产96久久久香蕉| 欧美激情导航| 国产视频在线观看一区二区| 欧美国产日韩在线观看| 国产在线视频欧美一区二区三区| 欧美色图天堂网| 亚洲欧美日韩国产综合在线| 欧美成人精品激情在线观看| 欧美精品一区视频| 一区二区三区欧美激情| 久久精品视频网| 欧美日韩国产在线| 美日韩免费视频| 亚洲成在线观看| 欧美剧在线观看| 国产精品一区二区男女羞羞无遮挡| 激情欧美一区二区三区| 久久午夜色播影院免费高清| 亚洲欧美国产制服动漫| 国产精品国产成人国产三级| 欧美高清在线播放| 亚洲免费观看在线视频| 午夜视频在线观看一区二区三区| 伊人天天综合| 国产午夜精品理论片a级大结局| 亚洲视频电影图片偷拍一区| 99精品国产在热久久| 亚洲电影毛片| 欧美日本中文字幕| 国产精品自拍在线| 欧美日韩蜜桃| 国产一区二区三区四区三区四| 国产欧美欧洲在线观看| 99在线观看免费视频精品观看| 国产精品呻吟| 欧美精品综合| 国产精品你懂得| 亚洲视频一二三| 在线成人亚洲| 牛人盗摄一区二区三区视频| 欧美精品v日韩精品v韩国精品v| 亚洲一区精品在线| 亚洲综合二区| 亚洲国产天堂久久综合网| 国产欧美日韩精品a在线观看| 亚洲人体1000| 欧美日韩精品一二三区| 欧美日韩和欧美的一区二区| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩免费观看一区二区三区| 亚洲精品视频在线观看免费| 欧美视频国产精品| 久久亚洲国产精品日日av夜夜| 欧美黄色大片网站| 亚洲欧洲偷拍精品| 国产三级欧美三级| 美女主播一区| 亚洲国产日韩欧美综合久久| 久久久一本精品99久久精品66| 国产精品二区三区四区| 日韩一区二区免费看| 亚洲精品一区二区在线| 亚洲综合导航| 狠狠色综合色综合网络| 国产精品私房写真福利视频| 在线欧美视频| 狠狠久久五月精品中文字幕| 国产在线视频欧美一区二区三区| 欧美日产国产成人免费图片| 欧美午夜免费影院| 欧美日韩国产成人在线91| 日韩亚洲欧美一区二区三区| 国产精品久久久久av| 欧美亚洲三区| 国产区日韩欧美| 国产精品久久午夜| 99国产欧美久久久精品| 亚洲国产精品视频| 欧美一区二区国产| 男女视频一区二区| 国产一区91| 亚洲国产综合91精品麻豆| 亚洲人成毛片在线播放| 欧美日韩伦理在线免费| 在线观看91精品国产入口| 伊人成人在线视频| 欧美亚洲视频在线看网址| 欧美精品一区三区| 日韩午夜电影| 国产日产精品一区二区三区四区的观看方式| 在线免费观看日本欧美| 欧美大片免费久久精品三p| 国产区在线观看成人精品| 亚洲国内高清视频| 欧美亚洲日本一区| 一区二区三区免费观看| 欧美激情一区二区三级高清视频| 好看的亚洲午夜视频在线| 欧美视频在线观看一区二区| 先锋影音国产精品| 亚洲一区bb| 亚洲精品一区二区三区蜜桃久| 久久综合国产精品| 国产亚洲欧美在线| 久久久免费精品视频| 欧美日韩免费精品| 国产亚洲精品久久久久久| 久久国产一区| 亚洲欧美国产一区二区三区| 久久频这里精品99香蕉| 欧美一区二区观看视频| 欧美高清自拍一区| 欧美电影专区| 夜夜精品视频一区二区| 亚洲电影在线播放| 欧美日韩三区四区| 最新国产拍偷乱拍精品| 亚洲一区中文字幕在线观看| 久久久国产成人精品| 国产精品magnet| 亚洲人成网站色ww在线| 亚洲精品日韩精品| 狠狠色狠狠色综合| 欧美日本免费一区二区三区| 国产在线观看一区| 在线欧美小视频| 国产欧美亚洲日本| 国产精品美女午夜av| 性欧美xxxx视频在线观看| 国产精品丝袜xxxxxxx| 亚洲影院在线| 国产精品qvod| 久久婷婷av| 亚洲精华国产欧美| 国产精品美女在线| 欧美午夜精品理论片a级按摩| 亚洲在线电影| 99国产精品视频免费观看一公开| 91久久极品少妇xxxxⅹ软件| 国产视频一区二区三区在线观看| 亚洲精品日韩久久| 91久久久久久久久久久久久| 欧美日韩久久久久久| 欧美高清不卡在线| 一本色道久久88精品综合| 国产一区二区日韩| 亚洲乱码久久| 欧美综合第一页| 免费黄网站欧美| 久久免费视频网站| 欧美制服丝袜第一页| 麻豆视频一区二区| 狠狠狠色丁香婷婷综合久久五月| 亚洲毛片在线看| 亚洲视频综合| 亚洲一区二区网站| 亚洲激情视频网站| 国产精品视频专区| 国产精品99久久久久久久vr| 99综合在线| 欧美日韩精品一区二区三区| 国产日韩欧美麻豆| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产人成精品一区二区三| 亚洲激情一区二区三区| 国产精品视频xxxx| 国产美女扒开尿口久久久| 久久精品女人的天堂av| 久久精品亚洲热| 日韩网站在线看片你懂的| 亚洲日本欧美日韩高观看| 欧美精品一区二区三| 亚洲自拍偷拍网址| 欧美日韩在线播放三区| 一本色道久久88综合亚洲精品ⅰ| 一区二区三区国产精华| 国产香蕉久久精品综合网| 亚洲精选在线| 欧美v亚洲v综合ⅴ国产v| 午夜精品久久久久久久| 欧美日韩亚洲综合| 嫩模写真一区二区三区三州| 一区二区日韩免费看| 久久精选视频| 欧美日韩伦理在线免费| 欧美va亚洲va香蕉在线| 亚洲一区二区免费在线| 欧美美女日韩| 亚洲精品在线一区二区| 国产日韩欧美在线一区| 欧美特黄一级大片| 亚洲全部视频| 性18欧美另类| 国产亚洲毛片在线| 午夜精品久久久久久| 欧美日韩三区| 亚洲婷婷在线| 欧美日韩精品高清| 欧美日韩大片一区二区三区| 久久精品国产999大香线蕉| 老司机亚洲精品| 在线一区免费观看| 欧美日韩精品一区二区天天拍小说| 老司机凹凸av亚洲导航| 在线欧美一区| 欧美大片国产精品| 日韩视频一区二区三区| 国产免费观看久久黄| 午夜在线一区二区| 日韩特黄影片| 激情视频一区| 极品尤物一区二区三区| 国产精品yjizz| 欧美精品一区二区高清在线观看| 欧美一级在线播放| 国产精品久久久久久久久久久久久| 欧美日韩一区在线视频| 国产情人综合久久777777| 久久精品国产69国产精品亚洲| 一区在线播放| 亚洲欧美日韩专区| 在线看片一区| 国产精品久久久久久五月尺| 国产精品久久久久久久app| 亚洲国产精品第一区二区三区| 国产亚洲精品bt天堂精选| 欧美r片在线| 国产精品欧美久久| 欧美性色综合| 国产精品人成在线观看免费| 玉米视频成人免费看| 影音先锋日韩资源| 欧美日韩亚洲一区二| 麻豆精品一区二区综合av| 国产精品久久久久99| 夜夜嗨av色一区二区不卡| 久久漫画官网| 久久亚裔精品欧美| aa成人免费视频| 国产综合色精品一区二区三区| 欧美精品首页|