毕业设计(论文)-基于小波变换的图像去噪方法研究报告附MATLAB程序x_第1页
毕业设计(论文)-基于小波变换的图像去噪方法研究报告附MATLAB程序x_第2页
毕业设计(论文)-基于小波变换的图像去噪方法研究报告附MATLAB程序x_第3页
毕业设计(论文)-基于小波变换的图像去噪方法研究报告附MATLAB程序x_第4页
毕业设计(论文)-基于小波变换的图像去噪方法研究报告附MATLAB程序x_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于小波变换的图像去噪方法的研究摘要图像在生成和传输的过程中会受到各种噪声的干扰,对信息的处理、传输和存储造成极大的影响。寻求一种既能有效地减小噪声,又能很好地保存图像边缘信息的方法,是人们一直追求的目标。小波分析是局部化时频分析,它用时域和频域联合表示信号的特征,是分析非平稳信号的有力工具。它通过伸缩、平移等运算功能对信号进行多尺度细化分析,能有效地从信号中提取信息。本文对基于小波变换的图像去噪方法进行了研究分析, 详细介绍了其去噪原理和算法,分析了去噪过程中参数的选取问题,并给出了一些选取依据;详细介绍了小波系数相关性去噪方法的原理和算法。最后对均值滤波、中值滤波和维纳滤波方法在高斯噪声下

2、进行了分析比拟,并给出了仿真实验结果,结果证明小波去噪十分有效,其结果好于其它3种滤波。关键词: HYPERLINK :/cdmd ki /Article/%09%09%09%09%09%09%09%09%09%09 :/search ki /Search.aspx?q=%E5%B0%8F%E6%B3%A2%E5%8F%98%E6%8D%A2 t _blank 小波变换, HYPERLINK :/cdmd ki /Article/%09%09%09%09%09%09%09%09%09%09 :/search ki /Search.aspx?q=%E5%9B%BE%E5%83%8F%E5%8E%

3、BB%E5%99%AA t _blank 图像去噪, HYPERLINK :/cdmd ki /Article/%09%09%09%09%09%09%09%09%09%09 :/search ki /Search.aspx?q=%E9%98%88%E5%80%BC t _blank 阈值, HYPERLINK :/cdmd ki /Article/%09%09%09%09%09%09%09%09%09%09 :/search ki /Search.aspx?q=%E9%98%88%E5%80%BC%E5%87%BD%E6%95%B0 t _blank 阈值函数1引言数字图像在我们日常生活中起着

4、非常重要的作用,它与我们的日常生活息息相关,例如在卫星、电视、核磁共振、计算机视觉、地球信息系统以及天文学中应用非常广泛。但是一般情况下采集到的数字图像是含有噪声的。噪声1可以理解为“阻碍人们感觉器官对所接收的信源信息理解的因素。图像在生成和传输的过程中灰受到各种噪声的干扰,对信号的处理、传输和存储造成极大的影响。数字图像之所以含有噪声这是因为在图像的采集、获取、编码和传输的过程中,所有的图像均不同程度地被可见或不可见的噪声“污染。对于这种“污染,如果信噪比(SNR)低于一定水平,就会影响图像场景内容的表示,直接导致图像质量的下降。除了视觉质量上下降外,噪声还可能掩盖一些重要的图像细节,使图像

5、的熵增大,从而对于图像数据的有效压缩起到了一定的阻碍作用。对于图像在采集、获取过程造成的“污染,我们虽然尽量提高硬件设备以获取质量更高的图像,但图像传感器的截止频率总是有一定的,受硬件水平和价格的限制,且图像在编码和传输过程中造成的“污染,必需采取有效的降噪技术才能提高图像的质量。对图像进行去噪最初主要是在空域内进行的,图像空域去噪方法很多,主要是通过各种滤波器对图像进行去噪。例如均值滤波器、顺序统计滤波器、维纳滤波器等。为了进一步提高去噪的效果,在变换域中进行降噪处理成为有效的方法,图像变换域去噪就是对图像进行某一种变换,然后将图像从时域变换到变换域中,再对变换域中的图像变换系数按照某种方法

