网站大量收购闲置独家精品文档,联系QQ:2885784924

蚁群算法求解TSP问题.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
蚁群算法求解TSP问题概要

广东工业大学 课 程 作 业 课程题目 基于ACO算法 学生姓名 朱美霞 学生学号 2111405091 专业班级 计算机技术 2015 年2月 15日 1. AOC算法的数学模型 (1)、基本参数、信息素浓度公式、择路概率 设蚂蚁的数量为m,城市的数量为n,城市i与城市j之间的距离为dij,t时刻城市i与城市j之间的信息素浓度为tij(t),初始时刻,各个城市间连接路径上的信息素浓度相同,不妨记为tij(0)=t0。 蚂蚁k(k=1,2,..,m)根据各城市间连接路径上的信息素浓度,决定其下一个要访问的城市,设Pijk(t)表示t时刻,蚂蚁k从城市i到城市j的概率,其计算公式为如下: 其中: (ij(t)为启发式函数,(ij(t)=1/dij,表示蚂蚁从城市i转移到城市j的期望程序; allowk(k=1,2,…,m)表示蚂蚁k待访问的城市的集合,开始时allowk为其他n-1城市,随着时间推进,其中的元素不断减少,直至为空,表示所有城市访问完,即遍历所有城市。 (为信息素的重要程度因子,其值越大,转移中起的作用越大 (为启发函数的重要程度因子,其值越大,表示启发函数在转移中的作用越大,即蚂蚁以较大的概率转移到距离短的城市。 蚂蚁释放的信息素会随时间的推进而减少,设参数((0(1)表示信息素的挥发度,当所有蚂蚁完成一次循环后,各个城市间连接路径上的信息素浓度,需要实时更新。 tij(t+1)=(1-()tij(t)+(tij,(tij= 其中: (tijk表示蚂蚁k在城市i与城市j的连接路径上,释放的信息素浓度 (tij表示所有蚂蚁在城市i与城市j的连接路径上,释放的信息素浓度。 (2)、(tijk的计算方法 (tijk= 其中: Q为常数,表示蚂蚁循环一次释放的信息素的总量; dij为第k只蚂蚁经过路径的长度,Length; 4. 相关程序 1、访问每个城市一次也仅一次的最短路径,共有30个 2、城市的坐标citys,这是直角坐标,根据二个城市的坐标值,可以用D=可计算出任意二个城市间的距离。 citys = 1304 2312 3639 1315 4177 2244 3712 1399 3488 1535 3326 1556 3238 1229 4196 1004 4312 790 4386 570 3007 1970 2562 1756 2788 1491 2381 1676 1332 695 3715 1678 3918 2179 4061 2370 3780 2212 3676 2578 4029 2838 4263 2931 3429 1908 3507 2367 3394 2643 3439 3201 2935 3240 3140 3550 2545 2357 2778 2826 3、代码 clear all clc load citys_data.mat % 计算城市间相互距离 n = size(citys,1); %城市的个数 D = zeros(n,n); %n行n列的矩阵,即任意二个城市之间的距离 for i = 1:n for j = 1:n if i ~= j D(i,j) = sqrt(sum((citys(i,:) - citys(j,:)).^2)); else D(i,j) = 1e-4; end end end %% 初始化参数 m = 50; % 蚂蚁数量 alpha

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档