智能优化方法课程论文.docx

上传人:b****3 文档编号:6340999 上传时间:2023-05-09 格式:DOCX 页数:16 大小:27.13KB
下载 相关 举报
智能优化方法课程论文.docx_第1页
第1页 / 共16页
智能优化方法课程论文.docx_第2页
第2页 / 共16页
智能优化方法课程论文.docx_第3页
第3页 / 共16页
智能优化方法课程论文.docx_第4页
第4页 / 共16页
智能优化方法课程论文.docx_第5页
第5页 / 共16页
智能优化方法课程论文.docx_第6页
第6页 / 共16页
智能优化方法课程论文.docx_第7页
第7页 / 共16页
智能优化方法课程论文.docx_第8页
第8页 / 共16页
智能优化方法课程论文.docx_第9页
第9页 / 共16页
智能优化方法课程论文.docx_第10页
第10页 / 共16页
智能优化方法课程论文.docx_第11页
第11页 / 共16页
智能优化方法课程论文.docx_第12页
第12页 / 共16页
智能优化方法课程论文.docx_第13页
第13页 / 共16页
智能优化方法课程论文.docx_第14页
第14页 / 共16页
智能优化方法课程论文.docx_第15页
第15页 / 共16页
智能优化方法课程论文.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

智能优化方法课程论文.docx

《智能优化方法课程论文.docx》由会员分享,可在线阅读,更多相关《智能优化方法课程论文.docx(16页珍藏版)》请在冰点文库上搜索。

智能优化方法课程论文.docx

智能优化方法课程论文

智能优化方法课程论文

——基于食物链捕食模式的三种群协作遗传算法实验

侯树卫

1.实验目的

通过编程实现基于食物链捕食模式的三种群协作遗传算法,对函数进行优化,将其与标准的遗传算法优化效果进行对比分析,得出一定的结论。

同时,在试验过程中学习熟悉遗传算法。

2.技术方案

在遗传算法基础上,进一步模拟自然界的生物进化过程。

自然界生物的进化还受到食物链的影响,被捕食和获取食物直接影响生物进化过程。

设想,有三个初始种群,按捕食和食物间的一定关系进行协作,会对遗传算法优化效果有一定提升。

算法的流程如下:

1.采用实数编码,设置变异参数、种群数量等,生成三个初始种群;

2.计算适应度;

3.进入迭代:

(1)处理第三个种群:

第三个种群中所有适应度坏于第二种群平均适应度的个体,作为食物被第二种群分配;删除作为食物的个体。

按一定选择方式选择父代,交叉产生子代,进行变异;

(2)处理第二个种群:

按一定方式分配由第三种群获取的食物,食物低于一定值的个体死亡,作为第一种群食物,同时,对第二种群中适应度坏于第一种群平均适应度的个体,也作为第一种群食物,作为食物的个体删除。

按一定选择方式选择父代,交叉产生子代,进行变异;

(3)处理第一个种群:

按一定方式分配由第三种群获取的食物,食物低于一定值的个体死亡、删除。

然后,按一定选择方式选择父代,交叉产生子代,进行变异。

(4)每个种群中的最好个体替代最差个体;所有种群中的最好个体分别替代每个种群中的最差个体。

(5)计算适应度;

(6)继续循环直至满足终止条件;

4.输出优化的结果,算法结束。

算法采用的交叉方式为多点交叉,即随机选择一半的位串,在父代间交叉。

采用的变异方式有:

以位串平均值为准按比例上下随机浮动;以位串平均值为准,以取值范围一定比例随机上下浮动;以位串平均值为准,按方差上下随机浮动;以最每代最好个体位串值为准,按同样方式上下随机浮动以及高斯变异。

算法中的交叉系数a,变异系数pm、种群规模等根据算法运行情况调整。

3.实验结果及分析

通过相同数量个体下,分三种群协同进化和单种群进化进行对比。

其他参数相同,个体总数为150。

三个种群捕食关系为:

pop1吃pop2,pop2吃pop3。

在迭代代数为300,变异概率为0.3,交叉系数a为0.1参数下,对测试函数一进行优化,分别运行五次。

最后的优化结果如下:

classicga1:

3.515301e-017classicga1:

4.811999e-017classicga1:

6.306604e-018

classicga1:

8.110289e-018classicga1:

1.177726e-017

foodchain1:

1.795252e-025foodchain1:

1.803103e-025foodchain1:

1.019144e-024

foodchain1:

7.066503e-025foodchain1:

1.062899e-024

classicga2:

2.393638e-029classicga2:

9.651748e-030classicga2:

1.393717e-029

classicga2:

3.456894e-029classicga2:

2.568764e-029

foodchain2:

1.739845e-026foodchain2:

1.724897e-027foodchain2:

5.407059e-026

foodchain2:

2.292180e-025foodchain2:

1.241327e-026

classicga21:

1.513442e-022classicga21:

4.744149e-022classicga21:

7.380783e-023

classicga21:

1.037500e-023classicga21:

1.369897e-022

foodchain21:

4.817046e-028foodchain21:

9.183365e-029foodchain21:

2.496357e-028

foodchain21:

5.246736e-029foodchain21:

3.771595e-029

classicga22:

1.906018e-003classicga22:

2.668078e-004classicga22:

4.903648e-004

classicga22:

9.686630e-005classicga22:

1.767192e-004

foodchain22:

2.749719e-004foodchain22:

1.397267e-003foodchain22:

1.435156e-005

foodchain22:

2.618383e-005foodchain22:

4.022535e-004

其中:

classicga代表一般的遗传算法,foodchain代表采用食物链的算法;

序号1代表交叉方式为串位直接互换,变异方式为以位串平均值为准按比例上下随机浮动,种群间捕食方式为被捕食群体中低于捕食群体中最优个体适应度两倍。

序号2在1基础上改变种群间捕食方式为被捕食群体中低于捕食群体平均适应度。

序号21代表在2基础上改变交叉方式为实数交叉方式,按一定系数变化取值交叉;

序号22代表在21基础上,改变变异方式为高斯变异。

通过以上数据可以明显看出,在这几种方法下,分三种群按食物链方式竞争对提高结果的收敛速度有一定作用。

然后对序号1算法加入同样的小于平均适应度淘汰机制,分析结果发现,其收敛速度快于加入食物链的方法。

由此可知,采用的新方法的收敛性介于序号1的不淘汰方法和序号2的单种群淘汰方法之间。

对函数六进行优化,结果如下:

foodchain2:

5.044213e+000foodchain2:

2.965453e+000foodchain2:

2.358099e+000

foodchain2:

4.605018e+000foodchain2:

5.390974e+000

classicga2:

4.876047e+000classicga2:

4.968353e+000classicga2:

4.537115e+000

classicga2:

5.672532e+000classicga2:

5.952916e+000

classicga1:

5.056437e+000classicga1:

6.804616e+000classicga1:

6.561508e+000

classicga1:

6.528788e+000classicga1:

5.657101e+000

对函数十二进行优化,结果如下:

foodchain2:

7.671139e-001foodchain2:

7.902732e-001foodchain2:

8.036008e-001

foodchain2:

5.243947e-001foodchain2:

3.423643e-001

classicga2:

1.360849e+000classicga2:

1.145134e+000classicga2:

1.337375e+000

classicga2:

1.063871e+000classicga2:

5.237828e-001

classicga1:

1.184714e+000classicga1:

1.161197e+000classicga1:

1.477536e+000

classicga1:

1.053585e+000classicga1:

1.279836e+000

三种群的方法在这两个函数的优化中,结果明显较好,这说明三种群食物链的优化方法在一些复杂问题的优化效果上要好于单种群的优化方法。

分析其原因,可能是由于基于食物链模式的三种群协作方式之间互相制约,各种群分工协作的结果。

假设,pop2的平均适应度较高,则pop3种群淘汰率较高,从而使pop3在这一代就有较高的收敛性,同时由于pop3淘汰的多,pop2从pop3获取的食物足够多,种群中个体保存数量就越多,保证了pop2的种群多样性,有效的保证了对全局最优的搜索能力,在这种情况下,如果pop1平均适应度较低,食物不足,淘汰率就多,则pop1也具有较高收敛性,如果pop1平均适应度较高,则依然可以保证食物,使pop1具有保持种群多样性的能力。

同时三个种群协作,更方便对每个种群使用不同的交叉和变异方式,以适应不同优化问题收敛和全局搜索要求。

下面是对基于食物链模式的三种群协作方式的交叉变异方式改进后对其他一些函数进行优化的效果。

4.对其他测试函数的优化

考虑测试函数一:

,这个测试函数具备最优值为零,最优解为零,各位最优解相同三个特点,这都属于特殊情况,我把这个函数改进后,变为:

