欢迎来到天天文库
浏览记录
ID:22622977
大小:34.43 KB
页数:14页
时间:2018-10-30
《连续空间蚁群算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、查看文章 标题:蚁群优化算法的连续空间函数求解2007-12-0316:38:12题目:蚁群优化算法的连续空间函数求解 实验目的:加深了解蚁群优化算法的原理,深入认识智能优化算法的重要性,拓展算法的应用领域与空间 实验内容与算法详细设计介绍: 1.先熟悉基本蚁群优化算法的设计思想: 蚁群算法是对自然界蚂蚁的寻径方式进行模拟而得出的一种仿生算法。蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为外激素(pheromone)的物质进行信息传递,而且蚂蚁在运动过程中能够感知这种物质,并以此指导自己的运动方向,因此由大量蚂蚁组成的蚁
2、群集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。 2.基本蚁群优化算法的实现初始化过程设t:=0;{t时间计数器}Nc:=0;{Nc为循环次数计数器}τij(t):=C;{为每条路径(i,j)设一个轨迹强度的初始值}∆τij=0;{轨迹强度增量的初值设为0}ηij由某种启发式算法确定;{在TSP中,ηij=1/dij}tabuk=Φ;{在初始阶段,禁忌表为空}将m只蚂蚁随机置于n个节点(城市)上;设置s:=1;{s为禁忌表索引,将各只蚂蚁的初始城市置于当前禁忌表中}fori:=1to
3、ndofork:=1tobi(t)dotabuk(s)=i重复直到禁忌表满为止{这一步要重复(n-1)次}设置s:=s+1;fori:=1tondofork:=1tobi(t)do•以概率选择城市j;•将蚂蚁k移到j;将刚刚选择的城市j加到tabuk中;信息素调整:记录到目前为止的最短路径ifNc4、返回步骤(2);else输出最短路径; 3.本程序遵循基本蚁群优化算法的思想,但在某些细节和形式方面有所变形: 程序求F(X,Y,Z)=X^3+Y^3+Z^3的最小值,因此取fit最小时候的X,Y,Z作为解向量,其它维可做相应扩展,扩展[3]那一维,当求一维时候,删去此维,算法采用c++语言编写,细节如下: cacs4fun.h分析: alpha,rho,p0,tau0,dimension,num_layers,num_ants,num_iters均为常数参数,视具体目标函数而定,在main.cpp中,alpha=0.2;n5、um_ants=50;num_iters=2000;num_layers=200;dimension=10;p0=0.1;rho=0.2;tau0=0.01;根据设计后测试所得,基本为最适合的常数参数。 dimension,num_layers,num_ants,num_iters的值越大程序执行速度越慢。 具体测试数值如下:(每个常数参数的测试都选择四个数,即最后输出的fit[i],测试时其它常数都相同,仅待测常数变化) AverageFit AverageF6、it Alpha=0.05 1.268 num_ants=20 0.02Alpha=0.1 0.526 num_ants=50 0.02Alpha=0.2 0.018 num_ants=100 0.0144Alpha=0.3 0.019 num_ants越大执行速度越慢,精确Alpha=0.5 0.027Alpha=0.8 0.007、7 AverageFit AverageFit num_iters=3000 0.018 layers=500 0.0144num_iters=2000 0.02 layers=100 0.027num_iters=1000 0.08 layers=10 太大num_iters=800 0.66num_iters越大执行速度越慢,精确 dimension,p0,rh0略。 8、 double****tau 定义tau[60][3][10][11]数组,tau[num_layers][3][lastpos][curpos] 代表进行第num_layers层次(精度时),在X,Y,Z坐标上,两个
4、返回步骤(2);else输出最短路径; 3.本程序遵循基本蚁群优化算法的思想,但在某些细节和形式方面有所变形: 程序求F(X,Y,Z)=X^3+Y^3+Z^3的最小值,因此取fit最小时候的X,Y,Z作为解向量,其它维可做相应扩展,扩展[3]那一维,当求一维时候,删去此维,算法采用c++语言编写,细节如下: cacs4fun.h分析: alpha,rho,p0,tau0,dimension,num_layers,num_ants,num_iters均为常数参数,视具体目标函数而定,在main.cpp中,alpha=0.2;n
5、um_ants=50;num_iters=2000;num_layers=200;dimension=10;p0=0.1;rho=0.2;tau0=0.01;根据设计后测试所得,基本为最适合的常数参数。 dimension,num_layers,num_ants,num_iters的值越大程序执行速度越慢。 具体测试数值如下:(每个常数参数的测试都选择四个数,即最后输出的fit[i],测试时其它常数都相同,仅待测常数变化) AverageFit AverageF
6、it Alpha=0.05 1.268 num_ants=20 0.02Alpha=0.1 0.526 num_ants=50 0.02Alpha=0.2 0.018 num_ants=100 0.0144Alpha=0.3 0.019 num_ants越大执行速度越慢,精确Alpha=0.5 0.027Alpha=0.8 0.00
7、7 AverageFit AverageFit num_iters=3000 0.018 layers=500 0.0144num_iters=2000 0.02 layers=100 0.027num_iters=1000 0.08 layers=10 太大num_iters=800 0.66num_iters越大执行速度越慢,精确 dimension,p0,rh0略。
8、 double****tau 定义tau[60][3][10][11]数组,tau[num_layers][3][lastpos][curpos] 代表进行第num_layers层次(精度时),在X,Y,Z坐标上,两个
此文档下载收益归作者所有