6、进行处理,最后再对处理后的系数按照某种方法进行反变换,这样就实现了将图像去除图像噪声的目的。将图像从时域转换到变换域的变换方法很多,例如傅立叶变换、小波变换等等。小波变换是在短时傅立叶变换的根底上开展起来的一种新型的变换方法。小波变换具有多分辨率分析的特点,在时域、频域都具有较强的表征信号局部特征的能力,因此基于小波分析的图像去噪技术已成为图像去噪的一个重要方法。本文采用小波阈值去噪的方法,从去噪的效果上比拟了多种去噪方法的优劣,实验证明小波去噪在图像噪声处理中起到很好的效果。2小波变换概述2.1 小波变化去噪技术研究现状上个世纪八十年代Mallet 提出了 MRA(Multi_Resolut

7、ion Analysis),并首先把小波理论运用于信号和图像的分解与重构,利用小波变换模极大值原理进行信号的奇异性检测,提出了交替投影算法用于信号重构,为小波变换用于图像处理奠定了根底1。后来,人们根据信号与噪声在小波变换下模极大值在各尺度上的不同传播特性,提出了基于模极大值去噪的根本思想。1992年,Donoho和Johnstone提出了“小波收缩,它较传统的去噪方法效率更高。“小波收缩被 Donoho和Johnstone证明是在极小化极大风险中最优的去噪方法,但在这种方法中最重要的就是确定阈值。1995年,Stanford大学的学者和提出了通过对小波系数进行非线性阈值处理来降低信号中的噪声

8、2。从这之后的小波去噪方法也就转移到从阈值函数的选择或最优小波基的选择出发来提高去噪的效果。影响比拟大的方法有以下这么几种:和提出的基于最大后验概率的贝叶斯估计准那么确定小波阈值的方法3;等在处理断层图像时提出了三种基于小波相位的去噪方法:边缘跟踪法、局部相位方差阈值法以及尺度相位变动阈值法;学者Kozaitis结合小波变换和高阶统计量的特点提出了基于高阶统计量的小波阈值去噪方法4;等利用原图像和小波变换域中图像的相关性用GCV(general cross- validation)法对图像进行去噪;和Woolsey等人提出结合维纳滤波器和小波阈值的方法对信号进行去噪处理5,Vasily Str

9、ela等人将一类新的特性良好的小波(约束对)应用于图像去噪的方法6;同时,在19世纪60年代开展的隐马尔科夫模型(Hidden Markov Model),是通过对小波系数建立模型以得到不同的系数处理方法;后又有人提出了双变量模型方法7,它是利用观察相邻尺度间父系数与子系数的统计联合分布来选择一种与之匹配的二维概率密度函数。这些方法均取得了较好的效果,对小波去噪的理论和应用奠定了一定的根底。小波具有低墒性、多分辨率、去相关性、选基灵活性等特点。2.2 连续小波变换1. 小波基函数所谓小波(Wavelet),即存在于一个较小区域的波。小波函数的数学定义是:设为一平方可积函数,即,假设其傅立叶变换

10、满足:时,那么称为一个根本小波或小波母函数,并称上式是小波函数的可容许条件。根据小波函数的定义,小波函数一般在时域具有紧支集或近似紧支集,即函数的非零值定义域具有有限的范围,这即所谓“小的特点;另一方面,根据可容许性条件可知,即直流分量为零,因此小波又具有正负交替的波动性。将小波母函数进行伸缩和平移,设其伸缩因子(亦称尺度因子)为,平移因子为,并记平移伸缩后的函数为,那么:并称为参数和小波基函数。由于和均取连续变换的值,因此又称为连续小波基函数,它们是由同一母函数经伸缩和平移后得到的一组函数系列。2. 连续小波变换将空间的任意函数在小波基下进行展开,称其为函数的连续小波变换CWT,变换式为:2

11、.3当小波的容许性条件成立时,其逆变换为:2.4其中为的容许性条件。另外,在小波变换过程中必须保持能量成比例,即:2.5由CWT的定义可知,小波变换和傅立叶变换一样,也是一种积分变换,其中为小波变换系数。可见小波变换对函数在小波基上的展开具有多分辨率的特性,这种特性正是通过缩放因子和平移因子来得到的。一个一维函数的连续小波变换是一双变量的函数,变量比多一个,因此称连续小波变换是超完备的,因为它要求的存储量和它代表的信息量都显著增加了。对于变量超过一个的函数来说,这个变换的维数也将增加。假设是一个二维函数,那么它的连续小波变换是:2.6其中,表示在两个维度上的平移,二维连续小波逆变换为:2.7同