,这样最优解就变为(1,2,…,n)。

通过搭配不同种群的高斯变异方式,t=exp(-gen/100);

bound=[avival;avival]+dom*[0.5;-0.5]*ones(1,bn);

newpop(1:

popnum,1:

bn)=gaussian_mutation(newpop(1:

popnum,1:

bn),pm,bound)

%对种群三以最优五个个体的每个位串值的平均值为中心,以取值范围为范围作高斯扰动;

ifgen

bound=dom*[0.5;-0.5]*ones(1,bn);

newpop(popnum+1:

3*popnum,1:

bn)=gaussian_mutation(newpop(popnum+1:

3*popnum,1:

bn),pm,bound);对种群三以最优个体的每个位串值为中心,以取值范围为范围作高斯扰动;

else

bound=[pop(minnum,1:

bn);pop(minnum,1:

bn)]+dom*[0.5;-0.5]*ones(1,bn)*t;高斯扰动范围缩小做微调

newpop(popnum+1:

3*popnum,1:

bn)=gaussian_mutation(newpop(popnum+1:

3*popnum,1:

bn),pm,bound);

end

求取最优值及最优解,迭代900次,运行五次结果如下(函数文件名foodchaincom24):

1.000535e+0001.998628e+0003.000666e+0004.000945e+0005.001641e+0006.000294e+0006.999452e+0008.000164e+0009.000570e+0001.000036e+0011.099905e+0011.199995e+0011.300082e+0011.399802e+0011.500093e+0011.600051e+0011.700028e+0011.799789e+0011.900130e+0012.000036e+0012.100041e+0012.200032e+0012.300085e+0012.399982e+0012.499926e+0012.599957e+0012.700049e+0012.799936e+0012.900011e+0012.999928e+001;2.296092e-005

1.002224e+0002.002033e+0003.001367e+0004.002296e+0005.000156e+0006.001793e+0007.000312e+0007.995894e+0009.000350e+0009.999528e+0001.099928e+0011.200283e+0011.299962e+0011.400113e+0011.499935e+0011.599913e+0011.699754e+0011.799837e+0011.900324e+0012.000215e+0012.100106e+0012.200003e+0012.300063e+0012.400119e+0012.499679e+0012.599951e+0012.700105e+0012.800199e+0012.900191e+0012.999735e+001;1.008800e-004

9.990165e-0011.999304e+0003.001063e+0003.998800e+0004.998648e+0005.998688e+0006.999040e+0008.001043e+0009.000862e+0009.999494e+0001.100214e+0011.200157e+0011.300057e+0011.399932e+0011.500144e+0011.599825e+0011.699841e+0011.799913e+0011.900108e+0012.000166e+0012.099951e+0012.199858e+0012.300092e+0012.400042e+0012.500057e+0012.600022e+0012.700224e+0012.800206e+0012.900018e+0012.999864e+001;4.559174e-005

1.000033e+0001.996500e+0003.002602e+0003.996413e+0004.999589e+0006.000232e+0007.000290e+0008.001422e+0008.999821e+0009.999805e+0001.100030e+0011.199946e+0011.300123e+0011.399840e+0011.500007e+0011.600063e+0011.700107e+0011.800117e+0011.899913e+0011.999869e+0012.100021e+0012.200184e+0012.299782e+0012.399848e+0012.500212e+0012.600059e+0012.700049e+0012.799884e+0012.900005e+0012.999946e+001;6.133224e-005

9.992472e-0012.001992e+0003.002017e+0004.001626e+0005.001180e+0005.999469e+0006.999992e+0008.002034e+0008.999343e+0009.997772e+0001.100076e+0011.200237e+0011.300078e+0011.399838e+0011.499815e+0011.600067e+0011.699794e+0011.800656e+0011.899641e+0011.999765e+0012.099964e+0012.200039e+0012.299993e+0012.400217e+0012.500194e+0012.599802e+0012.699596e+0012.799808e+0012.900101e+0013.000285e+001;1.432954e-004

最优解误差范围在0.001左右,最优值误差数量级为0.00001。

下面将函数一继续一般化,修改为

+100,对函数的交叉选择方式改进为:

t=exp(-gen/100);

expfit=pop(1:

popnum,bn+1)/t;

expfit=expfit-min(expfit)+t;

sumprob1=cumsum(expfit.^(-1));

即将适应度除以一个随代数逐渐缩小的参数t,以避免基数100对选择概率的影响。

