基于遗传算法求解TSP问题的算法设计
基于遗传算法的TSP问题解决
班级:智能1001学号:20100840126一:问题描述旅行商问题,即TSP问题(Travelling Salesman Problem)又译为旅行商问题,货郎担问题,是数学领域中著名问题之一。
假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。
路径的选择目标是要求得的路径路程为所有路径之中的最小值。
TSP问题是一个组合优化问题。
该问题可以被证明具有NPC计算复杂性。
因此,任何能使该问题的求解得以简化的方法,都将受到高度的评价和关注。
二:遗传算法的基本原理遗传算法是由美国J. Holland 教授于1975 年在他的专著《自然界和人工系统的适应性》中首先提出的,它是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。
遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。
遗传算法,在本质上是一种不依赖具体问题的直接搜索方法,是一种求解问题的高效并行全局搜索方法。
遗传算法在模式识别、神经网络、图像处理、机器学习、工业优化控制、自适应控制、负载平衡、电磁系统设计、生物科学、社会科学等方面都得到了应用。
在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动控制、混沌理论与人工智一样,都是对今后十年的计算技术有重大影响的关键技术”。
基本步骤为:标准的遗传算法包括群体的初始化,选择,交叉,变异操作。
所示,其主要步骤可描述如下:(1)随机产生一组初始个体构成的初始种群,并评价每一个个体的适配值。
(2)判断算法的收敛准则是否满足。
若满足输出搜索结果;否则执行以下步骤。
(3)根据适配值大小以一定方式执行选择操作。
(4)按交叉概率Pc 执行交叉操作。
实验六:遗传算法求解TSP问题实验2篇
实验六:遗传算法求解TSP问题实验2篇第一篇:遗传算法的原理与实现1. 引言旅行商问题(TSP问题)是一个典型的组合优化问题,它要求在给定一组城市和每对城市之间的距离后,找到一条路径,使得旅行商能够在所有城市中恰好访问一次并回到起点,并且总旅行距离最短。
遗传算法作为一种生物启发式算法,在解决TSP问题中具有一定的优势。
本实验将运用遗传算法求解TSP问题,以此来探讨和研究遗传算法在优化问题上的应用。
2. 遗传算法的基本原理遗传算法是模拟自然界生物进化过程的一种优化算法。
其基本原理可以概括为:选择、交叉和变异。
(1)选择:根据问题的目标函数,以适应度函数来评估个体的优劣程度,并按照适应度值进行选择,优秀的个体被保留下来用于下一代。
(2)交叉:从选出的个体中随机选择两个个体,进行基因的交换,以产生新的个体。
交叉算子的选择及实现方式会对算法效果产生很大的影响。
(3)变异:对新生成的个体进行基因的变异操作,以保证算法的搜索能够足够广泛、全面。
通过选择、交叉和变异操作,不断迭代生成新一代的个体,遗传算法能够逐步优化解,并最终找到问题的全局最优解。
3. 实验设计与实施(1)问题定义:给定一组城市和每对城市之间的距离数据,要求找到一条路径,访问所有城市一次并回到起点,使得旅行距离最短。
(2)数据集准备:选择适当规模的城市数据集,包括城市坐标和每对城市之间的距离,用于验证遗传算法的性能。
(3)遗传算法的实现:根据遗传算法的基本原理,设计相应的选择、交叉和变异操作,确定适应度函数的定义,以及选择和优化参数的设置。
(4)实验流程:a. 初始化种群:随机生成初始种群,每个个体表示一种解(路径)。
b. 计算适应度:根据适应度函数,计算每个个体的适应度值。
c. 选择操作:根据适应度值选择一定数量的个体,作为下一代的父代。
d. 交叉操作:对父代进行交叉操作,生成新的个体。
e. 变异操作:对新生成的个体进行变异操作,以增加搜索的多样性。
基于某遗传算法解决TSP问题
基于遗传算法解决TSP问题摘要题目要求给出环游全国全部省会的最短路径方案,是传统的TSP问题,本文将图表数据数字化后,将其转变成为线性规划问题,进而采取遗传算法用Matlab求解出理论上的最短路径与路线图。
通过第一问求出的路线顺序结合实际情况求解出实际情况下的最短路径与最短时间。
针对第一问,首先建立基本TSP模型,求出其线性规划方程组,用Matlab 对地图做出基本处理,求出其像素坐标的矩阵。
将省会城市初始化为种群数据,用遗传算法求解出模型最优解,即最短路径大小与旅游城市顺序。
针对第二问,由于遗传算法求出的是近似最优解,以及实际道路情况不可能是直线距离,所以理论数据与实际有一定差别。
将旅行顺序求解出后,需要根据实际道路情况重新求解出最短路径大小,并根据题目所给条件求解出最短时间。
根据实际情况,求得最后的最短路径长度为20402.9公里,时间为45天。
题目中给出城市转化为图集,一共有33个顶点,数据较大,用Dijkstra 算法和Floyd算法虽然答案可能更精确,但数据处理量大,时间复杂度高。
采用遗传算法可以得到近似最优解,并且精简了时间复杂度。
关键词:最短路径 TSP问题线性规划遗传算法一、问题重述如果从出发,要想开车走遍全国所有的省会城市,而且在到了每个省会城市以后都必须住一晚,第二天早上才能出发,安全起见每天开车时间最多在8小时左右,车速视实际路况而定,一般高速公路可以取平均车速100公里/小时左右,不是高速公路平均车速取60公里/小时左右,从出发要走遍所有省会城市以后回到,开车里程最少需要多少公里?最少需要多少时间?(暂不考虑省)二、问题分析题目要求求出最短路径与时间是典型的TSP问题,即要用最短的总路径走遍所有城市,此处需要设立一个二元组))EV,并且求出一个点的邻接矩阵。
G(G(),(根据经典的TSP模型,得出一般的线性规划方程组。
解TSP模型的一般算法有Dijkstra算法和Floyd算法,由于TSP问题是典型的NP难题,其可能路径数目与城市总数目n是呈指数型增长,并不适合用以上两种算法。
(完整word版)遗传算法求解TSP问题实验报告
人工智能实验报告实验六遗传算法实验II一、实验目的:熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传求解函数优化问题,理解求解TSP问题的流程并测试主要参数对结果的影响。
二、实验原理:旅行商问题,即TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。
假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。
路径的选择目标是要求得的路径路程为所有路径之中的最小值。
TSP问题是一个组合优化问题。
该问题可以被证明具有NPC计算复杂性。
因此,任何能使该问题的求解得以简化的方法,都将受到高度的评价和关注。
遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程。
它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体。
这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。
后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程。
群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。
要求利用遗传算法求解TSP问题的最短路径。
三、实验内容:1、参考实验系统给出的遗传算法核心代码,用遗传算法求解TSP的优化问题,分析遗传算法求解不同规模TSP问题的算法性能。
2、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。
3、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。
4、上交源代码。
四、实验报告要求:1、画出遗传算法求解TSP问题的流程图。
2、分析遗传算法求解不同规模的TSP问题的算法性能。
规模越大,算法的性能越差,所用时间越长。
3、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。
基于遗传算法求解TSP问题
适应度函数
适应度函数用于评估每个染色体的优劣程 度,根据问题的不同,适应度函数需要进 行定制设计。
交叉操作
交叉操作将两个染色体的基因进行交换, 以产生新的个体。常见的交叉方法有单点 交叉、多点交叉等。
选择操作
选择操作根据适应度函数的评估结果,选 择优秀的个体进入下一代种群。常见的选 择方法有轮盘赌选择、锦标赛选择等。
通过选择操作,优秀的个体有更大的机会被选中并参与交叉和变异操作 。交叉操作将两个个体的染色体进行交换,以产生新的个体。变异操作 则对染色体的某些基因进行随机改变,以增加种群的多样性。
遗传算法构成要素
种群
种群是由一组染色体组成的集合,每个染 色体都是优化问题的潜在解。
变异操作
变异操作对染色体的某些基因进行随机改 变,以增加种群的多样性。常见的变异方 法有位点变异、倒位变异等。
04
基于遗传算法的TSP问题求解
TSP问题的遗传算法建模
编码方式
使用染色体编码方式,将TSP问题的解编码 为染色体。
适应度函数
使用距离作为适应度函数,评估染色体的优 劣。
解码方法
通过解码方式将编码后的染色体还原为TSP 问题的解。
遗传操作
包括选择、交叉和变异等操作,用于产生新 的染色体。
编码方式与解码方法
VS
实验环境
本次实验在Windows 10操作系统下进行 ,使用Python 3.8作为编程语言,并利用 NumPy和Matplotlib等库进行数据处理 和可视化。
实验结果展示
最优解
通过运行遗传算法程序,我们得到了最优解为207.9km,与TSPLIB中的最优解206.2km相TSP问题是一个NP-hard问题,它具有以下特征
遗传算法解决TSP问题【精品毕业设计】(完整版)
GA(Fitness,Fitness_threshold,p,r,m)
Fitness:适应度评分函数,为给定假设赋予一个评估分数
Fitness_threshold:指定终止判据的阈值
p:群体中包含的假设数量
r:每一步中通过交叉取代群体成员的比例
m:变异率
初始化群体:P←随机产生的p个假设
在本程序的TSP问题中一共有20个城市,也就是在图模型中有20个顶点,因此一个染色体的长度为20。
3.3适应函数f(i)
对具有n个顶点的图,已知各顶点之间( , )的边长度d( , ),把 到 间的一条通路的路径长度定义为适应函数:
对该最优化问题,就是要寻找解 ,使f( )值最小。
3.4选择操作
选择作为交叉的双亲,是根据前代染色体的适应函数值所确定的,质量好的个体,即从起点到终点路径长度短的个体被选中的概率较大。
(2)交叉(Crossover):对于选中进行繁殖的两个染色体X,Y,以X,Y为双亲作交叉操作,从而产生两个后代X1,Y1.
(3)变异(Mutation):对于选中的群体中的个体(染色体),随机选取某一位进行取反运算,即将该染色体码翻转。
用遗传算法求解的过程是根据待解决问题的参数集进行编码,随机产生一个种群,计算适应函数和选择率,进行选择、交叉、变异操作。如果满足收敛条件,此种群为最好个体,否则,对产生的新一代群体重新进行选择、交叉、变异操作,循环往复直到满足条件。
3.变异:使用均匀的概率从Ps中选择m%的成员.对于选出的每个成员,在它表示中随机选择一个为取反
4.更新:P←Ps
5.评估:对于P中的每个h计算Fitness(h)
从P中返回适应度最高的假设
3.
3.1 TSP问题的图论描述
TSP问题的遗传算法求解
TSP问题的遗传算法求解一、问题描述假设有一个旅行商人要拜访N个城市,要求他从一个城市出发,每个城市最多拜访一次,最后要回到出发的城市,保证所选择的路径长度最短。
二、算法描述(一)算法简介遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,通过模拟自然进化过程搜索最优解。
遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择个体,并借助于自然遗传学的遗传算子(geneticoperators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。
这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。
(摘自百度百科)。
(二)遗传算子遗传算法中有选择算子、交叉算子和变异算子。
选择算子用于在父代种群中选择进入下一代的个体。
交叉算子用于对种群中的个体两两进行交叉,有Partial-MappedCrossover、OrderCrossover、Position-basedCrossover等交叉算子。
变异算子用于对种群中的个体进行突变。
(三)算法步骤描述遗传算法的基本运算过程如下:1.初始化:设置进化代数计数器t=0、设置最大进化代数T、交叉概率、变异概率、随机生成M个个体作为初始种群P2.个体评价:计算种群P中各个个体的适应度3.选择运算:将选择算子作用于群体。
以个体适应度为基础,选择最优个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代4.交叉运算:在交叉概率的控制下,对群体中的个体两两进行交叉5.变异运算:在变异概率的控制下,对群体中的个体两两进行变异,即对某一个体的基因进行随机调整6.经过选择、交叉、变异运算之后得到下一代群体P1。
(完整)用遗传算法求解TSP问题
用遗传算法求解TSP问题遗传算法(Genetic Algorithm——GA),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,它是由美国Michigan大学的J。
Holland教授于1975年首先提出的。
J.Holland 教授和它的研究小组围绕遗传算法进行研究的宗旨有两个:抽取和解释自然系统的自适应过程以及设计具有自然系统机理的人工系统。
遗传算法的大致过程是这样的:将每个可能的解看作是群体中的一个个体或染色体,并将每个个体编码成字符串的形式,根据预定的目标函数对每个个体进行评价,即给出一个适应度值。
开始时,总是随机的产生一些个体,根据这些个体的适应度,利用遗传算子-—选择(Selection)、交叉(Crossover)、变异(Mutation)对它们重新组合,得到一群新的个体.这一群新的个体由于继承了上一代的一些优良特性,明显优于上一代,以逐步向着更优解的方向进化.遗传算法主要的特点在于:简单、通用、鲁棒性强。
经过二十多年的发展,遗传算法已经在旅行商问题、生产调度、函数优化、机器学习等领域得到成功的应用。
遗传算法是一类可用于复杂系统优化的具有鲁棒性的搜索算法,与传统的优化算法相比,主要有以下特点:1、遗传算法以决策变量的编码作为运算对象.传统的优化算法往往直接决策变量的实际植本身,而遗传算法处理决策变量的某种编码形式,使得我们可以借鉴生物学中的染色体和基因的概念,可以模仿自然界生物的遗传和进化机理,也使得我们能够方便的应用遗传操作算子.2、遗传算法直接以适应度作为搜索信息,无需导数等其它辅助信息。
3、遗传算法使用多个点的搜索信息,具有隐含并行性。
4、遗传算法使用概率搜索技术,而非确定性规则。
遗传算法是基于生物学的,理解或编程都不太难。
下面是遗传算法的一般算法步骤:1、创建一个随机的初始状态初始种群是从解中随机选择出来的,将这些解比喻为染色体或基因,该种群被称为第一代,这和符号人工智能系统的情况不一样;在那里,问题的初始状态已经给定了。
改进的遗传算法求解TSP问题_4_1遗传算法求解TSP问题的基本方法_34_38
4 遗传算法求解TSP 问题4.1 遗传算法求解TSP 问题的基本方法4.1.1 编码用遗传算法求解TSP 问题时,TSP 的编码策略主要包括: ① 二进制表示二进制编码将TSP 问题的解空间映射到{0,1}l l B =上,然后在位串空间上进行遗传操作。
由于二进制表示不自然且需要额外的修正算子以保证个体的合法性,在实际中很少应用。
② 近邻表示近邻表示将路径表示为n 个城市的一个排列,且在第i 位城市为j 当且仅当路径中从i 所到达的下一个城市为j 。
例如,排列 (2 4 8 3 9 7 1 5 6) 表示路径: 1-2-4-3-8-5-9-6-7.显然,每一条路径都唯一对应一个近邻表示,然而,任一近邻排列却不一定都对应于合法路径,如近邻排列:(2 4 8 1 9 3 5 7 6)却导致不完全回路1-2-4-1。
③ 次序表示次序表示仍将路径表示成n 个城市的一个排列。
其表示方法为:先取城市集合C 的排列顺序C=(1 2 3 4 5 6 7 8 9)作为次序排列的一个参照点,然后按路径中城市处在C 的位置确定表示串中的点,且每确定一个则从C 中删除相应的城市。
例如,路径 1-2-4-3-8-5-9-6-7其次序表示为(1 1 2 1 4 1 3 1 1).次序表示的主要优点是可以使用传统的交叉算子。
即以次序表示的任两条路径,从某点截断后交换相应的子串所得到的两个后代仍是合法路径。
④ 路径表示路径表示是TSP 的自然、直观的表示方式。
它直接采用城市在路径中的相当位置来进行表示。
例如,路径:5-1-7-8-6-2-9-3-4直接表示成(5 1 7 8 6 2 9 3 4)人们对路径表示的编码策略的TSP 问题的交叉算子进行了大量研究,本文的研究也主要建立在路径表示的基础上。
⑤ 矩阵表示Fox 和 McMahon 等提出了旅程的矩阵表示方法,将一个旅程定义为一个优先权布尔矩阵M,当且仅当城市i 排在城市j 之前时矩阵元素1ij m =。
利用遗传算法解决TSP问题(DOC)
课程实验报告1.实验目的利用遗传算法获得TSP问题的近似解。
2.实验要求要求学生了解遗传算法解决问题的基本流程。
对TSP问题有所了解,知道TSP 问题的难点在什么地方,如何使用遗传算法来获得一个较好的近似解。
3.实验内容已知n个城市之间的相互距离,现有一个推销员必须遍访这n个城市,并且每个城市只能访问一次,最后又必须返回出发城市。
如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短?用图论的术语来说,假设有一个图g=(v,e),其中v是顶点集,e是边集,设d=(dij)是由顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶点且每个顶点只通过一次的具有最短距离的回路。
4.实验软硬件环境基本Windows系统基本运行环境,VS20125.实验方案(1)遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法遗传算法的基本运算过程如下:a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
b)个体评价:计算群体P(t)中各个个体的适应度。
c)选择运算:将选择算子作用于群体。
选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。
选择操作是建立在群体中个体的适应度评估基础上的。
d)交叉运算:将交叉算子作用于群体。
所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。
遗传算法中起核心作用的就是交叉算子。
e)变异运算:将变异算子作用于群体。
即是对群体中的个体串的某些基因座上的基因值作变动。
群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t 1)。
f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
(2)用遗传算法模拟TSP问题TSP问题及旅行商问题,假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。
基于遗传算法的TSP问题优化求解
直接用以上数据模型作为适应度函数 , eval( i) = m in∑d ( t ( i) , t( i + 1) ) 。
(3)种群初始化 。
本文以 9个城市为例 ,城市用编号 1, 2, 3, 4, 5, 6, 7, 8, 9 表示之 。选用 10个样本个体作为种群 ,即随机选取 { 1, 2, 3, 4, 5, 6, 7, 8, 9}的 10 个排列 。另随机产生城市间的距离矩阵 d,计算出十个样本的适应值 。初始化种群算法可表示如下 :
可以得到 10个复制的个体 。
(5)遗传算子设计 。
①杂交算子 : 本文采用部分映射杂交 ,确定交叉操作的父代 ,将 10 个 样本两两分组 ,分为 5组 。从 1到 5重复以下过程 : step 1:从 [ 0, 1 ]中产生两个随机数 a1和 a2,令 r1 = a1 3 10和 r2 = a23 10,确定两个位置 ,对两位置的中间数据进行交 叉 ,如 : r1 = 4, r2 = 9
适应性值评估检测 :适应性函数表明个体或解的优劣性 。 不同的问题 ,适应性函数的定义方式也不同 。
选择 :选择的目的是为了从当前群体中选出优良的个体 , 使它们有机会作为父代为下一代繁殖子孙 。遗传算法通过选 择过程体现这一思想 ,进行选择的原则是适应性强的个体为 下一代贡献一个或多个后代的概率大 。选择实现了达尔文的 适者生存原则 。
参考文献 :
[ 1 ] 陈京民. 数据仓库原理 、设计与应用 [M ]. 北京 :中国水 利水电出版社 , 2004.
[ 2 ] [美 ]M ark Sweiger, M ark R M adsen,等. 点击流数据仓库 [M ]. 陆昌辉 ,张光剑 ,陈佐 ,张丽 ,等译. 北京 : 电子工 业出版社 , 2004.
基于遗传算法求解TSP问题实验报告
基于遗传算法求解TSP问题班级,学号,姓名摘要:巡回旅行商问题(TSP)是一个组合优化方面的问题,从理论上讲,使用穷举法不但可以求解TSP 问题,而且还可以得到最优解。
但是,利用穷举法所耗费的时间巨大的,当问题的规模很大时,穷举法的执行效率较低,不能满足及时的需要。
遗传算法是计算机科学人工智能领域中用于解决最优化的一种搜索启发式算法,是进化算法的一种。
该算法通过模拟生物学交叉、变异等方式,是当前向最优解的方向进化,因此使用于TSP问题的求解。
关键词:人工智能;TSP问题;遗传算法本组成员:林志青,韩会雯,赵昊罡本人分工:掌握遗传算法的基本原理,编写遗传算法中部分匹配交叉、循环交叉和循序交叉的具体实现过程。
1 引言旅行商问题,即TSP问题,是一个最优解的求解问题。
假设有n个城市,并且每个城市之间的距离已知,则如何只走一遍并获得最短路径为该问题的具体解释。
对于TSP问题的解决,有穷举法、分支限界法等求解方式,该文章主要介绍遗传算法求解过程。
遗传算法简称GA,在本质上是一种求解问题的高效并行全局搜索方法。
遗传算法从任意一个初始化的群体出发,通过随机选择、交叉和变异等遗传操作,使群体一代一代的进化到搜索空间中越来越好的区域,直至抵达最优解。
在遗传算法中,交叉操作为主要操作之一,包括部分匹配交叉、循环交叉和顺序交叉等。
2 算法原理与系统设计执行遗传算法,根据需要设定相应的交叉因子、变异因子和迭代次数,并选择相应的交叉算法,当程序图形显示并运算时会得到当前的最优解,判断是否获得最终的最优解,若已得到所需结果,则停止运行,否则继续执行。
具体流程图如下所示:部分匹配交叉(PMX):先随机生成两个交叉点,定义这两点间的区域为匹配区域,并交换两个父代的匹配区域。
如下图所示:父代A:872 | 130 | 9546父代B:983 | 567 | 1420交换后变为:temp A: 872 | 567 | 9546temp B: 983 |130 | 1420对于 temp A、tempB中匹配区域以外出现的数码重复,要依据匹配区域内的位置逐一进行替换。
基于遗传算法求解TSP问题实验报告
基于遗传算法求解TSP问题班级,学号,姓名摘要:巡回旅行商问题(TSP)是一个组合优化方面的问题,从理论上讲,使用穷举法不但可以求解TSP问题,而且还可以得到最优解。
但是,利用穷举法所耗费的时间巨大的,当问题的规模很大时,穷举法的执行效率较低,不能满足及时的需要。
遗传算法是计算机科学人工智能领域中用于解决最优化的一种搜索启发式算法,是进化算法的一种。
该算法通过模拟生物学交叉、变异等方式,是当前向最优解的方向进化,因此使用于TSP问题的求解。
关键词:人工智能;TSP问题;遗传算法本组成员:林志青,韩会雯,赵昊罡本人分工:掌握遗传算法的基本原理,编写遗传算法中部分匹配交叉、循环交叉和循序交叉的具体实现过程。
1 引言旅行商问题,即TSP问题,是一个最优解的求解问题。
假设有n个城市,并且每个城市之间的距离已知,则如何只走一遍并获得最短路径为该问题的具体解释。
对于TSP问题的解决,有穷举法、分支限界法等求解方式,该文章主要介绍遗传算法求解过程。
遗传算法简称GA,在本质上是一种求解问题的高效并行全局搜索方法。
遗传算法从任意一个初始化的群体出发,通过随机选择、交叉和变异等遗传操作,使群体一代一代的进化到搜索空间中越来越好的区域,直至抵达最优解。
在遗传算法中,交叉操作为主要操作之一,包括部分匹配交叉、循环交叉和顺序交叉等。
2 算法原理与系统设计执行遗传算法,根据需要设定相应的交叉因子、变异因子和迭代次数,并选择相应的交叉算法,当程序图形显示并运算时会得到当前的最优解,判断是否获得最终的最优解,若已得到所需结果,则停止运行,否则继续执行。
具体流程图如下所示:部分匹配交叉(PMX):先随机生成两个交叉点,定义这两点间的区域为匹配区域,并交换两个父代的匹配区域。
如下图所示:父代A:872 | 130 | 9546父代B:983 | 567 | 1420交换后变为:temp A: 872 | 567 | 9546temp B: 983 | 130 | 1420对于 temp A、tempB中匹配区域以外出现的数码重复,要依据匹配区域内的位置逐一进行替换。
遗传算法求解TSP问题MATLAB实现-精品
遗传算法求解TSP 问题MATLAB 实现摘要:旅行商问题(TSP )是一个经典的优化组合问题,本文采用遗传算法来求解TSP 问题,深入讨论了遗传算法解决TSP 问题的求解过程,并通过MATLAB 对算法进行了实现,最后对实验结果进行分析,并与粒子群算法进行对比和分析。
关键字:TSP ;遗传算法;粒子群算法0.引言旅行商问题是一个经典的优化组合问题,它可以扩展到很多问题,如电路布线、输油管路铺设等,但是,由于TSP 问题的可行解数目与城市数目N 是成指数型增长的,是一个NP 难问题,因而一般只能近似求解,遗传算法(GA )是求解该问题的较有效的方法之一,当然还有如粒子群算法,蚁群算法,神经网络算法等优化算法也可以进行求解。
遗传算法是美国学者Holland 根据自然界“物竞天择,适者生存”现象而提出的一种随机搜索算法,本文采用MATLAB 来实现遗传算法解决TSP 问题。
1.旅行商问题旅行商问题可以具体描述为:已知n 个城市之间的相互距离,现有一个推销员从某一个城市出发,必须遍访这n 个城市,并且每个城市只能访问一次,最后又必须返回到出发城市,如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短。
用图论术语来表示,就是有一个图g=(v,e),其中v 是定点5,e 是边集,设d=(dij)是有顶点i 和顶点j 之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶点且每个顶点只通过一次的最短距离的回路。
若对与城市v={v1,v2,v3…vn}的一个访问顺序为t=(t1,t2,t3…,tn),其中ti ∈v(i=1,2,..n),且记tn+1=t1,则旅行上问题的数学模型为式1:min ((),(1))(1,....,)I d t i t i i n δ =+ = (1)2.遗传算法与粒子群算法2.1遗传算法遗传算法的基本原理是通过作用于染色体上的基因寻找好的染色体来求解问题,它需要对算法所产生的每个染色体进行评价,并基于适应度值来选择染色体,使适应性好的染色体有更多的繁殖机会,在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗产操作后的个体集合形成下一代新的种群,对这个新的种群进行下一轮的进化。
基于遗传算法解决TSP问题
基于遗传算法解决TSP问题摘要题目要求给出环游全国全部省会的最短路径方案,是传统的TSP问题,本文将图表数据数字化后,将其转变成为线性规划问题,进而采取遗传算法用Matlab 求解出理论上的最短路径与路线图。
通过第一问求出的路线顺序结合实际情况求解出实际情况下的最短路径与最短时间。
针对第一问,首先建立基本TSP模型,求出其线性规划方程组,用Matlab 对地图做出基本处理,求出其像素坐标的矩阵。
将省会城市初始化为种群数据,用遗传算法求解出模型最优解,即最短路径大小与旅游城市顺序。
针对第二问,由于遗传算法求出的是近似最优解,以及实际道路情况不可能是直线距离,所以理论数据与实际有一定差别。
将旅行顺序求解出后,需要根据实际道路情况重新求解出最短路径大小,并根据题目所给条件求解出最短时间。
根据实际情况,求得最后的最短路径长度为20402.9公里,时间为45天。
题目中给出城市转化为图集,一共有33个顶点,数据较大,用Dijkstra算法和Floyd算法虽然答案可能更精确,但数据处理量大,时间复杂度高。
采用遗传算法可以得到近似最优解,并且精简了时间复杂度。
关键词:最短路径TSP冋题线性规划遗传算法一、问题重述如果从杭州出发,要想开车走遍全国所有的省会城市,而且在到了每个省会城市以后都必须住一晚,第二天早上才能出发,安全起见每天开车时间最多在8小时左右,车速视实际路况而定,一般高速公路可以取平均车速100公里/小时左右,不是高速公路平均车速取60公里/小时左右,从杭州出发要走遍所有省会城市以后回到杭州,开车里程最少需要多少公里?最少需要多少时间?(暂不考虑台湾省)二、问题分析题目要求求出最短路径与时间是典型的TSP问题,即要用最短的总路径走遍所有城市,此处需要设立一个二元组(V(G), E(G)),并且求出一个点的邻接矩阵。
根据经典的TSP模型,得出一般的线性规划方程组。
解TSP模型的一般算法有Dijkstra 算法和Floyd算法,由于TSP问题是典型的NP难题,其可能路径数目与城市总数目n是呈指数型增长,并不适合用以上两种算法。
遗传算法解决TSP问题的matlab程序
1.遗传算法解决TSP 问题(附matlab源程序)2.知n个城市之间的相互距离,现有一个推销员必须遍访这n个城市,并且每个城市3.只能访问一次,最后又必须返回出发城市。
如何安排他对这些城市的访问次序,可使其4.旅行路线的总长度最短?5.用图论的术语来说,假设有一个图g=(v,e),其中v是顶点集,e是边集,设d=(dij)6.是由顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶7.点且每个顶点只通过一次的具有最短距离的回路。
8.这个问题可分为对称旅行商问题(dij=dji,,任意i,j=1,2,3,…,n)和非对称旅行商9.问题(dij≠dji,,任意i,j=1,2,3,…,n)。
10.若对于城市v={v1,v2,v3,…,vn}的一个访问顺序为t=(t1,t2,t3,…,ti,…,tn),其中11.ti∈v(i=1,2,3,…,n),且记tn+1= t1,则旅行商问题的数学模型为:12.min l=σd(t(i),t(i+1)) (i=1,…,n)13.旅行商问题是一个典型的组合优化问题,并且是一个np难问题,其可能的路径数目14.与城市数目n是成指数型增长的,所以一般很难精确地求出其最优解,本文采用遗传算法15.求其近似解。
16.遗传算法:17.初始化过程:用v1,v2,v3,…,vn代表所选n个城市。
定义整数pop-size作为染色体的个数18.,并且随机产生pop-size个初始染色体,每个染色体为1到18的整数组成的随机序列。
19.适应度f的计算:对种群中的每个染色体vi,计算其适应度,f=σd(t(i),t(i+1)).20.评价函数eval(vi):用来对种群中的每个染色体vi设定一个概率,以使该染色体被选中21.的可能性与其种群中其它染色体的适应性成比例,既通过轮盘赌,适应性强的染色体被22.选择产生后台的机会要大,设alpha∈(0,1),本文定义基于序的评价函数为eval(vi)=al23.pha*(1-alpha).^(i-1) 。
遗传算法编程求解TSP问题
遗传算法编程求解TSP问题摘要本文利用基本遗传算法的思路寻找双峰或多峰函数的最大值,选择仍然采用轮盘选择方法;交叉算法采用一个启发式交叉算法,交叉位置随机,该算法以一定的概率生成一个比父代好的解,交叉概率取0.1;变异概率0.005。
经多次运行,求得最优值。
停止法则为循环最大遗传代数为止,另外如果30代解没有改进则停止。
的编程环境为Matlab6.5。
关键字遗传算法TSP遗传算法是一种通用性非常强,计算性能非常好的算法,解决TSP问题却存在很多问题,主要问题是解的可行性问题,在交叉,变异操作过程中,可能产生不可行的解,因此交叉和变异算子的设计是本程序的关键。
本程序中交叉算子采用一个启发式交叉算法,该算法以一定概率计算出一个比父代好的子代算法思路:设父代F1:10 4 3 2 9 7 8 1 5 6 F2:9 1 3 5 2 6 7 8 4 10 。
随机确定交叉点,如4。
查找F1中第四位为2。
将F1向左旋转3位,使第四位在成为第一位,得到F1:2 9 7 8 1 5 6 10 4 3。
在F2中找到2所在位置,进行类似旋转,使2成为第一位,得到F2:2 6 7 8 4 10 9 1 3 5。
然后比较两个模式中第一位与第二位的距离:disance(2-9),disance(2-6),取比较小的如2-6所在父代F2不变,另外一个为,将F1进行旋转操作,使6在第2位,得到F2::2 6 10 4 3 9 7 8 1 5。
这样就形成了2 6 *********的模式,如此往复,直到最后一位。
另外将这个交叉算子的效率和普通单点交叉算子的效率进行了比较,发现该方法确实使得算法搜索能力增强。
最短路径为: 244最优解为: 4 8 7 1 9 5 3 10 2 6代数:76该问题采用禁忌搜索算法得到的最优解为229。
可见遗传算法虽然是很好的方法,但是如果设计不好则不一定能够收敛到全局最优值,有文章也表明简单遗传算法是不收敛的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自20世纪60年代以来,一种模拟生物自然遗传与进化过程并将生物进化原理、最优化技术和计算机技术结合起来的优化方法———遗传算法(GeneticAlgorithm,简称GA)被提出并得到广泛研究。
遗传算法是一种全局寻优搜索算法,它首先对问题的可行解进行编码,组成染色体,然后通过模拟自然界的进化过程,对初始种群中的染色体进行选择、杂交和变异,通过一代代进化来找出最优适应值的染色体来解决问题。
遗传算法具有很强的全局搜索能力和较强的自适应性,适合解决连续变量函数优化问题和离散变量的优化组合问题。
遗传算法主要应用于以下方面:函数优化,如一些非线性、多模型、多目标的函数优化问题;组合优化,如TSP、背包问题、图形分割、装箱问题、图的着色等;生产调度问题,如job-shop,flow-shop等;机器学习,如用遗传算法处理分类器;图像处理,如对图像的识别、提取、恢复的解决等;人工生命,基于遗传算法的进化模型是研究人工生命现象的重要基础理论;自动控制,如模糊控制器的优化设计、参数辨识、模糊控制规则学习;生物进化模型及验证工具等等。
1遗传算法求解步骤1)编码,初始化。
随机生成初始种群P(0),设置最大进化代数tmax,种群规模N,初始代数t=0;2)个体评价。
用所构造的适应度函数来计算p(t)中每个个体的适应度F(xi),适应度大小表示了该个体的好坏。
并以概率Pi从P(t)中随机选取一些个体构成一个种群P(t)。
Pi=Fi/Ni=1!Fji=1,……,"#N3)选择操作。
根据各个体的适应度,选用合适的选择算子,从第t代群体中选择一些个体成为中间群体p(t);4)杂交操作。
将种群p(t)中的个体随机搭配成对,对于每个个体,以概率Pc交换它们之间的染色体,得到一个规模为N的杂交后群体;5)变异操作。
对杂交后的群体,以概率Pm改变某一个或某一些基因位上的基因值,生成新一代群体P(t+1);6)终止判断。
若终止条件(①最优个体保持20代不变;②t=tmax;③群体平均适应度与最优个体适应度之差小于ε,ε是任意小的正实数;只要满足其中一条就终止)满足,则算法终止,把种群Pt中的最好个体译码,然后作为最优解输出,结束;否则,t=t+1,转到2。
上述步骤的流程图如图1所示。
算法描述如下:初始化种群规模size,杂交概率Pc,变异概率Pm,迭代次数t=0随机产生初始种群P(0)while终止条件不满足begin新种群P(t+1)的个体数目k=0fori=1tosizedofi=f(xi')begin摘要:TSP是一个典型的组合优化问题,并且是一个NP难题,其可能的路径总数与城市数目n是成指数型增长的,所以一般很难精确地求出其最优解,因而寻找出有效的近似求解算法就具有重要的意义。
现提出一种求解TSP问题比较有效的遗传算法,从其数学模型、遗传算子、评估函数、种群多样性等方面对算法进行了分析,结果表明提出的算法在求解TSP问题上是有效的。
关键词:组合优化;NP难;TSP;遗传算法;最短路径中图分类号:TP301文献标识码:A文章编号:1673-2928(2007)04-0057-04收稿日期:2007-02-26作者简介:张春霞(1973-),女,新乡市人,河南交通职业技术学院讲师,硕士。
研究方向:数据挖掘与人工智能。
基于遗传算法求解TSP问题的算法设计(1.河南交通职业技术学院,郑州450005;2.武汉大学,武汉430072)张春霞1王蕊2当前最优解=max(fi)对应的个体whilek<sizedo用双亲选择算子S从P(t)中选择双亲beginifpc>random[0,1)then用杂交算子C产生子代ifpm>random[0,1)then用变异算子M改变子代将生成的子代存入P(t+1)k=k+lendendt=t+1end输出当前最优解即为本次遗传进化最优解。
2TSP的数学描述及模型TSP(travelingsalesmanproblem旅行商问题)可描述为:已知n个城市各城市间的相对距离,某一旅行商从某个城市出发访问每个城市一次且仅一次,最后回到出发城市,怎样安排才使其所走路线最短?TSP是一个典型的优化组合问题,它需要求出旅行商从某一城市出发经过所有城市所走路程的最短路径,其可能的路径数与城市个数成指数关系增长。
用图论的术语来说,假设有一个图G=(V,E),其中V是顶点集,E是边集,设D=(dij)是由顶点i与顶点j间的距离所组成的距离矩阵,TSP就是求出一条通过所有顶点且每个顶点只通过一次的最短路径的哈密尔顿回路。
通常说的TSP都指对称型的TSP。
若对于n个城市V={V1,V2,…,Vn}的一个访问顺序为T=(t1,t2,…,tn),其中ti∈V(i=1,2,…,n),且记tn+1=t1,则TSP数学模型为:minL=ni=1!dtiti+1目前应用遗传算法解决问题,主要要解决编码问题和算子的设计问题。
编码方式约束了运算空间的大小,好的编码方式可以压缩求解空间,提高运算效率。
3算法设计3.1参数编码和初始种群的产生TSP的编码策略主要包括二进制表示、近邻表示、次序表示、路径表示、矩阵表示和边表示等。
由于二进制表示不自然且需要额外的修正算子以保证个体的合法性,在实际中很少使用。
针对TSP问题,编码规则通常是取n进制编码,即每个染色体仅从1到n的整数里面取一个值,每个个体的长度为n,n为城市总数。
路径表示可能是TSP最自然、最直接的表示方式。
它直接采用城市在路径中的相当位置来进行表示。
可以定义一个s×t大小的pop矩阵来表示种群。
例如,假设城市数为30,则定义t=31,矩阵每一行的前30个元素表示经过的城市编号,最后一个元素表示经过这些城市要走过的距离。
考虑到初始种群的多样性,在解空间中随机产生初始种群,并使其均匀分布于解空间。
城市的数目大小,一般s取300 ̄500。
3.2适应度函数设计在TSP的求解中,可以用费用函数或距离作为问题的适应值,来衡量求解结果是否最优,在pop矩阵中每一行最后一个元素表示经过的距离的总和,用它作为适应值。
通过下面的函数计算最后一位元素。
%求城市距离的总和function[pop]=distance(pop)[s,t]=size(pop);fori=1:sdd=0;forj=1:t-2dd=dis(pop(i,j),pop(i,j+1))+dd;enddd=dd+dis(pop(i,1),pop(i,t-1));pop(i,t)=dd;endfunction[d]=dis(m,n)%30个城市坐标x=[879183716468838774715854513741272225184131824254145445862];y=[73846446058697678716962678494996460625450404042382621353532];m=m+1;n=n+1;d=sqrt((x(m)-x(n))^2+(y(m)-y(n))^2)^0.5;计算出初始群体的适应值后,就要进行选择操作,进行初步优化。
3.3选择算子设计选择就是从群体中选择优胜个体、淘汰劣质个体的操作,它是建立在群体中个体适应度评估基础上。
这里采用方法是最优保存方法。
算法就是首先将群体中适应度最大的k个个体直接替换适应度最小的k个个体。
3.4杂交算子设计杂交算子的设计直接影响到种群收敛速度和最优解的取得,在遗传算法中起着核心的作用,它是指将个体进行两两配对,并以杂交概率Pc把配对的父代个体加以替换重组而生成新个体的操作。
有关路径表示的杂交算子主要有:部分映射杂交、有序杂交、循环杂交、基于位置杂交、有序杂交等。
这里采用的方法是有序杂交法。
具体实现的步骤是:步骤1:随机选取两个杂交点crosspoint(1)和crosspoint(2);步骤2:两后代先分别按对应位置复制双亲X1和X2匹配段中的两个子串A1和B1;步骤3:在对应位置交换双亲匹配段以外的城市,如果交换后,后代X1'中的某一城市a与子串A1中的城市重复,则将该城市取代子串B1与A1中的城市a具有相同位置的新城市,直到与子串A1中的城市均不重复为止。
对后代X2'亦然,如图2所示,有序杂交算子能够有效地继承双亲的部分基因成分,达到了进化过程中的遗传功能,使该算法并不是盲目搜索,而是趋向于使群体具有更多的优良基因,最后实现寻优的目的。
3.5变异算子设计变异操作是以变异概率Pm对群体中个体串某些基因位上的基因值作变动,若变异后子代的适应度值更加优异,则保留子代染色体,否则,仍保留父代染色体。
对于TSP问题,已知的变异算子有倒位、插入、移位、互换、基于位置的变异、打乱变异等。
这些变异算子除了倒位变异外,都没有考虑边的邻接关系,不能保留原有边的邻接关系。
这样就不能把巡回路线上的优良性能较好的遗传到下一代,也就不能提高寻优速度。
这里采用的方法是倒位变异法,即首先在父体中随机地选择两截断点,然后将该两点所夹的子串中的城市进行反序。
例如有父体X为(1374805962)。
如果rand<Pm那么随机选择来自同一个体的两个点mutatepoint(1)和mutatepoint(2),比如说3和7,倒置这两点之间的部分,产生后代子体X'为(1375084962)。
求解TSP时,变异算子的设计要比杂交算子的设计灵活的多。
任何具有局部搜索功能的算子都可作为它的变异算子。
4仿真实验与结果分析以初始化程序中给出城市的位置坐标,并用编程实现仿真,分析结果。
这里设定交叉概率Pc=0.9,变异后概率Pm=0.2,初始种群个数s=250,选择个数k=20,50代后还有很多交叉路径,所得最短距离为473.4999,离最优结果还差很远。
很多文献中记录了对遗传算法的改进,如文献[2]改进的遗传算法遗传50代后所得最短距离为425.0778,已经非常接近最优结果,通过文献[3]知道这个问题的最优结果423.7601。
从上面的叙述中可以看出,从搜索角度,遗传算法具有许多独特的优点:1)不必非常明确描述问题的全部特征,通用性和鲁棒性强,能很快适应问题和环境的变化;对领域知识依赖程度低,不受搜索空间限制性假设的约束,不必要求连续性、可导或单峰等。
2)从多点进行搜索,如同在搜索空间上覆盖的一张网,搜索的全局性强,不易陷入局部最优:具有隐并行性,非常适合于并行计算。
参考文献:[1]潘正君,康立山,陈毓屏.演化计算[M].北京:清华大学出版社,2004.[2]敖友云,迟洪钦.基于遗传算法求解TSP问题的一种算法X1:98|45671|320X2:87|14032|965X1':83|45671|902X2':98|14032|756图2有序杂交算子59张春霞王蕊:基于遗传算法求解TSP问题的算法设计第四期参考文献:[1]杨纶标,高英仪.模糊数学原理与方法[M].广州:华南理工大学出版社,2004:80-213.[2]赵建.海水入侵水化学指标及侵染程度评价研究[J].地理科学,1998,18(1):64-69.[3]梁相钦.饮用水水质准则[M].北京:人民卫生出版社,2003:14-20.[4]涂向阳,高学平.模糊数学在海水入侵地下水水质评价中的应用[J].水刊学报,2003(8):70-104.Abstract:Seawaterintrusionisageologicalhazardinmanycoastalcountryfacing.Itsinfluenceisseriousbutneglectedeasily,soitisnecessarytoevaluatingseawaterintrusion.Fivehydro-chemicalindexes,includingC1-,M,SO42-,rHCO-3/rCl-andSAR,aresuggestedtobeimpactfactors.Basedonfuzzytheory,themodeloffuzzycsynthesizedevaluationofseawaterintrusionisestablished,andtheseawaterintrusiondegreeisdividedintofourranking.Takingthe284wellingardenofYongFuofYantaicityasanexample,accordingtoitswaterqualitydatain2006,thisarticlegivesaevaluation.Keywords:sweaterintrusion;fuzzysynthesizedevaluation;chemicalindexes;waterqualityFuzzySynthesizedEvaluationinEvaluationofSeawaterIntrusionTIANMeiqing,XIAOTongliang(ArchitectureDepartmentofSuqianCollege,Suqian223800,China)(上接第40页)[J].计算机与数字工程,2006(4).[3]ZbigniewMichalewiczDavid,BFogel.如何求解问题-现代启发式方法[M].曹宏庆,李艳,董红斌,等译.中国水利水电出版社,2003.[4]高经纬,张煦,李峰,等.求解问题的遗传算法实现[J].计算机时代,2004(2).[5]熊伟清,郭举良,魏平.一种快速求解问题的遗传算法[J].微电子学与计算机,2004(1).[6]高经维,张煦,李峰,等.求解TSP问题的遗传算法实现[J].计算机时代,2004(2).[7]易敬,王平,李哲.基于遗传算法的TSP问题研究[J].信息技术,2006(7).60安阳工学院学报JournalofAnyangInstituteofTechnology2007年Abstract:TSPisatypicalcombinationoptimizationproblem,whichisalsoaNPhard-problem.It'ssizeisincreasedbyexponentialn.So,itishardtofindaprecisionresult,anditisveryimportanttosearchforthenearresult.Thispaperproposedaneffectivemethodbasedonimprovedgeneticalgorithm,analyzedthemathematicalmodel,algorithmoperators,evaluationfunction,andpopulationdiversity.TheexperimentresulthasprovedthatthisalgorithmiseffectivetosearchTSPoptimizationresult.Keywords:combinationoptimization;NPhardproblem;TSP;Geneticalgorithm;shortestpathAMethodDesignBasedonGeneticAlgorithmforSolvingTSPZHANGChunxia1WANGRui2(HenanCommunicationsPolytechnic,Zhengzhou450005,China;WuhanUniversity,Wuhan430072,China)。