精华蚂蚁系统(解决旅行商 TSP问题)

精华蚂蚁系统(解决旅行商 TSP问题)

1. 需求分析:
1.1精华蚂蚁系统解决旅行商 TSP问题:
已知n个城市之间的距离,现有m只蚂蚁必须访问这n个城市,并且每个城市只能访问一次,最后必须返回出发城市。如何安排他对这些城市的访问次序,可使其旅行路线的总长最短:
精华蚂蚁系统是对基础ES的第一次改进,它在原AS信息素更新原则的基础上增加了一个对至今最优路径的强化手段。在每轮信息素更新完毕后,搜索到至今最优路径(用Tb表示)的那只蚂蚁将会为这条路径添加额外的信息素。

1.2输入:随机选区cnum个城市的坐标(横纵坐标范围设为1~2000),存放在cnum×2的二维数组citys中。

1.3输出:迭代iter_max次后的最短路径以及最短路线。

2. 概要设计:
2.1 随机选区50、100个城市的坐标(横纵坐标范围设为1~4000),存放在cnum×2的二维数组citys中。

citys=round(rand(100,2)*2000)

2.2 EAS中城市i与城市j的相连边上的信息素量 的更新:
在这里插入图片描述
2.2.1 在EAS中,新增了 ,并定义参数e作为 的权值,一般设置e等于城市规模n:
2.2.2 Cb是算法开始至今最优路径的长度。EAS在每轮迭代中为属于Tb的边增加了额外的e/Cb的信息素量。
Tau = (1-rho) * Tau + Delta_Tau ;
修改为:Tau = (1-rho) * Tau + Delta_Tau +e*Delta_b;
其中Delta_b表示精英蚂蚁留下的信息素。
3. 详细设计(主要代码matlab):

%随机生成城市:
%五十个城市:
citys=round(rand(50,2)*2000)
%一百个城市:
citys=round(rand(100,2)*2000)
%精英蚂蚁的设定:
Delta_Tau = zeros(n,n);
% 逐个蚂蚁计算
      for i = 1:m
          % 逐个城市计算
          for j = 1:(n - 1)
              Delta_Tau(Table(i,j),Table(i,j+1)) Delta_Tau(Table(i,j),Table(i,j+1)) + Q/Length(i);
          end
          Delta_Tau(Table(i,n),Table(i,1)) =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值