遗传基因演算法GeneticAlgorithmGA.ppt
上传人:天马****23 上传时间:2024-09-10 格式:PPT 页数:29 大小:266KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

遗传基因演算法GeneticAlgorithmGA.ppt

遗传基因演算法GeneticAlgorithmGA.ppt

预览

免费试读已结束,剩余 19 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

簡介特色基本精神GA的使用:GA的演算法可以分為下列幾個步驟:工作流程基因演算法之演化流程圖基因運算子(Geneticoperators)基因運算子(Geneticoperators)基因運算子(Geneticoperators)基因運算子(Geneticoperators)基因運算子(Geneticoperators)基因運算子(Geneticoperators)基因參數(Geneticparameters):編碼及解碼二進位解碼value:位元串所代表的值Pmin:參數值的最小值Pmax:參數值的最大值D:位元串的十進位整數值L:位元串的長度二近位編碼基因演算法的流程圖Matlab之基因演算genbin(bits,pop):利用隨機方式產生一初始族群。bits代表染色體長度,pop為族群大小。方式1f(x)=ex+sin(3πx)我們定義上述函數為f803newpop=genbin(8,10)newpop=11000001000110010011101011110101111101101110100000000010101011010011101010101000selectga(fun,newpop,a,b):再製生產,字串依據合適值複製,所以在交配池內有較多之最合適的染色體有更高的機率。利用輪盤法選擇物種。fun為適應函數,newpop為新一代族群,a、b為區間範圍。selpool=selectga('f803',newpop,0,1)selpool=10101000000110011111011000111010111010001010100000000010111010000001100111000001matesome(newpop,matenum):我們要匹配新的族群成員,此函數我們用來選擇部份成員來交配。newpop為新一代族群,matenum為交配率newgen=matesome(selpool,0.6)newgen=10101010000110011111011000111010111010001010100100000010110000010001100111000001mutate(newpop,mu):有時合適性並未增加,我們不能預期每次都有改進,所以在重覆相同步驟週期前我們完成一道突變手續。newpop為新一代族群,mu為突變率,切記莫過於太大。newgen1=mutate(newgen,0.01)newgen1=10101010000110011111011000111010111010001010100100000010110000010001100111000001fitness(fun,newpop,a,b):我們利用此函數計算其合適性。fun為適應函數,newpop為新一代族群,a、b為區間範圍[fit,fitot]=fitness('f803',newgen1,0,1)fit=1.94771.90102.95062.09573.23521.90321.08172.88291.90102.8829fitot=22.7819[max,mostfit]=max(fit)max=3.2352mostfit=5xval=binvreal(newgen1(mostfit,:),0,1)xval=0.9098方式2:optga(fun,range,。bits,pop,gens,mu,matenum):此函數將所有步驟含在單一函數內。fun為適應函數,range為區間範圍,bits代表染色體長度,pop為族群大小,gens表示子代數,mu為突變率,matenum為交配率。[xval,max]=optga('f803',[01],8,10,1,0.01,0.6)chrom=00100100101011000000111010110001001011001100001001111110101101001000110110001000xval=0.8941max=3.2855討論:比較方式一及二,我們發現數據有些小小的差距,其實兩個方式是一樣的,會產生如此現象,最主要是我們初始值是採用隨機產生。只要我們計算代數越多,誤差的情況會越減少,不過,相對的所花費的時間也越多。特別注意突變率不宜過大,會影響值的正確性。基因演算法有兩個特徵︰交配互換基因和突變。通常基因演算法的執行速度較慢,但它可最佳應用至困難的問題,例如有多點最佳值,然而整體最佳值才是所需的。標準演算法在這時後常是失敗的,所以基因演算法花費較多時間是值得的。應注意