CN111340303A - 基于新型混合蛙跳算法的旅行商路线规划方法 - Google Patents
基于新型混合蛙跳算法的旅行商路线规划方法 Download PDFInfo
- Publication number
- CN111340303A CN111340303A CN202010155411.3A CN202010155411A CN111340303A CN 111340303 A CN111340303 A CN 111340303A CN 202010155411 A CN202010155411 A CN 202010155411A CN 111340303 A CN111340303 A CN 111340303A
- Authority
- CN
- China
- Prior art keywords
- city
- individual
- subgroup
- pop
- population
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Strategic Management (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Economics (AREA)
- Evolutionary Biology (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于新型混合蛙跳算法的旅行商路线规划方法,(1)问题信息读取,包括各个访问城市坐标和问题规模;(2)初始化算法参数;(3)生成初始候选种群,并计算适应度;(4)采用反向轮盘赌策略选择出进化种群;(5)建立独立最优子群,并根据个体适应度划分子群;(6)分配每个子群的专属全局最优解,对各个子群进行局部搜索;(7)将各子群混洗,增强局部搜索,放回到候选种群,重新选出迭代种群参与下一次迭代;(8)判断迭代次数是否达到最大值,若达到,则终止迭代,输出适应度最优的个体,该个体即为旅行商访问城市顺序。本发明具有搜索速度快,搜索能力强,规划路线短的优点。
Description
技术领域
本发明涉及路径规划技术领域,具体而言涉及一种基于新型混合蛙跳算法的旅行商路线规划方法。
背景技术
现实生活中的大多数优化问题属于组合优化问题。旅行商问题(travelingsalesman problem, TSP)是众多组合优化问题中最具有代表性的问题之一,该问题可以简单描述为在多个城市之间寻找路径最短的Hamiltonian回路的优化问题。在工程实践中,诸多实际问题都可以转化为TSP进行求解,如电路印刷、物流运输、机器人路径规划、网络布线等工程问题。然而,旅行商问题已被证明为NP-hard问题,随着问题规模的增加,其可行解集合也呈指数型增长,不可避免地出现“组合爆炸现象”。因此,对于TSP求解算法的研究具有重要的理论科研价值和社会经济效益。
混合蛙跳算法(shuffled frog leaping algorithm,SLFA)是Eusuff和Lansey为解决组合优化问题于2003年提出的,也是属于群智能算法的一种,该算法结合模因算法和粒子群算法的优点,即采用模因算法中的个体更新机制模拟青蛙跳跃,通过粒子群的群体性行为实现全局的信息共享,算法整体结构简单,思路清晰,易于实现且寻优性能良好。蛙跳算法作为一种仿生学群体智能算法,模拟湿地青蛙种群觅食行为,即在湿地中分布若干石头,青蛙在石头上跳跃以寻找到食物最多的点,每只青蛙带有不同的信息,将种群分为不同的组,通过不同的青蛙个体进行信息交流,实现局部搜索;当局部搜索执行到一定程度时,将各子群混洗,实现全局信息交换。新型混合蛙跳算法是基于基本混合蛙跳算法的改进版本,它的基本步骤如下:采用整数编码的方式,随机生成候选种群,计算每个个体的适应度值;采用反向轮盘赌策略从候选种群选择出迭代种群和未被选中种群;在局部搜中,首先根据适应度排序,确定独立优秀子群和若干普通子群,随后将独立最有子群的个体随机分配给不同子群作为专属全局最优解,当该子群不是第一次搜索时,首先采用片段交叉策略和2-opt优化算法实现对其局部最优解变异,然后采用贪婪交叉算子作为个体生成算子并根据优胜劣汰规则实现各子群局部最劣解解的更新;将更新后的独立最优子群和所有普通子群混洗为迭代种群,并采用 2-opt算法和近邻点插法强化局部搜索,将更新后的迭代种群和未被选中种群混洗成下次迭代的候选种群。然而,采用传统混合蛙跳算法的旅行商路线规划方法仍存在以下不足之处:收敛速度慢,易于陷入局部最优,求解精度低。由李玺、窦硕鹏等提出的《混合蛙跳移动机器人路径规划算法》中提出了一种新的路径规划方法,将路径规划问题转换为求解最优化问题,基于青蛙与目标和障碍物之间的距离来定义青蛙的适应度,通过在青蛙更新时引入种群最优蛙和平均值,避免陷入局部最优;通过引入欧氏距离来设计一种自适应步长算子,根据青蛙与目标之间的距离来调节步长,提高了算法的收敛精度。在仿真实验中,与传统的蛙跳算法相比,改进的算法规划的平均时间从7.87s提升至5.34s,成功率从86.7%提高至100%,但其对步长的调节精度要求较高,否则很难达到预想目的。因此,提出一种收敛效率更高且具有较强跳出局部最优能力的路线规划方法极为必要。
发明内容
本发明目的在于提供一种基于新型混合蛙跳算法的旅行商路线规划方法,能够极大地提高算法的收敛速度,具有较强的跳出局部最优的能力,从而快速规划出一条高效的路线。
为达成上述目的,结合图1,本发明提出一种基于新型混合蛙跳算法的旅行商路线规划方法,包括以下步骤:
S1,读取问题输入的信息,定义优化目标,设定约束条件:
所述问题的输入信息包括旅行商需要访问的城市的坐标信息和问题规模T;所述优化目标为规划路线的路径长度最短;所述约束条件为每个城市必须被访问且仅访问一次,从一点出发最终回到该城市;
S2,初始化新型混合蛙跳算法参数:
设置新型混合蛙跳算法进化种群规模为N、候选种群规模N*2、子群数m、局部搜索次数L、全局迭代次数为G、邻域搜索最大规模Z、设置迭代计数器t=0;
S3,生成初始候选种群,并计算适应度:
采用整数编码,随机生成N*2个个体构成候选种群C_Pop,每个个体表示表示访问城市顺序:
X={x1,x2,…,xT}
其中,x1表示访问城市的标号;计算每个个体的目标值f(X):
其中,dij表示城市i与城市j之间的距离,则个体的适应度为F(X):
即个体的适应度越大则个体质量越好;
S4,从候选种群选出进化种群;
采用反向轮盘赌策略,从候选种群C_Pop中选择N个个体组成迭代种群I_Pop,以及未被选中个体组成种群US_Pop;
S5,划分子群:
根据个体适应度,对迭代种群I_Pop中个体进行降序排序,划分独立最优子群B_Group,和普通子群C_Groupi;
S6,对各子群局部搜索:
将B_Group中个体分配为每个普通种群C_Groupi的专属全局最优解Xig,当该子群不是第一次搜索时,首先采用片段交叉策略和2-opt优化算法实现对其局部最优解Xib变异,然后采用贪婪交叉算子作为个体生成方式,并根据优胜劣汰的规则更新局部最劣Xiw,每个子群进行局部搜索L次;
S7,混洗所有子群,增强局部搜索:
将所有子群进行重新混洗,根据适应度对I_Pop中个体进行降序排序,采用2-opt算法和点插法对前每m个体进行局部搜索,并将更新后I_Pop和US_Pop混合组成C_Pop,t=t+1;
S8,终止准则判断:
若t>G则终止迭代,输出适应度最优的个体,该个体为规划好的访问城市的顺序,否则 t=t+1,转步骤S4。
作为其中的一种优选例,步骤S1中,所述读取问题输入的信息,定义优化目标,设定约束条件的过程包括以下步骤:
设城市坐标信息为该城市的平面坐标信息{(Cx1,Cy1),(Cx2,Cy2),…,(CxT,CyT)},问题的规模表示访问城市的数量T,则不同城市间距离为欧式距离计算公式,其定义为:
其中,dij表示城市i与城市j之间的距离;
定义优化目标主体为规划路线的长短,其定义为:
定义约束条件包括以下两个:
(1)每个城市必须被访问且仅被访问一次,即:
(2)某城市出发,最终回到该城市,即:
作为其中的一种优选例,步骤S4中,所述反向轮盘赌策略表示个体适应度大小与其被选中概率成反比,即个体Xi被选中的概率Pi和累计概率Qi分别为:
其中,Fi表示个体Xi的个体适应度值;
所述从候选种群选出进化种群的实现步骤为:
S41,确认候选种群C_Pop,需要选出个体数量N,令代数计数器g=1;
S42,计算C_Pop中每个个体被选中的概率Pi和累计概率Qi;
S43,生成一个均匀分布在[0,1]的随机数r;
S44,如果r<=Q1,选中个体X1放入迭代种群I_Pop,从C_Pop删除X1;
S45,如果Qk-1<r<=Qk,则选中Xk放入迭代种群I_Pop,从C_Pop删除Xk;
S46,如果g=N,将C_Pop中剩下个体放入US_Pop;否则,g=g+1,转至步骤S42。
作为其中的一种优选例,步骤S5中,所述划分子群的实现步骤为:
S51,对I_Pop中所有个体Xi根据适应度降序排序;
S52,选取前m个体组成独立最子群B_Group;
S53,针对剩下的(N-m)个个体,将第1个个体划分到第1个普通子群C_Group1,第2个个体划分到第2个普通子群C_Group2,依次放入,第m个个体划分到第m个普通子群 C_Groupm,第m+1个个体划分到第1个普通子群C_Group1……直至将(N-m)个个体划分完毕。
作为其中的一种优选例,步骤S6中,所述的为每个普通种群C_Groupi的专属全局最优解Xig是指将独立最优子群B_Group中m个个体随机分配给不同的普通子群,作为该子群的专属全局最优解Xig。
作为其中的一种优选例,步骤S6中,所述采用贪婪交叉算子作为个体生成方式,并根据优胜劣汰的规则更新局部最劣Xiw的实现步骤如下:
S601,确定需要交叉的优解Xb和劣解Xw;
S602,随机选择出发城市C,选择城市C在Xb中的左侧城市CLb和右侧城市CRb,在劣解Xw中左侧城市CLw和右侧城市CRw作为下个访问的候选城市;
S603,在候选城市集{CLb,CRb,CLw,CRw}中,选择距离城市C最近的城市作为下一访问城市C’;
S604,如果城市C’∈{CLb,CLw},执行S605,否则执行S606;
S605,在Xb和Xw中删除C,将C’作为出发城市C,仅从C在两个解中左侧城市{CLb,CLw}中选择距离C最短的城市作为下一访问城市C’,重复执行S605,直至访问所有城市,即生成新解Xnew;
S606,在Xb和Xw中删除C,将C’作为出发城市C,仅从C在两个解中右侧城市{CRb,CRw}中选择距离C最短的城市作为下一访问城市C’,重复执行S606,直至访问所有城市,即生成新解Xnew。
作为其中的一种优选例,步骤S6中,所述局部搜索涉及局部最优变异,是基于普通子群 C_Groupi中最优个体Xib,具体实现步骤如下:
S611,确定被变异解XV和最大邻域解数量Y,计数器y=1;
S612,问题规模为T,将解X={x1,x2,…,xT}作为一个闭环回路;
S611,随机生成片段分割的数量SN∈[1,T/5];
S613,随机生成SN个不同的分割点SP={sp1,sp2,…,spSN};
S614,将X分割成SN个片段,其中,当spi不为1时,切割点spi位于xspi-1和xspi之间;当 spi为1时,切割点spi位于x1和xT之间;
S615,按照每个切割点spi随机生成的顺序,依次将各个片段拼接,生成新解XS;
S616,利用2-opt算子生成XS的邻域解XN并计算适应度;
S617,如果f(XN)<f(XV),XN赋值给XV,跳出循环;否则,若y<Y,跳转到(g),y=y+1,否则结束循环。
作为其中的一种优选例,步骤S7中,所述混洗所有子群是将独立最优子群B_Group和所有普通子群C_Groupi混洗。
作为其中的一种优选例,步骤S7中,所述增强局部搜索表示将混洗后的种群I_Pop根据适应度降序排序,对前m个个体进行局部搜索,采用近邻点插法作为搜索算子,具体实现为:
S71,确定待搜索解XS和问题规模T,迭代计数器为t=1,v=1;
S72,选择距离城市xt最近的4个城市{xt1,xt2,xt3,xt4};
S73,将xt从XS删除,分别插入xtv两侧得到两个邻域解{XN1,XN2};
S74,选出XN1和XN2中适应度最佳的解作为XN;
S75如果f(XN)<f(XS),则XN赋值给XS,跳出循环,输出XS;否则如果v<=4,v=v+1跳转到S73,否则转到S76;
S76,如果t>T,输出XS;否则t=t+1,跳转到S72。
以上本发明的技术方案,与现有相比,其显著的有益效果在于:
(1)本发明采用一种新型混合蛙跳算法实现路径规划,利用旅行商问题的启发信息,引入增加种群多样性策略、增强种群开发能力策略以及增强局部搜索等,促使该算法的性能优于传统的混合蛙跳算法。
(2)设计了一种基于近邻启发信息的贪婪交叉算子,以实现在迭代过程中的新个体生成,其中,交叉策略实现优解和劣解的交互,贪婪思想促使新个体即能够吸收优解的优良特征,又能保留劣解中的有效信息。
(3)提出反向轮盘赌策略,即适应度值和被选中比例成反比,在该机制下每次迭代都会促使部分较劣个体参与进化,它们可能会因为进化而成为下一次迭代候选解集中的优良个体,从而参与下一次迭代的概率降低;相反,上一次迭代候选集中的优良个体可能会因为没有进化而成为较劣个体,从而参与下一次迭代的概率得到提高,如此各种类型的个体反复交替参与迭代,即每次迭代都会有新个体引入,增加了种群的多样性,且种群整体质量不会下降。
(4)修改了标准混合蛙跳算法单一全局最优解的框架,提出独立最优子群概念,与原来单一全局最优解引导的方式不同,每个子群随机从独立最有子群中获得专属的全局最优解,降低了种群的同化速度,强化探索开发能力,且随机分配的方式平衡了每组的搜索能力,增强了群体间的信息交互。
(5)设计了局部最优变异策略,利用启发信息保证了解在变异的同时具有一定的正向引导能力,从而增强了算法跳出局部最优的能力。
(6)基于TSP自身特点,引入2-opt算子和近邻点插算子实现对局部区域的深度搜索,弥补了具有较强全局搜索能力的蛙跳算法在局部搜索能力不足的缺陷。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1为本发明基于新型混合蛙跳算法的旅行商路线规划的主体流程图。
图2为本发明与基本混合蛙跳算法的进化曲线比较图。
图3为采用本发明新型混合蛙跳算法求解实施例得到的最佳路线规划图。
图4为采用基本混合蛙跳算法求解实施例得到的最佳路线规划图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
从TSPLIB选取一个实例St70,有1个旅行商,需要访问70个城市,城市坐标(Cxi,Cyi),如表1所示。
表1
编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
坐标 | (64,96) | (80,39) | (69,23) | (72,42) | (48,67) | (58,43) | (81,34) | (79,17) | (30,23) | (42,67) |
编号 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
坐标 | (7,76) | (29,51) | (78,92) | (64,8) | (95,57) | (57,91) | (40,35) | (68,40) | (92,34) | (62,1) |
编号 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
坐标 | (28,43) | (76,73) | (67,88) | (93,54) | (6,8) | (87,18) | (30,9) | (77,13) | (78,94) | (55,3) |
编号 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
坐标 | (82,88) | (73,28) | (20,55) | (27,43) | (95,86) | (67,99) | (48,83) | (75,81) | (8,19) | (20,18) |
编号 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
坐标 | (54,38) | (63,36) | (44,33) | (52,18) | (12,13) | (25,5) | (58,85) | (5,67) | (90,9) | (41,76) |
编号 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
坐标 | (25,76) | (37,64) | (56,63) | (10,55) | (98,7) | (16,74) | (89,60) | (48,82) | (81,76) | (29,60) |
编号 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |
坐标 | (17,22) | (5,45) | (79,70) | (4,100) | (17,82) | (74,67) | (10,68) | (48,19) | (83,86) | (84,94) |
使用本发明提出的基于新型混合蛙跳算法的旅行商路线规划方法求解该实例的规划方案,主体流程右图2所示,具体步骤如下:
(1)初始化。读取实例的输入信息,包括访问城市坐标信息(见表1)和问题规模T;给出优化目标的定义,并设定约束条件。
优化目标“路径长度”表示旅行商访问所有城市并回到出发地点城市所走路径的长度,它定义为:
其中,dij表示城市i与城市j之间的距离,而城市间距离采用欧式距离计算:
其中,Cxi,和Cyi表示城市的坐标信息,如表1所示。
约束条件有两个:
约束条件一:“每个城市必须访问且仅访问一次”,即:
约束条件二:“从某一城市出发最终返回该城市”,即:
(2)初始化新型混合蛙跳算法参数:
设置新型混合蛙跳算法进化种群规模N为200、候选种群规模N*2为400、子群数m为20、局部搜索次数L=10、全局迭代次数G为500、邻域搜索最大规模Z为50、设置迭代计数器t=0。
(3)生成初始候选种群,并计算适应度:
采用整数编码,随机生成N*2个个体构成候选种群C_Pop,每个个体表示表示访问城市顺序:
X={x1,x2,…,xT}
其中,x1表示访问城市的标号;根据步骤(1)中已知优化目标为路径长度,即路径越短适应度越高,规划的路径越好,则个体适应度定义为:
(4)从候选种群选出进化种群:
采用反向轮盘赌策略,从候选种群C_Pop中选择N个个体组成迭代种群I_Pop,以及未被选中个体组成种群US_Pop。
轮盘赌策略表示个体适应度大小与其被选中概率成反比,即个体Xi被选中的概率Pi和累计概率Qi分别为:
其中,Fi表示个体Xi的个体适应度值。反向轮盘赌策略局部实现步骤为:
(a)确认候选种群C_Pop,需要选出个体数量N,令代数计数器g=1。
(b)计算C_Pop中每个个体被选中的概率Pi和累计概率Qi。
(c)生成一个均匀分布在[0,1]的随机数r。
(d)如果r<=Q1,选中个体X1放入迭代种群I_Pop,从C_Pop删除X1。
(e)如果Qk-1<r<=Qk,则选中Xk放入迭代种群I_Pop,从C_Pop删除Xk。
(f)如果g=N,将C_Pop中剩下个体放入US_Pop;否则,g=g+1,转至步骤(b)。
(5)划分子群:
根据个体适应度,对迭代种群I_Pop中个体进行降序排序,划分独立最优子群B_Group,和普通子群C_Groupi。具体划分方式如下:
(a)对I_Pop中所有个体Xi根据适应度降序排序。
(b)选取前m跟个体组成独立最子群B_Group。
(c)针对剩下的(N-m)个个体,将第1个个体划分到第1个普通子群C_Group1,第 2个个体划分到第2个普通子群C_Group2,依次放入,第m个个体划分到第m个普通子群C_Groupm,第m+1个个体划分到第1个普通子群C_Group1……直至将 (N-m)个个体划分完毕。
(6)局部搜索
首先,将独立最优子群B_Group中m个个体随机分配给不同的普通子群,作为该子群的专属全局最优解Xig。在第一次搜素后,采用片段交叉策略和2-opt优化算法实现对各普通子群的局部最优解Xib变异。然后,采用贪婪交叉算子作为个体生成算子,操作局部最优解Xib和局部最劣解Xiw生成新个体Xinew1,如果Xinew1优于Xiw,则Xinew1赋值给Xnew;否则,采用贪婪交叉算子作为个体生成算子,操作专属全局最优解Xig和局部最劣解Xiw生成新个体Xinew2,如果Xinew2优于Xiw,则Xinew2赋值给Xnew;否则随机生成Xnew。如果Xnew优于Xig,则则将 Xig赋值给Xiw,Xnew赋值给Xig,否则Xnew赋值给Xiw。最后,重复对每个子群进行局部搜索L 次。
贪婪交叉算子,是一种个体个体生成算子,具体实现步骤如下:
(a)确定需要交叉的优解Xb和劣解Xw。
(b)随机选择出发城市C,选择城市C在Xb中的左侧城市CLb和右侧城市CRb,在劣解Xw中左侧城市CLw和右侧城市CRw作为下个访问的候选城市。
(c)在候选城市集{CLb,CRb,CLw,CRw}中,选择距离城市C最近的城市作为下一访问城市C’。
(d)如果城市C’∈{CLb,CLw},执行(e);否则执行(f)。
(e)在Xb和Xw中删除C,将C’作为出发城市C,仅从C在两个解中左侧城市{CLb,CLw}中选择距离C最短的城市作为下一访问城市C’,重复执行(e),直至访问所有城市,即生成新解Xne w。
(f)在Xb和Xw中删除C,将C’作为出发城市C,仅从C在两个解中右侧城市{CRb,CRw}中选择距离C最短的城市作为下一访问城市C’,重复执行(f),直至访问所有城市,即生成新解Xnew。
针对普通子群C_Groupi中最优个体Xib进行变异,具体实现步骤如下:
(a)确定被变异解XV和最大邻域解数量Y,计数器y=1。
(b)问题规模为T,将解X={x1,x2,…,xT}作为一个闭环回路。
(c)随机生成片段分割的数量SN∈[1,T/5]。
(d)随机生成SN个不同的分割点SP={sp1,sp2,…,spSN}。
(e)将X分割成SN个片段,其中,当spi不为1时,切割点spi位于xspi-1和xspi之间;当spi为1时,切割点spi位于x1和xT之间。
(f)按照每个切割点spi随机生成的顺序,依次将各个片段拼接,生成新解XS。
(g)利用2-opt算子生成XS的邻域解XN并计算适应度。
(h)如果f(XN)<f(XV),XN赋值给XV,跳出循环;否则,若y<Y,跳转到(g),y=y+1,否则结束循环。
(7)全局混洗,增强局部搜索:
将独立最优子群B_Group和所有普通子群C_Groupi混洗。然后,将混洗后的种群I_Pop 根据适应度降序排序,对前m个个体增强局部搜索,增强局部搜索策略采用2-opt算子和近邻点插法组合使用,当G/50<t<G/5,采用2-opt算子单独搜索,当G/5<=t时,2-opt算子和近邻点插法交替搜索。
采用近邻点插法作为搜索算子,具体实现为:
(a)确定待搜索解XS和问题规模T,迭代计数器为t=1,v=1。
(b)选择距离城市xt最近的4个城市{xt1,xt2,xt3,xt4}。
(c)将xt从XS删除,分别插入xtv两侧得到两个邻域解{XN1,XN2}。
(d)选出XN1和XN2中适应度最佳的解作为XN。
(e)如果f(XN)<f(XS),则XN赋值给XS,跳出循环,输出XS;否则如果v<=4,v=v+1 跳转到(c),否则转到(f)。
(f)如果t>T,输出XS;否则t=t+1,跳转到(b)。
本发明的效果可以通过以下仿真实验进一步说明:
1.实验条件:
在CPU为Intel core i7-8550U 1.8GHz、内存8GB、WINDOWS 10系统上使用Matlab2019a进行仿真。
2.实验内容:
从TSPLIB选取一个实例St70,有1个旅行商,需要访问70个城市,城市坐标(Cxi,Cyi),如表1所示。
3.实验结果
采用本发明与现有的基本混合蛙跳算法分别对该问题进行求解。将两种方法在实施例中 分别独立地运行30次。表2分别列出了两种方法在30次运行中求得的最佳路径长度、平均 长度、最佳路径偏差、平均偏差和方差。
由表2可见,与现有的遗传算法相比,本发明能够搜索到适应度更优的个体,大幅度降低了项目的工期和成本,显著增强了项目开发的效率。
表2
图2给出了本发明与基本混合蛙跳算法搜索到的最佳个体适应度随着目标评价次数变化的进化曲线图,以比较两种方法的收敛性能。由图3可见,虽然基本混合蛙跳算法在搜索过程的早期阶段能够搜索到优于本发明的个体,但随着进化代数的增加,它搜索到的解陷入局部最优,无法求得全局最优解。相比之下,本发明的新型混合蛙跳算法注重于增加种群的多样性、扩大探索空间,增强跳出局部最优,平衡了搜索早熟和易于陷入局部最优的问题,同时结合局部搜索,进一步提高求解精度。因此本发明的算法具有较好的收敛速度、跳出局部最优,寻找到该问题的理论最优解。
图3为采用本发明新型混合蛙跳算法求解实例的路线规划图,图4为基本混合蛙跳算法 求解实例的路线规划图。从路径规划图可以看出每个城市的坐标,以及访问的路线。由图4 可见,本发明新型混合蛙跳算法求解实例的最优规划路线长度为675,由图4可见,基本混 合蛙跳算法求解实例的最优规划路线长度为683。
综上,本发明提出的基于新型混合蛙跳算法的旅行商路线规划方法,在基本混合蛙跳算法的基础上,设计了贪婪交叉算子作为个体生成算子,提出了独立最优子群的框架,引入反向轮盘赌策略、局部最优变异策略和增强局部搜索策略,克服了基本混合蛙跳算法早熟收敛、易于陷入局部最优、局部搜索能力弱和求解精度不高等缺点,能够快速高效地实现旅行商的路径规划。
在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定义在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (9)
1.一种基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,包括以下步骤:
S1,读取问题输入的信息,定义优化目标,设定约束条件:
所述问题的输入信息包括旅行商需要访问的城市的坐标信息和问题规模T;所述优化目标为规划路线的路径长度最短;所述约束条件为每个城市必须被访问且仅访问一次,从一点出发最终回到该城市;
S2,初始化新型混合蛙跳算法参数:
设置新型混合蛙跳算法进化种群规模为N、候选种群规模N*2、子群数m、局部搜索次数L、全局迭代次数为G、邻域搜索最大规模Z、设置迭代计数器t=0;
S3,生成初始候选种群,并计算适应度:
采用整数编码,随机生成N*2个个体构成候选种群C_Pop,每个个体表示表示访问城市顺序:
X={x1,x2,…,xT}
其中,x1表示访问城市的标号;计算每个个体的目标值f(X):
其中,dij表示城市i与城市j之间的距离,则个体的适应度为F(X):
即个体的适应度越大则个体质量越好;
S4,从候选种群选出进化种群;
采用反向轮盘赌策略,从候选种群C_Pop中选择N个个体组成迭代种群I_Pop,以及未被选中个体组成种群US_Pop;
S5,划分子群:
根据个体适应度,对迭代种群I_Pop中个体进行降序排序,划分独立最优子群B_Group,和普通子群C_Groupi;
S6,对各子群局部搜索:
将B_Group中个体分配为每个普通种群C_Groupi的专属全局最优解Xig,当该子群不是第一次搜索时,首先采用片段交叉策略和2-opt优化算法实现对其局部最优解Xib变异,然后采用贪婪交叉算子作为个体生成方式,并根据优胜劣汰的规则更新局部最劣Xiw,每个子群进行局部搜索L次;
S7,混洗所有子群,增强局部搜索:
将所有子群进行重新混洗,根据适应度对I_Pop中个体进行降序排序,采用2-opt算法和点插法对前每m个体进行局部搜索,并将更新后I_Pop和US_Pop混合组成C_Pop,t=t+1;
S8,终止准则判断:
若t>G则终止迭代,输出适应度最优的个体,该个体为规划好的访问城市的顺序,否则t=t+1,转步骤S4。
3.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S4中,所述反向轮盘赌策略表示个体适应度大小与其被选中概率成反比,即个体Xi被选中的概率Pi和累计概率Qi分别为:
其中,Fi表示个体Xi的个体适应度值;
所述从候选种群选出进化种群的实现步骤为:
S41,确认候选种群C_Pop,需要选出个体数量N,令代数计数器g=1;
S42,计算C_Pop中每个个体被选中的概率Pi和累计概率Qi;
S43,生成一个均匀分布在[0,1]的随机数r;
S44,如果r<=Q1,选中个体X1放入迭代种群I_Pop,从C_Pop删除X1;
S45,如果Qk-1<r<=Qk,则选中Xk放入迭代种群I_Pop,从C_Pop删除Xk;
S46,如果g=N,将C_Pop中剩下个体放入US_Pop;否则,g=g+1,转至步骤S42。
4.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S5中,所述划分子群的实现步骤为:
S51,对I_Pop中所有个体Xi根据适应度降序排序;
S52,选取前m个体组成独立最子群B_Group;
S53,针对剩下的(N-m)个个体,将第1个个体划分到第1个普通子群C_Group1,第2个个体划分到第2个普通子群C_Group2,依次放入,第m个个体划分到第m个普通子群C_Groupm,第m+1个个体划分到第1个普通子群C_Group1……直至将(N-m)个个体划分完毕。
5.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S6中,所述的为每个普通种群C_Groupi的专属全局最优解Xig是指将独立最优子群B_Group中m个个体随机分配给不同的普通子群,作为该子群的专属全局最优解Xig。
6.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S6中,所述采用贪婪交叉算子作为个体生成方式,并根据优胜劣汰的规则更新局部最劣Xiw的实现步骤如下:
S601,确定需要交叉的优解Xb和劣解Xw;
S602,随机选择出发城市C,选择城市C在Xb中的左侧城市CLb和右侧城市CRb,在劣解Xw中左侧城市CLw和右侧城市CRw作为下个访问的候选城市;
S603,在候选城市集{CLb,CRb,CLw,CRw}中,选择距离城市C最近的城市作为下一访问城市C’;
S604,如果城市C’∈{CLb,CLw},执行S605,否则执行S606;
S605,在Xb和Xw中删除C,将C’作为出发城市C,仅从C在两个解中左侧城市{CLb,CLw}中选择距离C最短的城市作为下一访问城市C’,重复执行S605,直至访问所有城市,即生成新解Xnew;
S606,在Xb和Xw中删除C,将C’作为出发城市C,仅从C在两个解中右侧城市{CRb,CRw}中选择距离C最短的城市作为下一访问城市C’,重复执行S606,直至访问所有城市,即生成新解Xnew。
7.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S6中,所述局部搜索涉及局部最优变异,是基于普通子群C_Groupi中最优个体Xib,具体实现步骤如下:
S611,确定被变异解XV和最大邻域解数量Y,计数器y=1;
S612,问题规模为T,将解X={x1,x2,…,xT}作为一个闭环回路;
S611,随机生成片段分割的数量SN∈[1,T/5];
S613,随机生成SN个不同的分割点SP={sp1,sp2,…,spSN};
S614,将X分割成SN个片段,其中,当spi不为1时,切割点spi位于xspi-1和xspi之间;当spi为1时,切割点spi位于x1和xT之间;
S615,按照每个切割点spi随机生成的顺序,依次将各个片段拼接,生成新解XS;
S616,利用2-opt算子生成XS的邻域解XN并计算适应度;
S617,如果f(XN)<f(XV),XN赋值给XV,跳出循环;否则,若y<Y,跳转到(g),y=y+1,否则结束循环。
8.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S7中,所述混洗所有子群是将独立最优子群B_Group和所有普通子群C_Groupi混洗。
9.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S7中,所述增强局部搜索表示将混洗后的种群I_Pop根据适应度降序排序,对前m个个体进行局部搜索,采用近邻点插法作为搜索算子,具体实现为:
S71,确定待搜索解XS和问题规模T,迭代计数器为t=1,v=1;
S72,选择距离城市xt最近的4个城市{xt1,xt2,xt3,xt4};
S73,将xt从XS删除,分别插入xtv两侧得到两个邻域解{XN1,XN2};
S74,选出XN1和XN2中适应度最佳的解作为XN;
S75如果f(XN)<f(XS),则XN赋值给XS,跳出循环,输出XS;否则如果v<=4,v=v+1跳转到S73,否则转到S76;
S76,如果t>T,输出XS;否则t=t+1,跳转到S72。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010155411.3A CN111340303B (zh) | 2020-03-09 | 2020-03-09 | 基于新型混合蛙跳算法的旅行商路线规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010155411.3A CN111340303B (zh) | 2020-03-09 | 2020-03-09 | 基于新型混合蛙跳算法的旅行商路线规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111340303A true CN111340303A (zh) | 2020-06-26 |
CN111340303B CN111340303B (zh) | 2023-07-25 |
Family
ID=71182323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010155411.3A Active CN111340303B (zh) | 2020-03-09 | 2020-03-09 | 基于新型混合蛙跳算法的旅行商路线规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111340303B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113052537A (zh) * | 2021-04-06 | 2021-06-29 | 南京信息工程大学 | 一种基于启发式粒子群算法的物流车辆低碳路线规划方法 |
CN114608596A (zh) * | 2022-03-09 | 2022-06-10 | 大连大学 | 一种基于dssa算法的路径规划方法 |
CN114819151A (zh) * | 2022-06-23 | 2022-07-29 | 天津大学 | 基于改进代理辅助混洗蛙跳算法的生化路径规划方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122843A (zh) * | 2017-03-13 | 2017-09-01 | 华南理工大学 | 一种基于改进遗传算法的旅行商问题求解方法 |
CN108460485A (zh) * | 2018-03-05 | 2018-08-28 | 重庆邮电大学 | 一种基于改进蚁群算法的旅行商问题求解方法 |
CN109948865A (zh) * | 2019-04-01 | 2019-06-28 | 东华大学 | 一种tsp问题路径规划方法 |
-
2020
- 2020-03-09 CN CN202010155411.3A patent/CN111340303B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122843A (zh) * | 2017-03-13 | 2017-09-01 | 华南理工大学 | 一种基于改进遗传算法的旅行商问题求解方法 |
CN108460485A (zh) * | 2018-03-05 | 2018-08-28 | 重庆邮电大学 | 一种基于改进蚁群算法的旅行商问题求解方法 |
CN109948865A (zh) * | 2019-04-01 | 2019-06-28 | 东华大学 | 一种tsp问题路径规划方法 |
Non-Patent Citations (2)
Title |
---|
康朝海等: "基于混合蛙跳粒子群算法的TSP 问题求解", 《吉林大学学报( 信息科学版)》 * |
李碧等: "求解旅行商问题的改进混合蛙跳算法", 《信息技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113052537A (zh) * | 2021-04-06 | 2021-06-29 | 南京信息工程大学 | 一种基于启发式粒子群算法的物流车辆低碳路线规划方法 |
CN113052537B (zh) * | 2021-04-06 | 2023-08-22 | 南京信息工程大学 | 一种基于启发式粒子群算法的物流车辆低碳路线规划方法 |
CN114608596A (zh) * | 2022-03-09 | 2022-06-10 | 大连大学 | 一种基于dssa算法的路径规划方法 |
CN114608596B (zh) * | 2022-03-09 | 2024-04-12 | 大连大学 | 一种基于dssa算法的路径规划方法 |
CN114819151A (zh) * | 2022-06-23 | 2022-07-29 | 天津大学 | 基于改进代理辅助混洗蛙跳算法的生化路径规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111340303B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chiang et al. | A simple and effective evolutionary algorithm for multiobjective flexible job shop scheduling | |
CN111340303B (zh) | 基于新型混合蛙跳算法的旅行商路线规划方法 | |
CN111178582B (zh) | 一种基于改进遗传算法的物流配送优化方法 | |
CN110632907B (zh) | 一种分布式装配式置换流水车间调度优化方法及系统 | |
CN106779372B (zh) | 基于改进免疫禁忌算法的农机调度方法 | |
Huang et al. | A discrete shuffled frog-leaping algorithm based on heuristic information for traveling salesman problem | |
CN109800910B (zh) | 一种基于禁忌搜索的超启发式算法的车辆路径优化方法 | |
CN112272120B (zh) | 一种虚拟网络映射算法的优化方法、设备及存储介质 | |
CN111709560A (zh) | 一种基于改进蚁群算法的解决车辆路径问题方法 | |
CN113052537A (zh) | 一种基于启发式粒子群算法的物流车辆低碳路线规划方法 | |
Chen et al. | Imperial competitive algorithm with policy learning for the traveling salesman problem | |
CN113222165A (zh) | 一种基于遗传算法的量子线路优化方法 | |
CN108596339A (zh) | 一种构建子种群和子问题的多目标优化遗传算法 | |
Chen et al. | Production management of hybrid flow shop based on genetic algorithm | |
Ben-Said et al. | Using decomposition-based multi-objective algorithm to solve Selective Pickup and Delivery Problems with Time Windows | |
Hien et al. | A greedy search based evolutionary algorithm for electric vehicle routing problem | |
CN111291855A (zh) | 基于改进智能算法的天然气环状管网布局优化方法 | |
Kumar | Efficient hierarchical hybrids parallel genetic algorithm for shortest path routing | |
Lamiable et al. | An algorithmic game-theory approach for coarse-grain prediction of RNA 3D structure | |
Alkafaween et al. | Improving initial population for genetic algorithm using the multi linear regression based technique (MLRBT) | |
Li et al. | Multi-ant colony optimization algorithm based on finite history archiving and boxed pigs game | |
CN110222055A (zh) | 一种动态图下多边更新的单轮核值维护方法 | |
Hakli | A performance evaluation and two new implementations of evolutionary algorithms for land partitioning problem | |
CN113901728A (zh) | 基于迁移遗传算法的电脑第二类装配线平衡优化方法 | |
CN112884229A (zh) | 基于差分进化算法的大型公共场所人流引导路径规划方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |