一种基于改进遗传算法的旅行商问题求解方法与流程

文档序号:11408384阅读:491来源:国知局

本发明涉及遗传算法应用于计算机技术领域,尤其涉及一种基于改进遗传算法的旅行商问题求解方法。



背景技术:

在计算机应用领域中,遗传算法的应用遗传算法(geneticalgorithm,ga),是在1975年由美国michigan大学的j.holland教授首次提出的。它是借鉴达尔文进化论以及自然选择学说,模拟生物进化过程的一种计算模型。根据遗传学机理,对问题的解进行类似自然进化过程(适者生存)的处理,使得问题的解朝着适应环境(问题)的方向进化,进而获得最优解的方法。简单、通用、鲁棒性强、适于并行处理是遗传算法的特点。遗传算法是一种不需要指导的,能在搜索过程中自动获取和积聚搜索空间的有关信息,并根据得到的信息调整搜索过程,进而得到接近问题最优解的解的通用搜索算法。因此,遗传算法非常适合应用在组合优化这种需要在庞大的搜索空间中寻优的问题上。

组合优化问题的其中一个典型问题——旅行售货商问题常常被作为检测组合优化问题算法的标准。旅行商问题(travelingsalemanproblem,tsp),又被称为旅行售货员问题,或者货郎担问题。它是组合优化问题中的一个典型例子。旅行商问题的定义非常简单:在给定的点中,售货员从起点出发,每个点必须(只能)经过一次的情况下,回到起点。求实现这个行为的最短路径。

若用穷举法来解决旅行商问题,在n个点的tsp问题中,解即是n个点的全排列,有n个。显然,在n的值很小的时候,穷举法是一个可行的办法,但是,随着n值的增大,解决问题的组合数量将爆炸式增长。而现实生活中tsp问题通常有着较大的n值,因此,相比穷举法,需要一种更为有效的方法来解决tsp问题。



技术实现要素:

为了克服现有技术存在的缺点与不足,本发明提供一种基于改进遗传算法的旅行商问题求解方法,在传统遗传算法的基础上,针对旅行商问题进行优化,以达到改善算法容易早熟收敛的缺点以及优化搜索效率的目的。

为解决上述技术问题,本发明提供如下技术方案:一种基于改进遗传算法的旅行商问题求解方法,包括如下步骤:

s1、针对tsp问题,对路径采用十进制数字串进行编码;

s2、根据编码后的十进制数字串路径,对其进行总长度计算,然后对总长度进行判断,即对于一个tsp问题,路径的总长度越短,其适应度就越高;在编码后的十进制数字串路径的搜索空间u上,定义适应度函数f(x),并定义种群规模n、交叉概率pc、变异概率pm以及迭代次数t;所述种群规模n代表n个个体;

s3、在搜索空间u中,随机地产生n个个体s1、s2、s3、…、sn,构成初始种群s0={s1,s2,s3,…,sn},设置当前迭代数t=0;根据适应度函数f(x),评价种群中个体适应度,若t<t,则结束步骤,否则执行遗传操作步骤;所述遗传操作步骤包括选择操作、交叉操作以及变异操作;

s4、经所述遗传操作步骤得到适应度最高的个体即为所述旅行商问题求解方法的最优解。

进一步地,所述步骤s3中遗传操作步骤,具体为:

s31、选择操作:

采用轮盘赌的方法,以f(x)代表适应度函数,则f(x1)、f(x2)、…、f(xn)分别表示n个个体中每个个体的适应度;对于某个体t,其被选择的概率为p=f(t)/(f(x1)+f(x2)+…+f(xn));

s32、交叉操作:

s321、随机选择一个城市作为子代的起始城市;

s322、在选择下一个城市这一步骤中,比较父代的串中与当前城市相邻的边,选取最小的边对应的城市作为下一个城市;

s323、若步骤s322选择的城市是重复的,则在余下的城市中,按照路径信息素的大小,按照交叉概率pc转换规则选择下一个城市;其中当代信息素的改变与上一轮迭代中路径被选择的次数成正相关,并会伴随这迭代代数的增加逐渐减小;

s324、重复步骤s322-s323,直至生成一个完整的遍历序列;

其中,τij表示从当前城市i到城市j路径上的信息素,信息素更新如下:

τij(n+1)=ρτij(n)+△τij

其中,此公式中n是迭代次数,初始信息素τij(0)=0,m是种群规模,q为信息素质量系数,lk表示路径长度;

s33、变异操作:

变异操作是模拟生物发生会基因突变这一现象,按照变异概率pm,在个体基因的某一位发生变异;

变异操作采用点的变换方法,即初始路径若为1234,在2和4发生变异,变异后的路径为1432;

s34、重复步骤s31-s33,直至迭代次数达到设定值,适应度最高的个体作为所述旅行商问题求解方法的最优解。

进一步地,所述步骤s34中的重复步骤s31-s33,每一次循环中,交叉操作的交叉概率pc取0.9,变异操作的变异概率pm取0.1。

