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;
所述反向轮盘赌策略表示个体适应度大小与其被选中概率成反比,即个体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
S46,如果g=N,将C_Pop中剩下个体放入US_Pop;否则,g=g+1,转至步骤S42;
S5,划分子群:
根据个体适应度,对迭代种群I_Pop中个体进行降序排序,划分独立最优子群B_Group,和普通子群C_Groupi;
S6,对各子群局部搜索:
将B_Group中个体分配为每个普通子群C_Groupi的专属全局最优解Xig,当该子群不是第一次搜索时,首先采用片段交叉策略和2‑opt优化算法实现对其局部最优解Xib变异,然后采用贪婪交叉算子作为个体生成方式,并根据优胜劣汰的规则更新局部最劣Xiw,每个子群进行局部搜索L次;
所述采用贪婪交叉算子作为个体生成方式,并根据优胜劣汰的规则更新局部最劣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;
所述局部搜索涉及局部最优变异,是基于普通子群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)
S7,混洗所有子群,增强局部搜索:
将所有子群进行重新混洗,根据适应度对I_Pop中个体进行降序排序,采用2‑opt算法和点插法对前每m个体进行局部搜索,并将更新后I_Pop和US_Pop混合组成C_Pop,t=t+1;
所述增强局部搜索表示将混洗后的种群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)
S76,如果t>T,输出XS;否则t=t+1,跳转到S72;
S8,终止准则判断:
若t>G则终止迭代,输出适应度最优的个体,该个体为规划好的访问城市的顺序,否则t=t+1,转步骤S4。
2.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S1中,所述读取问题输入的信息,定义优化目标,设定约束条件的过程包括以下步骤:设城市坐标信息为该城市的平面坐标信息{(Cx1,Cy1),(Cx2,Cy2),…,(CxT,CyT)},问题的规模表示访问城市的数量T,则不同城市间距离为欧式距离计算公式,其定义为:其中,dij表示城市i与城市j之间的距离;
定义优化目标主体为规划路线的长短,其定义为:
定义约束条件包括以下两个:
(1)每个城市必须被访问且仅被访问一次,即:
(2)某城市出发,最终回到该城市,即:
3.根据权利要求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)个个体划分完毕。
4.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S6中,所述的为每个普通子群C_Groupi的专属全局最优解Xig是指将独立最优子群B_Group中m个个体随机分配给不同的普通子群,作为该子群的专属全局最优解Xig。
5.根据权利要求1所述的基于新型混合蛙跳算法的旅行商路线规划方法,其特征在于,步骤S7中,所述混洗所有子群是将独立最优子群B_Group和所有普通子群C_Groupi混洗。