蚁群算法调参记录

蚁群算法主要有5个参数

a信息素重要程度,

b启发式因子重要程度,

c信息素蒸发系数,

ant蚂蚁数量,

iter迭代次数

制作了一个50个节点的地图,用交叉对比的方法寻找最佳参数

首先调b


蚂蚁数100,迭代数100.

很明显b越小距离和平均值越大,标准差也越大,b=14的时候距离的平均值,最小值,和标准差都几乎是最小的,当b=20的时候距离变大。

这件事的可能原因是b大一些会使城市的权重和sum变的很小Math.pow(1.0/distance[currentCity][i], b),可能会达到2.397101359805423E-30,这样会使优势城市权重占比变的非常突出。而如果b很小比如如果b=2,sum可能等于9.226501283762148E-7,这样会使被选城市的权重占比看起来优势模糊。

所以b选择14.

然后调节a


a对效果的影响看起来像是单调的,随着a的减小平均值,标准差都在减小。当a=0.0001的时候得到的最小值更小些,所以a取0.0001.

然后调节r

蚂蚁数100,迭代数100.

 

当r等于0的时候意味着信息素矩阵没有遗忘,当r=1的时候相当于蚂蚁完全是在随机运动,但是可以看到即便是没有信息素矩阵的帮助只是靠着城市之间距离的关系得到的值也并不是非常差,71212相比67801相差大概5%。

通过对比可以发现除了r=1完全遗忘,其余的值对结果的影响都不是很明显。也就是说信息素只要不是全忘了对结果相差不大。

所以r选择0.5,

然后调节蚂蚁数和迭代数



增加蚂蚁数和迭代数效果非常明显,随着蚂蚁数*迭代数的增大,距离平均值和标准差都在减小。耗时也在等比例的增大。

综合起来

a信息素重要程度,a越小得到的距离越小

b启发式因子重要程度,有至少一个最优值

c信息素蒸发系数,只要不是1,相差并不是特别大

ant蚂蚁数量,数量越多性能越好,越稳定,耗时也越大

iter迭代次数,数量越多性能越好,越稳定,耗时也越大


原始数据地图





















评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑榆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值