ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:147.41KB ,
资源ID:18312170      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18312170.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB实验报告Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB实验报告Word格式文档下载.docx

1、22纵坐标5575586142419733746068261718192021242527293098525150536963889548这实际上是一个TSP问题,宜用蚁群算法求解:设有30个城市C=(1,2,.,30),任意两个城市i,j之间的距离为dij ,求一条经过每个城市的路径=(1),(2),.,(30),使得距离最小。二、实验原理与数学模型(20分)1、算法来源蚁群算法的基本原理来源于自然界蚂蚁觅食的最短路径原理,根据昆虫学家的观察,发现自然界的蚂蚁虽然视觉不发达,但它可以在没有任何提示的情况下找到从食物源到巢穴的最短路径,并且能在环境发生变化(如原有路径上有了障碍物)后,自适应地

2、搜索新的最佳路径。2、实验原理主要符号说明 C 30个城市的坐标,302的矩阵 NC_max 最大迭代次数 m 蚂蚁个数 Alpha 表征信息素重要程度的参数 Beta 表征启发式因子重要程度的参数 Rho 信息素蒸发系数 Q 信息素增加强度系数 R_best 各代最佳路线 L_best 各代最佳路线的长度 求解TSP问题的蚂蚁算法中,每只蚂蚁是一个独立的用于构造路线的过程,若干蚂蚁过程之间通过自适应的信息素值来交换信息,合作求解,并不断优化。这里的信息素值分布式存储在图中,与各弧相关联。蚂蚁算法求解TSP问题的过程如下:(1)首先初始化,设迭代的次数为NC。初始化NC=0(2)将m个蚂蚁置于

3、n个顶点上(3)m只蚂蚁按概率函数选择下一座城市,完成各自的周游每个蚂蚁按照状态变化规则逐步地构造一个解,即生成一条回路。蚂蚁的任务是访问所有的城市后返回到起点,生成一条回路。设蚂蚁k当前所在的顶点为i,那么,蚂蚁k由点i向点j移动要遵循规则而不断迁移,按不同概率来选择下一点。(4)记录本次迭代最佳路线(5)全局更新信息素值应用全局信息素更新规则来改变信息素值。当所有m个蚂蚁生成了m个解,其中有一条最短路径是本代最优解,将属于这条路线上的所有弧相关联的信息素值进行更新。全局信息素更新的目的是在最短路线上注入额外的信息素,即只有属于最短路线的弧上的信息素才能得到加强,这是一个正反馈的过程,也是一

4、个强化学习的过程。在图中各弧上,伴随着信息素的挥发,全局最短路线上各弧的信息素值得到增加。(6)终止若终止条件满足,则结束;否则NC=NC+1,转入步骤(2)进行下一代进化。终止条件可指定进化的代数,也可限定运行时间,或设定最短路长的下限。(7)输出结果3、数学模型设 m 表示蚂蚁总数量,用表示节点 i 和节点 j 之间的距离,表示在 t 时刻连线上的信息素浓度。在初始时刻,m只蚂蚁会被随机地放置,各路径上的初始信息素浓度是相同的。在 t 时刻,蚂蚁 k 从节点i转移到节点 j 的状态转移概率为 其中,表示蚂蚁 k 下一步可以选择的所有节点,C 为全部节点集合;为信息启发式因子,在算法中代表轨

5、迹相对重要程度,反映路径上的信息量对蚂蚁选择路径所起的影响程度,该值越大,蚂蚁间的协作性就越强;可称为期望启发式因子,在算法中代表能见度的相对重要性。是启发函数,在算法中表示由节点i 转移到节点 j 的期望程度,通常可取。在算法运行时每只蚂蚁将根据(2-1)式进行搜索前进。在蚂蚁运动过程中,为了避免在路上残留过多的信息素而使启发信息被淹没,在每只蚂蚁遍历完成后,要对残留信息进行更新处理。由此,在t+n时刻,路径(i,j)上信息调整如下 (2-2) (2-3)在式中,常数表示信息素挥发因子,表示路径上信息量的损耗程度,的大小关系到算法的全局搜索能力和收敛速度,则可用代表信息素残留因子,表示一次寻