12、样的方法可以推广到两个或两个以上的变量函数上。2.3 离散小波变换计算机中的图像信息是以离散信号形式存放的,所以需要将连续小波变换离散化。而最根本的离散化方法就是二进制离散,一般将这种经过离散化的小涉及其变换叫做二进小波和二进变换。需要注意的是这里的离散化都是针对连续的尺度因子和连续平移因子的,而不是针对时间的。这儿限制尺度因子总是正数。尺度与位移的离散化对连续小波基函数尺度因子和平移因子进行离散化可以得到离散小波变换,从而减少小波变换系数的冗余度。在离散化时通常对尺度因子和平移因子按幂级数进行离散化,即取为整数,但一般都假定,得到离散小波函数为:2.8其对应系数为:2.9二进制小波变换二进小

13、波变换是一种特殊的离散小波变换,特别地令参数,那么有。该二进尺度分解的原理在二十世纪三十年代由 Littlewood 和 Paley 在数学上进行了研究证明。离散小波变换为:0离散二进小波变换为:1二维离散小波变换:我们考虑二维尺度函数是可别离的情况,也就是:2设是与对应的一维小波函数,那么有:345以上三式就建立了二维小波变换的根底。图像的小波变换及Mallat算法图像是二维信号,二维多分辨率分析与一维类似,但空间变成,一维中引入的尺度函数变为。设是的一个多分辨率分析,那么可以证明,张量空间:构成的一个多分辨率分析,并且二维多分辨率分析的二维尺度函数为 (2.16)式中:是尺度函数(一维)。

14、式(2.28)说明了二维尺度函数的可别离性。对于每一个,函数系构成的标准正交基,这里下标j,n,m的含义是:2.17我们将称为的可别离多分辨率分析。因、都是低通的尺度函数,所以平滑的低通空间。如果是一维多分辨率分析的正交小波基,那么二维多分辨率分析的三个小波函数为:2.18对于每一个,它们的整数平移系为:2.19注意这里的上标只是索引而不是指数。它们构成了的标准正交基。因此以上的三个正交基中都至少包含一个带通的或,所以它们都是带通的。也就是说这三局部反响的都是细节信息。具体来说,函数系,是的正交归一基,其中均为整数,=1,2,3分别对应于水平、垂直和对角三个方向。对于任一二维图像信号,在分辨率

15、下有: 2.20上式说明,在分辨率上将图像分解成、和四个子图,其中代表原图像在分辨率上的近似即图像的低频局部,不妨用LL来表示,那么代表这种近似的误差即图像的高频局部或“细节局部;对应于垂直方向的高频成分,即水平的边缘细节信息不妨用LH表示;对应于水平方向的高频成分,即垂直的边缘细节信息不妨用HL表示;那么对应于对角方向的高频成分不妨用HH表示。图2.1形象地表示了二维图像的多分辨率小波分解。图中符号的上标表示图像的小波分解层数,图中示意了图像的2级小波分解。可以看到,在每一分解层上,图像均被分解为LL, LH, HL和HH的四个频带;下一层的分解仅对低频分量LL进行分解。f (x , y)L

16、L11LL2LH2HL2HH2LH1HL1HH1(a) 图像的小波树形分解LL2HL2 LH2HH2HL1LH1HH1(b) 图像小波分解的塔型结构图2.1二维图像的小波分解按照Mallat的快速算法,图像的小波分解算法如图2.2所示:GHGHGHX与滤波器X卷积H低通滤波器G高通滤波器从两列中取一列从两行中取一行图2.2图像的小波分解算法图2.2示意了图像的一步小波分解过程,可以看到:二维图像的小波分解可以对图像依次按行、按列与一维的低通(H)和高通(G)滤波器作卷积来实现,在卷积之后进行相应的降2采样。图像小波分解的重构算法如图2.3所示。HGXGHHG与滤波器X卷积H低通滤波器G高通滤波

17、器在相邻两列间插入一列零在相邻两行间插入一行零图2.3图像的小波重构算法图2.3示意了小波分解图像的一步重构过程,小波分解图像的重构是先对列或行进行升2采样(在相邻列或行间插入一零列或零行),然后再按行、按列与一维的低通或高通滤波器进行卷积,这样递推下去便可重构原图像。二维图像的这种行、列可别离性简化了图像的小波变换。3小波阈值去噪3.1阈值函数的选取在阈值去噪中,阈值函数表达了对超过和低于阈值的小波系数模的不同处理策略以及不同估计方法。常用的阈值函数有硬阈值函数和软阈值函数两种8-9。硬阈值策略保存大于闽值的小波系数,而把小于阈值的小波系数都设定为零。软阈值策略把小于闽值的小波系数置零,把大

