- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用遗传算法求解中国34个省会TSP的问题.
用遗传算法求解中国34个省会TSP问题
一、 TSP问题的描述
旅行商问题(TSP)可以具体描述为:已知n个城市之间的相互距离,现有一个推销员从某一个城市出发,必须遍访这n个城市,并且每个城市只能访问一次,最后又必须返回到出发城市,如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短。
现给出中国34个省会数据,要求基于此数据使用遗传算法解决该TSP问题。
中国34省会位置
city =
1.西藏 2.云南 3.四川 4.青海 5.宁夏 6.甘肃 7.内蒙古 8.黑龙江 9.吉林
10.辽宁 11.北京 12天津 13.河北 14.山东 15.河南 16.山西 17.陕西 18.安徽 19.江苏
20.上海 21.浙江 22.江西 23.湖北 24.湖南 25.贵州 26.广西27.广东 28.福建 29.海南 30.澳门 31.香港 32.台湾 33.重庆 34.新疆
像素坐标如下:
Columns 1 through 11
100 187 201 187 221 202 258 352 346 336 290
211 265 214 158 142 165 121 66 85 106 127
Columns 12 through 22
297 278 296 274 265 239 302 316 334 325 293
135 147 158 177 148 182 203 199 206 215 233
Columns 23 through 33
280 271 221 233 275 322 250 277 286 342 220
216 238 253 287 285 254 315 293 290 263 226
Column 34 104 77
二、遗传算法的介绍
2.1 遗传算法
遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗产操作后的个体集合形成下一代新的种群,对这个新的种群进行下一轮的进化。
2.2 遗传算法的过程
遗传算法的基本过程是:
1. 初始化群体。
2. 计算群体上每个个体的适应度值
3. 由个体适应度值所决定的某个规则选择将进入下一代个体。
4. 按概率Pc进行交叉操作。
5. 按概率Pm进行变异操作。
6. 没有满足某种停止条件,则转第2步,否则进入第7步。
7. 输出种群中适应度值最优的染色体作为问题的满意解或最优界。
停止条件有两种:一是完成了预先给定的进化代数则停止;二是种群中的最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。遗传算法过程图如图2
图2 遗传算法过程框图
三、 遗传算法解决TSP问题的Matlab程序实现
3.1 程序初始化
程序首先读入34个省会城市坐标,计算任意两个城市的距离:
设置遗传算法控制参数。
clear all;clc;clf;
load(‘testdata.mat’);
nlen=length(x1);
xy=[x1;y1];
n = 500; %种群数目
C = 5000; %进化迭代次数
m=2; %适应度归一化淘汰加速指数,取值不宜太大
alpha=0.8; %淘汰保护指数,范围0~1,为1时关闭保护
a = meshgrid(1:nlen); %生成 n x n矩阵
dmat = reshape(sqrt(sum((xy(a,:)-xy(a,:)).^2,2)),nlen,nlen); %计算城市距离矩阵
遗传算法对求解问题本身是一无所知的,这里采用随机生成初始化种群,如下:
[N,NN]=size(dmat);
farm=zeros(n,N); %用于存储种群
for i=1:n
farm(i,:)=randperm(N); %随机生成初始化种群
end
3.2
您可能关注的文档
- 用人单位职业病防治指南GBZT_225-2010..doc
- 用传输矩阵法计算一维光子晶体的带隙特性研究..doc
- 用冰箱做果冻,点心,冰激凌,饮料的方法教学(图片示例)..doc
- 用凌阳单片机实现的智能循迹小车方案..doc
- 用函数实现Inventor中特殊运动的模拟..doc
- 用单片机控制直流电机..doc
- 用单片机构成的波形发生器电路..doc
- 用友ERP沙盘实验总结报告..doc
- 用友ERP供应链管理系统实验指导书..doc
- 用友ERPU872采购系统操作流程..doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)