6、找结束后路径(i,j)的信息素增量。在初始时刻,表示第 k 只蚂蚁在本次遍历结束后路径(i,j)的信息素。由于信息素更新策略有所不同,学者Dorigo M 研究发现了三种不同的基本蚁群算法模型,分别记为“蚁周系统”(Ant-Cycle)模型、“蚁量系统”(Ant-Quantity)模型及“蚁密系统”(Ant-Density)模型,三种模型求解方式存在不同。“蚁周系统”(Ant-Cycle)模型 第k只蚂蚁走过 (2-4)“蚁量系统”(Ant-Quantity)模型 第k只蚂蚁在t和t+1之间走过 (2-5)“蚁密系统”(Ant-Density)模型 (2-6)3、实验过程记录(含基本步骤、程序

7、代码及异常情况记录等)(60分)1、数据准备为防止既有变量的干扰,首先将环境变量清空。然后从Excle文件中读取城市的位置坐标,并保存在变量为City的矩阵中(第一列为城市的横坐标,第二列为城市的纵坐标)。2、计算城市距离矩阵3、MATLAB程序源代码:% 数据准备% 清空环境变量clear allclc% 程序运行计时开始t0 = clock;%导入数据citys=xlsread(citys_data.xlsx, B2:C31);%-% 计算城市间相互距离n = size(citys,1);D = zeros(n,n);for i = 1:n for j = 1: if i = j D(i,

8、j) = sqrt(sum(citys(i,:) - citys(j,:).2); else D(i,j) = 1e-4; %设定的对角矩阵修正值 end end end% 初始化参数m = 75; % 蚂蚁数量alpha = 1; % 信息素重要程度因子beta = 5; % 启发函数重要程度因子vol = 0.2; % 信息素挥发(volatilization)因子Q = 10; % 常系数Heu_F = 1./D; % 启发函数(heuristic function)Tau = ones(n,n); % 信息素矩阵Table = zeros(m,n); % 路径记录表iter = 1;

9、% 迭代次数初值iter_max = 100; % 最大迭代次数 Route_best = zeros(iter_max,n); % 各代最佳路径 Length_best = zeros(iter_max,1); % 各代最佳路径的长度 Length_ave = zeros(iter_max,1); % 各代路径的平均长度 Limit_iter = 0; % 程序收敛时迭代次数%-% 迭代寻找最佳路径while iter = rand); target = allow(target_index(1); Table(i,j) = target; % 计算各个蚂蚁的路径距离 Length = ze

10、ros(m,1); Route = Table(i,:(n - 1) Length(i) = Length(i) + D(Route(j),Route(j + 1); Length(i) = Length(i) + D(Route(n),Route(1); % 计算最短路径距离及平均距离 if iter = 1 min_Length,min_index = min(Length); Length_best(iter) = min_Length; Length_ave(iter) = mean(Length); Route_best(iter,:) = Table(min_index,: Lim

11、it_iter = 1; Length_best(iter) = min(Length_best(iter - 1),min_Length); if Length_best(iter) = min_Length Limit_iter = iter;) = Route_best(iter-1),: % 更新信息素 Delta_Tau = zeros(n,n); % 逐个蚂蚁计算 % 逐个城市计算 Delta_Tau(Table(i,j),Table(i,j+1) = Delta_Tau(Table(i,j),Table(i,j+1) + Q/Length(i); Delta_Tau(Table(

12、i,n),Table(i,1) = Delta_Tau(Table(i,n),Table(i,1) + Q/Length(i); Tau = (1-vol) * Tau + Delta_Tau; % 迭代次数加1,清空路径记录表 iter = iter + 1; Table = zeros(m,n);% 结果显示Shortest_Length,index = min(Length_best);Shortest_Route = Route_best(index,:Time_Cost=etime(clock,t0);disp(最短距离: num2str(Shortest_Length);最短路径:

13、 num2str(Shortest_Route Shortest_Route(1);收敛迭代次数: num2str(Limit_iter);程序执行时间: num2str(Time_Cost) 秒);% 绘图figure(1)plot(citys(Shortest_Route,1);citys(Shortest_Route(1),1),. %三点省略符为Matlab续行符 citys(Shortest_Route,2);citys(Shortest_Route(1),2),o-grid onsize(citys,1) text(citys(i,1),citys(i,2), num2str(i)

14、;text(citys(Shortest_Route(1),1),citys(Shortest_Route(1),2), 起点text(citys(Shortest_Route(end),1),citys(Shortest_Route(end),2), 终点xlabel(城市位置横坐标)ylabel(城市位置纵坐标title(ACA最优化路径(最短距离: num2str(Shortest_Length) )figure(2)plot(1:iter_max,Length_best,blegend(最短距离迭代次数距离title(算法收敛轨迹4、实验结果与总结(10分) 运行程序,可以很快的得出程

15、序的执行结果,其中一次的执行结果如下:图 TSP问题的最优路径示意图图 TSP问题ASA的收敛轨迹图 本文设计了一种基于MATLAB实现的蚁群算法,用以求解组合优化难题中的典型代表旅行商问题。对30个城市旅行商问题进行了测试,所得结果能达到优化作用,实现了本文的研究目标。经过对旅行商问题的深入理解,得到了能解决问题的基本数学模型,然后设计算法的基本思想,技术路线,最后编码。在多次调试,修改后,本算法成功运行,并实现了最初的设定目标。另外,MATLAB具有丰富的绘图函数,对于绘图十分方便,这是选择MATLAB解决TSP问题的算法编写、调试的原因。蚁群算法研究处于初期,还有许多问题值得研究,如算法的参数选择、蚂蚁数的比例等只能通过仿真实验,无法给出理论指导。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1