18、于阈值的小波系数的绝对值减去阈值以除去噪声的影响。设A为元素小波系数,t为阈值,两种阈值函数的表达式分别如下:硬阈值函数:3.1软阈值函数:3.2-ttAt-tAa硬阈值b软阈值硬阈值法得到的小波系数的连续性较差,重构信号可能出现突变或振荡现象;如图3.2a所示。软阈值法的到的小波系数的连续性好,但当小波系数较大时,得到的处理后的小波系数和实际的小波系数有一定的偏差,会导致重构结果的误差。如图3.2b所示。图3.2 两种阈值方法3.2阈值的选取小波阈值去噪方法除了阈值函数的选取,另一个关键因素是对阈值的具体估计。如果阈值较小,去噪后的图像信号与输入比拟接近,但是残留了较多噪声。假设阈值较大,那

19、么得到较多为零的小波系数,对于软阈值策略重建图像变得模糊。在小波域阈值去噪中,阈值的选取直接影响滤波效果。本文用了2种的阈值估计方法。Visushrink阈值也称通用阈值,是Donoho和Johnstone提出的,针对多维独立正态变量联合分布,在维数趋于无穷是得出的结论,是基于最小最大估计得出的最优阈值10。阈值t的选择满足3.3其中,N为信号长度,为噪声标准差。的估计公式如下:3.4Surehrink阈值也称Stein无偏风险阈值,是一种基于Stein的无偏似然估计的自适应阈值选择s53,它是针对软阈值函数得出的结论。SureShrink阈值的具体计算过程如下:= 1 * GB3求取信号的长

20、度N;= 2 * GB3将某一层的小波系数的绝对值由小到大排列,得打一个新的向量,X=x1,x2,x3,xN,其中x1x2x320 ?NJ=3, coif2小波3层分解噪声图J=4,coif2小波4层分解噪声图提取1,2,3层小波系数提取1,23,4层小波系数对横、竖、斜三个尺度进行软阈值去噪小波重构输出去噪图像本文采用了小波基为coif2的小波分解法,以及以上2中阈值去噪法,过程如下:图3.4本文小波去噪流程图4实验仿真及结论本文为说明小波去噪的有效性和优越性,对含有高斯白噪声的Lenna图像进行消噪处理,其中噪声平均为0,方差为,。为了客观评价噪声图像的噪声污染度,以及各种去噪方法的效果,

21、本文引用了峰值信噪比PSNR:4.1式中I(i,j)和I(i,j)分别是有噪图像和原始理想图像在点i,j处的灰度值,m、n分别表示图像的行数和列数。由于在各方差噪声下,噪声图像的峰值信噪比均小于20,所以小波尺度取J=4。本文对方差为噪声图像进行小波系数分解,得到下列图:图4.SEQ 图表 * ARABIC1小波系数分解图本文分别用小波去噪、均值去噪、中值去噪和维纳去噪对8位的255灰度值的Lena图像进行去噪处理,结果图如下所示:图去噪效果图此外,本文也对多个方差的噪声进行去噪处理,并得出PSNR值进行比照,如下表所示。表4.1 各种去噪方法的PSNR值比拟实验序号噪声方差噪声图像PSNR均

22、值滤波PSNR中值滤波PSNR维纳滤波PSNR小波去噪PSNR123456通过以上结果分析可知,小波阈值去噪的效果较均值滤波、中值滤波和维纳滤波效果都好。参考文献1 杨福生.小波变换的工程分析与应用.北京:科学出版社,1999:150-176.2 阮秋琦.数字图像处理学M.第二版.北京.电子工业出版社3 , 57:301-369.4 D.L.Donoho, I.M.Johnstone. Ideal Time-Frequency Denoising. Standford University,Technical Report, Dept. of Statistics,1994:3397-3415

23、.5 张晔,黄秀明.小波变换及在图像处理中的小波特性分析J.中国图像图形学报,1997,2(7):480-484.6 Elwood T.Olsen, Biquan Lin. A Wavelet Phase Filter for Emission Tomography. SPIE,1996,2491:829-839.7 Kozaitis, Basuhail. Adaptive Wavelet Threshold Selection Using Higher Order Statistics for Signal Denoising. SPIE,1998,3391:68-74.9 Shubhank

24、ar R,Bani K.A Bayesian transformation model for wavelet shrinkage. IEEE Trans. on IP.2003.12(12).1512-152011 张磊,潘泉,张洪才,戴冠中,小波域滤波阈值参数的选取,电子学报, 2001,3,29(3).12 Xu Chen, Zhao Ruizhen, Gan Xiaobing. ApplicationAlgorithm of Wavelet AnalysisM. Beijing:Science Press,2004.13 Chao Rui, Zhang Ke, Li Yanjun. A

