遗传算法求解
TSP
问题
MATLAB
实现
摘要
?/p>
旅行商问题(
TSP
)是一个经典的优化组合问题,本文采用遗传算法来求解
TSP
问题,深入讨论了
遗传算法解决
TSP
问题的求解过程,
并通过
MATLAB
对算法进行了实现?/p>
最后对实验结果进行分析?/p>
并与?/p>
子群算法进行对比和分析?/p>
关键?/p>
?/p>
TSP
;遗传算法;粒子群算?/p>
0.
引言
旅行商问题是一个经典的优化组合问题?/p>
它可以扩展到很多问题?/p>
如电路布线?/p>
输油?/p>
路铺设等?/p>
但是?/p>
由于
TSP
问题的可行解数目与城市数?/p>
N
是成指数型增长的?/p>
是一?/p>
NP
难问题,因而一般只能近似求解,遗传算法?/p>
GA
)是求解该问题的较有效的方法之一,当
然还有如粒子群算法,
蚁群算法?/p>
神经网络算法等优化算法也可以进行求解?/p>
遗传算法是美
国学?/p>
Holland
根据自然界“物竞天择,适者生存”现象而提出的一种随机搜索算法,本文
采用
MATLAB
来实现遗传算法解?/p>
TSP
问题?/p>
1.
旅行商问?/p>
旅行商问题可以具体描述为?/p>
已知
n
个城市之间的相互距离?/p>
现有一个推销员从某一?/p>
城市出发?/p>
必须遍访?/p>
n
个城市,
并且每个城市只能访问一次,
最后又必须返回到出发城市,
如何安排他对这些城市的访问次序,
可使其旅行路线的总长度最短?/p>
用图论术语来表示?/p>
?/p>
是有一个图
g=(v,e),
其中
v
是定?/p>
5
?/p>
e
是边集,?/p>
d=(dij)
是有顶点
i
和顶?/p>
j
之间的距离所
组成的距离矩阵,
旅行商问题就是求出一条通过所有顶点且每个顶点只通过一次的最短距?/p>
的回路?/p>
若对与城?/p>
v={v1,v2,v3
?/p>
vn}
的一个访问顺序为
t=(t1,t2,t3
?/p>
,tn)
?/p>
其中
ti
?/p>
v(i=1,2,..n),
且记
tn+1=t1,
则旅行上问题的数学模型为?/p>
1
?/p>
min
(
(
),
(
1))
(
1,....,
)
I
d
t
i
t
i
i
n
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
?/p>
1
?/p>
2.
遗传算法与粒子群算法
2.1
遗传算法
遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题?/p>
它需?/p>
对算法所产生的每个染色体进行评价?/p>
并基于适应度值来选择染色体,
使适应性好的染色体
有更多的繁殖机会?/p>
在遗传算法中?/p>
通过随机方式产生若干个所求解问题的数字编码,
即染
色体?/p>
形成初始种群;通过适应度函数给每个个体一个数值评价,
淘汰低适应度的个体,?/p>
择高适应度的个体参加遗传操作?/p>
经过遗产操作后的个体集合形成下一代新的种群,
对这?/p>
新的种群进行下一轮的进化?/p>
2.2
遗传算法的过?/p>
遗传算法的基本过程是?/p>
1.
初始化群体?/p>
2.
计算群体上每个个体的适应度?/p>
3.
由个体适应度值所决定的某个规则选择将进入下一代个体?/p>
4.
按概?/p>
Pc
进行交叉操作?/p>
5.
按概?/p>
Pm
进行变异操作?/p>
6.
没有满足某种停止条件,则转第
2
步,否则进入?/p>
7
步?/p>