迭代900次,运行五次结果如下(函数文件名foodchaincom25):

9.998908e-0012.001862e+0002.998627e+0004.000609e+0004.998313e+0006.003926e+0007.013799e+0008.000208e+0008.998694e+0009.987354e+0001.099934e+0011.199782e+0011.300931e+0011.400508e+0011.499532e+0011.600194e+0011.699809e+0011.799425e+0011.899915e+0011.999884e+0012.099686e+0012.199790e+0012.299295e+0012.400756e+0012.499779e+0012.600469e+0012.699157e+0012.800146e+0012.900168e+0012.999311e+001;1.000008e+002

1.000405e+0002.000193e+0002.999447e+0004.000421e+0005.000631e+0005.999752e+0006.999878e+0007.999913e+0008.999680e+0009.999722e+0001.099965e+0011.199982e+0011.299980e+0011.399972e+0011.500005e+0011.599948e+0011.700047e+0011.800020e+0011.900026e+0011.999991e+0012.099974e+0012.199995e+0012.300057e+0012.400062e+0012.500002e+0012.599987e+0012.700019e+0012.800061e+0012.900019e+0013.000011e+001;1.000000e+002

1.000371e+0002.000307e+0002.999670e+0003.999934e+0004.999903e+0005.999740e+0006.998994e+0008.000190e+0009.000611e+0001.000056e+0011.099992e+0011.199978e+0011.300022e+0011.400027e+0011.499978e+0011.599997e+0011.699981e+0011.800011e+0011.900037e+0012.000053e+0012.099966e+0012.200001e+0012.299989e+0012.400020e+0012.499993e+0012.600020e+0012.699987e+0012.800044e+0012.899989e+0013.000030e+001;1.000000e+002

9.999186e-0011.999828e+0003.000088e+0003.999592e+0005.000686e+0006.000030e+0007.000279e+0007.999719e+0008.999861e+0001.000037e+0011.099919e+0011.199925e+0011.300029e+0011.400086e+0011.499924e+0011.600028e+0011.700016e+0011.799982e+0011.899993e+0012.000010e+0012.099967e+0012.199927e+0012.300063e+0012.399989e+0012.500000e+0012.599983e+0012.700068e+0012.800028e+0012.900048e+0012.999964e+001;1.000000e+002

1.000108e+0001.999725e+0002.999225e+0004.000051e+0004.999727e+0006.000210e+0007.000090e+0008.000274e+0008.999705e+0009.999894e+0001.100028e+0011.199974e+0011.299992e+0011.399983e+0011.500024e+0011.600013e+0011.700030e+0011.799966e+0011.899939e+0012.000041e+0012.099965e+0012.199996e+0012.299994e+0012.399938e+0012.499970e+0012.599979e+0012.700010e+0012.800011e+0012.899926e+0013.000017e+001;1.000000e+002

可见优化结果误差在0.0001以下。

而且变异和交叉随代数变化的参数t一致,以方便调节。

通过调节参数t和迭代代数gen,此方法可以很好的优化一些局部最优解就是全局最优解的函数优化问题。

通过对20个函数进行测试,使用参数t=exp(-gen/100),可以对函数1、2、4、6、7、9、11、12、13、14、16、17达到较好的优化效果,而且改变最优解位置和最优解值都不会影响算法的优化效果。

对函数f15、f5,算法易陷入局部最优,说明算法的全局搜索能力有待改进。

对函数f15,用同样的食物链方式采用了不同的交叉变异方式编写程序进行优化。

优化十次的结果如下:

1.580438e-0012.416381e+0001.078715e+0008.662021e-001;6.724240e-004

1.928463e-0011.909046e-0011.231885e-0011.358267e-001;3.074866e-004

1.591676e-0012.289273e+0001.021616e+0008.343526e-001;6.626680e-004

2.286899e-001-4.116399e-0013.164739e-016-1.866079e-001;4.460175e-004

1.923051e-0012.071334e-0011.280509e-0011.431971e-001;3.079842e-004

1.927640e-0011.928847e-0011.237368e-0011.366991e-001;3.074943e-004

1.831855e-0016.207852e-0013.077401e-0013.061440e-001;4.131947e-004

1.731852e-0011.148033e+0005.222885e-0014.907948e-001;5.264242e-004

1.820283e-0016.640751e-0013.200571e-0013.223491e-001;4.233988e-004

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2