25、 Wavelet TransformBased Image Fusion MethodJ.Acta Electronica Sinica,2004,32(5):750-753.14 Gai Li-ping,Wang Gui-lian. HYPERLINK :/d.wanfangdata /Periodical_ylwszb200706022.aspx Technology of filtering in medical image processingJ.ChineseMedical EquipmentJournal,2007,(06):50-51.15 Gao Qing-wei,Li Bin

26、. HYPERLINK :/d.wanfangdata /Periodical_jsjyjyfz200212023.aspx An image de-noising method based on stationary wavelet transformJ.Journal of Computer Research and Development,2002,(12):1689-1693.TSP题目程序说明1、主函数:运行20次2、次函数:备注:1、可以直接运行,其结果是一次遗传算法计算产生的解。9198的注释符“%去掉可以,显示一个最优解并画图2、种群大小在该函数中修改。3、适应度计算函数:4、

27、选择函数:5、交叉函数:6、变异函数:7、路程计算函数:关于数据存储的说明:数据没有存到外存,直接存在matlab的workspace里。20次计算产生20个历史最优值用NOWminLENGHTcun存储,其维数是20*100020次计算产生20个每代最优值用LENGHTcun存储,其维数是20*100020次计算产生20个每代最优解路径用shortestPath存储,其维数是20*15程序如下主函数:ticclcclear allshortestLEN=0; %用来存储每次的最优值shortestPath=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; %用来存储每

28、次的最优解LENGHTcun=zeros(1,1000); %用来存储每次的1000代的每代最好值NOWminLENGHTcun=zeros(1,1000); for i=1:20i opt_Path,NOWminLENGHT,LENGHT=TSP_GA();%GA运行20次,计算性能if i=1shortestLEN=min(NOWminLENGHT);shortestPath=opt_Path;LENGHTcun=LENGHT;NOWminLENGHTcun=NOWminLENGHT;elseshortestLEN=shortestLEN min(NOWminLENGHT);shortes

29、tPath=shortestPath;opt_Path;LENGHTcun=LENGHTcun;LENGHT;NOWminLENGHTcun=NOWminLENGHTcun;NOWminLENGHT;endendaver_shortestLEN=mean(shortestLEN); %平均性能maxLEN=max(shortestLEN); %最差性能minLEN x=min(shortestLEN); %最好性能fangcha=var(shortestLEN); %方差fprintf(20次随机,平均最短距离为%3.3fn,aver_shortestLEN);fprintf(20次随机,最好

30、性能为%dn,minLEN);fprintf(20次随机,最差性能为%dn,maxLEN);fprintf(20次随机,方差为%.3fn,fangcha);tocplot(1:1000,LENGHTcun(x,:),b)hold onplot(1:1000,NOWminLENGHTcun(x,:),r)legend(每代最优值,历史最优值)xlabel(代数)ylabel(路程)title(无灾变情况下种群大小=40的最优解)子函数:该子函数是单次GA算法,可直接当主函数运行% *程序说明*% 陈福沨% 日期:2021年1月9日% 父代种群:individium% 子代:nextGenerat

31、% 下一代种群:nextGenera竞争选择之后% 当前最优值:NOWminLENGHT% 每代最优值: LENGHT% 可更改种群大小 N% 该子程序为一次计算,可直接运行,将15,9198的注释符“%去掉即显示一个最有解并画图%*function opt_Path,NOWminLENGHT,LENGHT=TSP_GA()clcclear all%tic% 城市间距离邻接矩阵D=0 66 72 16 74 25 60 24 78 44 63 17 67 70 -999; 66 0 7 49 8 67 10 42 13 24 6 49 6 5 22; 72 7 0 56 2 74 14 49

32、6 30 10 55 7 4 28; 16 49 56 0 58 27 44 9 62 28 47 2 51 54 38; 74 8 2 58 0 75 16 50 4 32 11 57 8 5 30; 25 67 74 27 75 0 64 36 80 52 67 29 71 71 49; 60 10 14 44 16 64 0 36 19 16 4 43 8 14 26; 24 42 49 9 50 36 36 0 55 20 39 8 43 47 35; 78 13 6 62 4 80 19 55 0 36 15 61 12 9 33; 44 24 30 28 32 52 16 20 3