进一步地,所述步骤s3中n的数值为500。

采用上述技术方案后,本发明至少具有如下有益效果:

1、本发明运用了遗传算法,是解决旅行商问题这种np-hard问题的有效算法;

2、本发明针对旅行商问题,在算法编码、适应度设定问题上有针对性的改进,使得算法更适合用来解决旅行商问题;

3、本发明对比传统遗传算法,在交叉操作方面添加了信息素这一特征,使得改进的算法效率更高。

附图说明

图1是本发明一种基于改进遗传算法的旅行商问题求解方法的步骤流程图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。

实施例

如图1所示,本发明提供一种基于改进遗传算法的旅行商问题求解方法,其主要步骤如下所述。

1)编码;2)初始种群的设定;3)适应度函数的设定以及种群适应度的计算;4)遗传操作(选择、交叉、变异);5)算法参数的决定(即控制算法何时停止的参数,有种群规模、交叉概率、变异概率、最大迭代次数等)。算法流程的文字说明如下:

步骤1:对于给定的问题,确定问题的编码形式并将问题编码;本发明针对tsp问题,对路径采用十进制数字串进行编码,在其搜索空间u上,定义适应度函数f(x),并定义种群规模n,交叉概率pc,变异概率pm,以及迭代次数t;

步骤2:在u中,随机地产生n个个体s1,s2,s3,……sn。构成初始种群s0={s1,s2,s3,…,sn},设置当前迭代数t=0;

步骤3:根据适应度函数f(x),评价种群中个体适应度。若满足t<t,跳至步骤5,否则,执行步骤4;

步骤4:对当前种群进行遗传操作,产生新的大小同样为n的种群,转步骤3;

步骤5:输出种群中具有最高适应度的个体作为最优解。

其中,遗传操作(选择、交叉、变异)对于算法的效果有关键性的影响力。

选择(经过选择操作后,下一代的个体比上一代的个体适应度要高,因为适应度越高的越容易存活下来被下一代选中);

选择操作的目的是模仿自然界适者生存的方式,从当前种群中选择优秀的个体,对其进行复制并保留,以用于作为父代进行遗传;而判断个体是否优良则是根据个体适应度值;通常,是适应度值越大的个体越有可能被选择,这也符合了“适者生存”的原则;指导选择这一步骤的称为选择算子,其中,“轮盘赌”方法是比较常见的一种;它首先算出当前种群的总体适应度∑f,然后,对于某个适应度为fx的个体,它在种群适应度中占的比例为fx/∑f,即它有fx/∑f的概率被选中;然后,对于大小为n的种群,反复执行n次,每次按照比例地去决定选择一个个体,这个方法在模拟自然界遗传法则的同时,也不失随机性,即无论是表现好坏,个体始终有着一定的概率被选中,只是适应度大的个体几率更大。这种方法,使得后代种群中,表现优秀的个体越来越多,即搜索往更优解的方向进行移动;

选择操作采用轮盘赌的方法,以f(x)代表适应度函数,则f(x1)、f(x2)、…、f(xn)分别表示n个个体中每个个体的适应度;对于某个体t,其被选择的概率为p=f(t)/(f(x1)+f(x2)+…+f(xn))。

交叉:

交叉操作是模拟生物两两交配产生新基因型的后代这一方法,按照交叉概率pc,将两个个体的染色体,在其染色体某一位置断开,相互交叉,产生带有新基因型的后代;在基因相互交叉的过程中,产生比父代具有更优适应度的子代,体现出搜索的理念;值得一提的是,采用交叉这一方法,子代种群适应度的确是朝着更优的方向移动,这是遗传算法的特色和优点。

交叉操作具体为:

1、随机选择一个城市作为子代的起始城市;

2、在选择下一个城市这一步骤中,比较父代的串中与当前城市相邻的边,选取最小的边对应的城市作为下一个城市;

3、若步骤s322选择的城市是重复的,则在余下的城市中,按照路径信息素的大小,按照交叉概率pc转换规则选择下一个城市;其中当代信息素的改变与上一轮迭代中路径被选择的次数成正相关,并会伴随这迭代代数的增加逐渐减小;

4、重复步骤s322-s323,直至生成一个完整的遍历序列;

其中,τij表示从当前城市i到城市j路径上的信息素,信息素更新如下:

τij(n+1)=ρτij(n)+△τij

其中,此公式中n是迭代次数,初始信息素τij(0)=0,m是种群规模,q为信息素质量系数,lk表示路径长度。

变异(用来产生新的特征):

变异操作是模拟生物发生会基因突变这一现象,按照变异概率pm,在个体基因的某一位发生变异;通常变异概率pm的值取得非常小(自然界中个体发生基因突变的概率也非常小);变异操作的目的在于保持种群的多样性,同时,基因会产生变异,一定程度上克服了陷入局部最优的缺点。变异操作和交叉操作相互配合。

变异操作采取点的变换方法,即初始路径若为1234,在2和4发生变异,变异后的路径为1432。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1