计算智能——蚁群算法

蚁群算法

1.算法原理

蚁群算法是模拟蚂蚁觅食的原理,设计出的一种群集智能算法。蚂蚁在觅食过程中能够在其经过的路径上留下一种称之为信息素的物质,并在觅食过程中能够感知这种物质的强度,并指导自己行动方向,它们总是朝着该物质强度高的方向移动,因此大量蚂蚁组成的集体觅食就表现为一种对信息素的正反馈现象。某一条路径越短,路径上经过的蚂蚁越多,其信息素遗留的也就越多,信息素的浓度也就越高,蚂蚁选择这条路径的几率也就越高,由此构成的正反馈过程,从而逐渐的逼近最优路径,找到最优路径。

2.基本流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.数据获取

3.1信息素重要程度因子改变时

3.1.1
alpha = 1;
beta = 5;
rho = 0.1;
最短距离:23712.7846
最短路径:27 7 29 15 4 33 26 8 30 1 18 11 14 19 3 24 40 22 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 37 27
在这里插入图片描述
3.1.2
alpha = 3;
beta = 5;
rho = 0.1;
最短距离:24330.1047
最短路径:15 4 33 26 8 30 1 18 11 14 19 24 40 22 3 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 21 31 39 28 20 27 7 29 37 15在这里插入图片描述
3.1.3
alpha = 5;
beta = 5;
rho = 0.1;
最短距离:24002.2686
最短路径:7 27 29 15 4 33 26 8 30 1 18 11 14 19 34 32 13 40 22 3 24 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 37 7
在这里插入图片描述

3.2启发函数重要程度因子改变时

3.2.1
alpha = 1;
beta = 5;
rho = 0.1;
最短距离:23712.7846
最短路径:27 7 29 15 4 33 26 8 30 1 18 11 14 19 3 24 40 22 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 37 27
在这里插入图片描述
3.2.2
alpha = 1;
beta = 4;
rho = 0.1;
最短距离:23163.2512
最短路径:24 40 22 3 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 7 27 29 37 15 4 33 26 8 30 1 18 11 14 19 24
在这里插入图片描述
3.2.3
alpha = 1;
beta = 3;
rho = 0.1;
最短距离:23144.2149
最短路径:27 7 29 37 15 4 33 26 8 30 1 18 11 14 19 24 40 22 3 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 27
在这里插入图片描述
3.2.4
alpha = 1;
beta = 2;
rho = 0.1;
最短距离:23795.7455
最短路径:20 28 27 7 29 37 15 4 33 26 8 30 1 18 11 14 19 24 40 22 3 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 31 39 21 20
在这里插入图片描述

3.3信息素挥发因子改变时

3.3.1
alpha = 1;
beta = 5;
rho = 0.1;
最短距离:23712.7846
最短路径:27 7 29 15 4 33 26 8 30 1 18 11 14 19 3 24 40 22 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 37 27
在这里插入图片描述
3.3.2
alpha = 1;
beta = 5;
rho = 0.3;
最短距离:23679.5938
最短路径:39 31 21 28 20 37 29 7 27 15 4 33 26 8 30 1 18 11 14 19 24 40 22 3 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39
在这里插入图片描述3.3.3
alpha = 1;
beta = 5;
rho = 0.6;
最短距离:23929.6762
最短路径:26 33 4 8 30 1 18 11 14 19 24 40 22 3 34 32 13 17 9 38 16 36 5 35 25 10 2 12 23 6 39 31 21 28 20 15 29 7 27 37 26
在这里插入图片描述

4.算法实现(matlab)

4.1
城市40座通过随机函数生成,再将其导入citys.mat中使用
在这里插入图片描述
4.2代码实现

%% 旅行商问题(TSP)优化
%% 清空环境变量
clear all
clc

%% 导入数据
load citys.mat

%% 计算城市间相互距离
fprintf('Computing Distance Matrix... \n');
n = size(citys,1);
D = zeros(n,n);
for i = 1:n
    for j = 1:n
        if i ~= j
            D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2))
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值