33、6 0 20 27 24 29 27; 63 6 10 47 11 67 4 39 15 20 0 46 4 10 25; 17 49 55 2 57 29 43 8 61 27 46 0 50 53 39; 67 6 7 51 8 71 8 43 12 24 4 50 0 8 28; 70 5 4 54 5 71 14 47 9 29 10 53 8 0 24;-999 22 28 38 30 49 26 35 33 27 25 39 28 24 0;% 重要参数定义T=1000; %迭代代数1000代N=40; %种群个体数Score=zeros(1,N); %用来存子代分数Lenght=

34、zeros(1,N); %用来存子代路程Fitness=zeros(1,N); %用来存子代适应度LENGHT=0; %来存储每代种群中最好的个体NOWminLENGHT=0; %存储当前最好值opt_Path=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; %存储最优解zaibian=0; %灾变标记% 个体的表示和初始化种群individium=struct(path,fitness,lenght,Pc,); %把个体用结构体表示:路径,适应度,路程,生存概率for n=1:N %对115随机排序,产生初始种群individium(n).path=randperm

35、(15);end% 主函数nextGenerat=Gene_cross(individium,N); %交叉:产生下一代nextGenera为下一代个体individiumt,lenght,score,fitness=Calculate_fitness(nextGenerat,N,D); %计算子代的适应度和生存概率nextGenera=Selection(individiumt,N,fitness); %选择:用生存概率选择产生下一代种群individiumt,lenght,score,fitness=Calculate_fitness(nextGenera,N,D); %计算种群的适应度S

36、core=score;Lenght=lenght;Fitness=fitness;individium=nextGenera; %下一代种群LENGHT=min(lenght); NOWminLENGHT=LENGHT;for t=2:T % 遗传算法:交叉变异选择 t %显示代数 nextGenerat=Gene_cross(individium,N); %交叉:产生下一代nextGenera为下一代个体 individiumt,lenght,score,fitness=Calculate_fitness(nextGenerat,N,D); %计算子代的适应度和生存概率 nextGenera

37、t=bianyi(individiumt,N,1); %变异:变异概率分别为和,p=1是一个系数,用来方便调整变异率 individiumt,lenght,score,fitness=Calculate_fitness(nextGenerat,N,D); %计算种群的适应度和生存概率 nextGenera=Selection(individiumt,N,fitness); %选择:用生存概率选择产生下一代种群 individiumt,lenght,score,fitness=Calculate_fitness(nextGenerat,N,D); Score=Score;score;Lenght

38、=Lenght;lenght; Fitness=Fitness;fitness; individium=nextGenera; %*以下存储最优值和最优解*NOWminLENGHT=NOWminLENGHT min(LENGHT); %存储当前最优值 minLENGHT x=min(lenght); if minLENGHT=NOWminLENGHT(t) zaibian=zaibian+1;elsezaibian=0;endifzaibian=200 for n=1:N %灾变:重新随机初始化individium(n).path=randperm(15);endzaibian=0;enden

39、d%opt_Path%plot(1:T,LENGHT,b)%hold on%plot(1:T,NOWminLENGHT,r)%legend(每代最优值,历史最优值)%xlabel(代数)%ylabel(路程)%title(种群大小=10的最优解)子函数:Calculate_fitness.m适应度函数function individium,lenght,score,fitness=Calculate_fitness(individium,N,D) %计算种群的每个个体适应度和生存概率score=zeros(1,N); %处理前的分数scoret=zeros(1,N); %处理后的分数lengh

40、t=zeros(1,N); %存储路程fitness=zeros(1,N); %存储适应度for n=1:N score(n)=lenghtCal(individium(n).path,D);individium(n).lenght=score(n);lenght(n)=score(n);end% 对路程值进行取反,并归一化为scorescore_Max=max(score);score_Min=min(score);ifscore_Max=score_Min score=(score_Max-score)/(score_Max-score_Min); %由于该实例的存在负值的路程,且值越小适

41、应度越大,归一化处理elseifscore_Max0score=score./999;elsescore=-score./999;endendScore=sum(score);average=Score/N;% 对score进行处理成scoret,舍弃得分小于平均值的个体for n=1:Nif score(n)0 &seletlunpan(i) &selet=lunpan(i+1) nextGenera(n)=individiumt(i+1);endendendendnextGenera(1)=individiumt(x); %将精英保存下去子函数:Gene_cross.m交叉function nextGenera=Gene_cross(individium,N) %交叉算子nextGenera=struct(path,fitness,lenght,Pc,);for n=2:2:N site=randint(1,1,1,14); %随机产生交叉位置:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论