好文档 - 专业文书写作范文服务资料分享网站

MATLAB课程遗传算法实验报告及源代码

天下 分享 时间: 加入收藏 我要投稿 点赞

MATLAB课程遗传算法实验报告及源代码

%子程序:目标函数,函数名称存储为fun.m function y = fun(x)

y=x(1)^2+x(2)^2+x(3)^2;

=================================================================

异常情况记录:

在运用matlab编写程序进行运算时,遇到了一些问题,如下: (1)经常出现警告提示:

Warning: Ignoring extra legend entries. > In legend at 294 In main at 72 In run at 57

(2)由于本实验包括7个程序,每个程序当中都有许多的变量名。由于程序中有些变量的名字特别长,因此在引用时总会因为输出其中某一个字母而在运行时出错。这当然可以通过修改得以更正,不过也提醒我以后在对变量名进行命名时不要使用过长的变量名。 (3)本实验在编写过程中遇到的最大一个问题是,在编写完程序,进行运算时,matlab很久都没有反应,然后在下方的窗口中一直显示“busy”。刚开始我以为是由于遗传代数过多、染色体长度太长导致运行时间过久。于是我等了一会,可是过了很久结果还是没有运行出来。我强制关掉程序,仔细的检查了代码,并没有发现错误,可再次运行时还是出现同样的问题,运算不出结果。最后我设置了一些断点,也就是去掉一些分号,让中间结果输出到命令窗口。运行后发现命令窗口中一直在不停的输出中间结果。按“Ctrl+c”暂停之后,我知道程序中可能出现了死循环。于是在有循环的语句中去找错误,结果发现主程序中的counter=counter+1这一条语句没有写进去,致使循环无法结束。问题最终得以解决。由于粗心我花了好大功夫去寻找错误,这是一个教训,也是一次收获,下次再遇到这种情况我不会再犯类似的错误了。

=================================================================

四、实验结果与总结(10分)

=================================================================

试验结果:

一:在初始设置为如下情况时:

maxgen=30; %进化代数 sizepop=100; %种群规模 pcross=[0.6]; %交叉概率 pmutation=[0.01]; %变异概率

lenchrom=[1 1 1]; %变量字串长度 运行程序5次结果为:

(1)bestfitness = 7.9536e-004

bestpop = 0.0043 -0.0282 -0.0074

MATLAB课程遗传算法实验报告及源代码

(2)

bestfitness = 0.0059

bestpop = -0.0266 0.0414 0.0656

(3)

bestfitness =2.0056e-005

bestpop = -0.0002 -0.0004 0.0046

MATLAB课程遗传算法实验报告及源代码

(4)

bestfitness = 8.0669e-004

bestpop = 0.0116 0.0251 -0.0072

(5)

bestfitness = 0.0019

bestpop = 0.0512 -0.0075 0.0210

MATLAB课程遗传算法实验报告及源代码

根据以上5次运行,不难发现每次运行结果都不同,这是由于遗传算法本质上是一种启发式随机搜索算法。后对参数进行调整,使进一步优化结果。

================================================================= 二:修改参数设置,优化算法:

maxgen=5000; %进化代数 sizepop=120; %种群规模 pcross=[0.001]; %交叉概率 pmutation=[0.1]; %变异概率 lenchrom=[1 1 1]; %变量字串长度

bound=[-5.12 5.12;-5.12 5.12;-5.12 5.12]; %变量范围 (1)

bestfitness =0.0161

bestpop =-0.0013 -0.0011 -0.1270

MATLAB课程遗传算法实验报告及源代码

(2)

bestfitness =0.0697

bestpop= 0.0000 0.0000 0.2641

(3)

bestfitness =0.0316

bestpop = -0.0004 -0.0000 0.1779

MATLAB课程遗传算法实验报告及源代码

MATLAB课程遗传算法实验报告及源代码%子程序:目标函数,函数名称存储为fun.mfunctiony=fun(x)y=x(1)^2+x(2)^2+x(3)^2;=================================================================异常情况记
推荐度:
点击下载文档文档为doc格式
0g8yj5q4ny3xy6q955p40ne2d1fp3301450
领取福利

微信扫码领取福利

微信扫码分享