




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
蚁群算法的优化计算旅行商问题(TSP)优化1、案例背景蚁群算法(Ant Colony Algorithm,ACA)是由意大利学者M.Dorigo等人于20世纪90年代初提出的一种新的模拟进化算法,其真实地模拟了自然界蚂蚁群体的觅食行为。M.Dorigo等人将其应用于解决旅行商问题(Traveling Salesman Problem,TSP),取得了较好的实验结果。近年来,许多专家与学者致力于蚁群算法的研究,并将其应用于交通、通信、化工、电力等领域,成功解决了许多组合优化问题,如调度问题(Job-shop Scheduling Problem)、指派问题(Quadratic Assignment Problem)、旅行商问题(Traveling Salesman Problem)等。本章将详细阐述蚁群算法的基本思想及原理,并以实例的形式介绍其应用于解决中国旅行商问题(Chinese TSP,CTSP)的情况。按照枚举法,我国31个直辖市、省会和自治区首府(未包括港、澳、台)的巡回路径应有约1.326*1032种,其中一条路径如图22-2所示。试利用蚁群算法寻找到一条最佳或者较佳的路径。2、案例目录:22.1 理论基础22.1.1 蚁群算法基本思想22.1.2 蚁群算法解决TSP问题基本原理22.1.3 蚁群算法解决TSP问题基本步骤22.1.4 蚁群算法的特点22.2 案例背景22.2.1 问题描述22.2.2 解决思路及步骤22.3 MATLAB程序实现22.3.1 清空环境变量22.3.2 导入数据22.3.3 计算城市间相互距离22.3.4 初始化参数22.3.5 迭代寻找最佳路径22.3.6 结果显示22.3.7 绘图22.4 延伸阅读22.4.1 参数的影响及选择22.4.2 延伸阅读22.5 参考文献3、主程序:% 清空环境变量clear allclc% 导入数据load citys_data.mat% 计算城市间相互距离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); else D(i,j) = 1e-4; end end end% 初始化参数m = 50; % 蚂蚁数量alpha = 1; % 信息素重要程度因子beta = 5; % 启发函数重要程度因子rho = 0.1; % 信息素挥发因子Q = 1; % 常系数Eta = 1./D; % 启发函数Tau = ones(n,n); % 信息素矩阵Table = zeros(m,n); % 路径记录表iter = 1; % 迭代次数初值iter_max = 200; % 最大迭代次数 Route_best = zeros(iter_max,n); % 各代最佳路径 Length_best = zeros(iter_max,1); % 各代最佳路径的长度 Length_ave = zeros(iter_max,1); % 各代路径的平均长度 % 迭代寻找最佳路径while iter = rand); target = allow(target_index(1); Table(i,j) = target; end end % 计算各个蚂蚁的路径距离 Length = zeros(m,1); for i = 1:m Route = Table(i,:); for j = 1:(n - 1) Length(i) = Length(i) + D(Route(j),Route(j + 1); end Length(i) = Length(i) + D(Route(n),Route(1); end % 计算最短路径距离及平均距离 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,:); else min_Length,min_index = min(Length); Length_best(iter) = min(Length_best(iter - 1),min_Length); Length_ave(iter) = mean(Length); if Length_best(iter) = min_Length Route_best(iter,:) = Table(min_index,:); else Route_best(iter,:) = Route_best(iter-1),:); end end % 更新信息素 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) = Delta_Tau(Table(i,n),Table(i,1) + Q/Length(i); end Tau = (1-rho) * Tau + Delta_Tau; % 迭代次数加1,清空路径记录表 iter = iter + 1; Table = zeros(m,n);end% 结果显示Shortest_Length,index = min(Length_best);Shortest_Route = Route_best(index,:);disp(最短距离: num2str(Shortest_Length);disp(最短路径: num2str(Shortest_Route Shortest_Route(1);% 绘图figure(1)plot(citys(Shortest_Route,1);citys(Shortest_Route(1),1),. citys(Shortest_Route,2);citys(Shortest_Route(1),2),o-);grid onfor i = 1:size(citys,1) text(citys(i,1),citys(i,2), num2str(i);endtext(citys(Shortest_Route(1),1),citys(Shortest_Route(1),2), 起点);text(citys(Shortest_Route(end),1),citys(Shortest_Route(end),2), 终点);xlabel(城市位置横坐标)ylabel(城市位置纵坐标)title(蚁群算法优化路径(最短距离: num
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民事调解的方法和策略课件
- 自动门项目运营方案
- 2025年春国家开放大学《马克思主义基本原理》期末终考试卷1参考答案试卷1
- 设备工作计划13篇
- 幼儿园 中班科学奇妙的树叶课件
- Unit 10 Lesson 3 Thinkign Skills and Reading Strategies 课件 2024-2025学年仁爱科普版英语七年级下册
- 2025年Android性能优化总结BAT大厂面试总结
- 部编版五年级上册第二单元《搭石》教案
- 建筑施工特种作业-建筑架子工附着式脚手架真题库-6
- 色彩文案题目大全及答案
- 能源计量器具配备和管理
- 《食品经营许可证》申请报告书空白模板
- 试卷交接签字单
- 有限空间作业及应急物资清单
- DB13(J)∕T 8060-2019 城镇供热管道及设备安装工程施工质量验收标准
- 《国际商务》课程
- 压力容器设计管理制度
- 比亚迪员工手册54
- 国际经济学期末考试试题库含答案
- 应力波理论复习资料
- 体育场地与设施
评论
0/150
提交评论