遗传算法求解多旅行商问题的新方法

A Novel Approach to Solve Multiple Traveling Salesmen Problem by Genetic Algorithm。

多旅行商问题(mTSP)是一个复杂的组合优化问题,它是著名的旅行商问题的推广,其中可以使用一个或多个销售人员进行求解。优化任务可以描述如下:给定一个车队、一个公共仓库和客户的多个请求,找到满足所有需求的总路线成本最低的路线集。由于TSP已经是一个复杂的问题,即NP完全问题,因此需要考虑启发式优化算法,如遗传算法(GA)。mTSP的经典GA工具的扩展不是一个小问题,它需要特殊的、可解释的编码来确保效率。本文的目的是回顾遗传算法如何应用于解决这些问题,并提出一种新的、易于解释的表示方法。

1. 介绍

在物流方面,主要目标是在正确的时间将正确的材料运至正确的地点,同时优化一些性能指标,如最小化总运营成本,并满足一组给定的约束条件(如时间和容量约束)。在物流方面,可能会出现几种类型的问题;其中最引人注目的是路线规划问题集。最受研究的路径规划问题之一是车辆路径问题(VRP),这是一个复杂的组合优化问题,可以描述为:给定一个具有统一容量的车队、一个公共仓库和客户的多个请求,找到满足所有需求的总路径成本最小的路径集。搜索空间的复杂性和决策变量的数量使得这个问题非常困难。

VRP的松弛是多旅行商问题(mTSP)[3],它是著名旅行商问题的推广,其中一个或多个旅行商可以用于求解。由于TSP的事实,很明显,mTSP是一个NP难问题,因此它的求解需要启发式方法。

本文将研究与一对多配电系统优化相关的改进型mTSP开发工具,并提出一种新的基于遗传算法的解决方案。

在mTSP的情况下,给出了一组节点(位置或城市),销售人员必须访问所有城市一次,所有城市都必须在单个站点节点开始和结束。城市的数量用n表示,销售人员的数量用m表示。目的是为所有销售人员寻找旅行路线,从而使总旅行成本(访问所有节点的成本)最小化。成本指标可以根据距离、时间等进行定义。问题的一些可能变化如下:

多个仓库:如果存在多个仓库,每个仓库都有一定数量的销售人员,则销售人员可以返回任何仓库,但在所有行程结束后,每个仓库的初始销售人员数量保持不变。

销售人员数量:问题中的销售人员数量可以是固定数量,也可以是有界变量。

固定费用:如果销售人员的数量是一个有界变量,那么解决方案中每个销售人员的使用通常都有一个相关的固定成本。在这种情况下,优化过程可能涉及到有界变量的最小化。

时间窗口:必须在特定的时间段访问某些城市,称为时间窗口。mTSP的这种扩展称为时间窗多旅行推销员问题(mTSPTW)。

其他限制:这些附加限制可以包括销售人员旅行的最大或最小距离或旅行持续时间,或其他特殊限制。

mTSP比TSP更能模拟实际应用程序,因为它可以处理多个销售人员。应用领域概述见[3]和[10]。本文将采用一种新的方法对mTSPTW问题进行优化,其中销售人员的数量是一个上界变量,并且存在额外的约束,例如每个销售人员的最大旅行距离。

mTSP比TSP更能模拟实际应用程序,因为它可以处理多个销售人员。应用领域概述见[3]和[10]。本文将采用一种新的方法对mTSPTW问题进行优化,其中销售人员的数量是一个上界变量,并且存在额外的约束,例如每个销售人员的最大旅行距离。

通常,mTSP由整数规划公式表示。方程(1.1)-(1.7)中给出了一个变化。mTSP问题在图G=(V,a)上定义,其中V是n个节点(顶点)的集合,a是弧(边)的集合。设C是a的邻接矩阵,。如果Cij=Cji,矩阵C是对称的,否则不对称。此处x(i,j)={0,1}是一个二进制变量,用于表示旅行中使用的arch,Cm表示一个销售人员参与解决方案的成本。

遗传算法求解多旅行商问题的新方法_第1张图片

 

文献综述

在过去的二十年中,旅行商问题受到了很大的关注,并提出了各种方法来解决该问题,例如分支定界[7]、切割平面[17]、神经网络[4]或禁忌搜索[9]。其中一些方法是精确算法,而其他方法是近似最优或近似算法。精确算法使用带有附加约束的整数线性规划方法。

与TSP相比,对mTSP的研究更少。[3] 全面回顾了已知的方法。mTSP有几种精确算法可以放松问题的一些约束,如[15],[1]中的解基于Branchand Bound算法。

由于mTSP的组合复杂性,有必要在求解中应用一些启发式算法,特别是在实际应用中。Russell[23] 发表了第一种启发式方法,Potvin等人[20]给出了另一种方法。Hsu等人[12]的算法提出了一种基于神经网络的解决方案。最近,遗传算法(GA)被成功地用于求解TSP[8]。Potvin对一般TSP的GA方法进行了调查[21]

 

2.1应用遗传算法求解mTSP

最近GA也被用于mTSP的解决方案。第一个结果可以与Zhang等人[25]联系起来。使用遗传算法求解mTSP的大部分工作都集中在车辆调度问题(VSP)上([16,18])。VSP通常包括额外的限制,如车辆容量(它还决定每辆车可以访问的城市数量),或装载持续时间的时间窗口。最近发现于[4],其中开发了用于热轧调度的GA。它将mTSP转换为单个TSP,并应用改进的GA来解决问题。

一种新的染色体表示方法,即所谓的两部分染色体技术,可以在[5]中找到,它通过消除冗余解来减小搜索空间的大小。根据所参考的文件,这种表述是迄今为止最有效的。

mTSP有多种表现形式,如单染色体技术[20]、双染色体技术[16,18]和最新的两部分染色体技术。前面的每种方法都只使用一条染色体来表示整个问题,尽管销售人员在身体上是相互分离的。下一章中提出的新方法使用多条染色体对应用程序进行建模。

3. 基于遗传算法的mTSP求解方法

GA是基于进化生物学和计算机科学原理的相对较新的全局随机搜索算法[11]。由于遗传算法[2]的有效优化能力,使得这些技术适用于解决TSP和mTSP问题。

3.1 mTSP的新遗传表现

如前一章所述,迄今为止,用于求解mTSP的每个基于GA的方法都使用单个染色体表示。这里提出的新方法是一种所谓的多染色体技术,它将销售人员彼此分开,因此可能会提出一种更有效的方法。这种方法用于众所周知的困难问题,将复杂的解决方案分解为简单的组件。它用于混合整数问题[19],路由问题优化的用法可以在[18]中看到,符号回归问题的最新解决方案在[6]中看到。本节讨论了多染色体遗传规划在mTSP优化中的应用。图1显示了mTSP的新染色体表示,有15个位置(n=15)和4个销售人员(m=4)。上图显示了人口中的一个个体。每个人都代表了问题的单一解决方案。第一条染色体代表第一个推销员本身,因此每个基因代表一个城市(这里不显示仓库,它是每个推销员的第一站和最后一站)。这种编码称为置换编码。从示例中可以看出,销售人员1访问了4个城市:城市2、5、14和6。同样,染色体2代表销售人员2,以此类推。这种表示与问题的特征非常相似,因为销售人员“在身体上”是分开的。

遗传算法求解多旅行商问题的新方法_第2张图片

 

3.2特殊遗传算子

由于我们的新表示法,实现新的遗传算子成为必要,就像突变算子一样。有两组突变算子,即所谓的路线内突变和交叉路线突变。本节仅给出了一些新创建的运算符的示例。关于新型运算符的更多信息和几个示例,请参见[13]。

路径内突变算子在一条染色体内工作。图2显示了一个例子。操作员选择染色体的一个随机分段,并反转其中基因的顺序。

遗传算法求解多旅行商问题的新方法_第3张图片

 

交叉路径突变作用于多条染色体。如果我们把不同的染色体看作个体,这种方法可能类似于常规交叉算子。图3说明了随机选择的两条染色体的子部分转座的方法。如果所选子段之一的长度等于零,则运算符可以转换为插值。

遗传算法求解多旅行商问题的新方法_第4张图片

 

3.3遗传算法

每个遗传算法都从一个由随机创建的染色体组成的初始解集开始。这称为人口。新种群中的个体是由预先确定的遗传算子从先前种群的个体中产生的。如果满足停止条件,则算法结束。

显然,对于一个特定的问题,这是一项复杂得多的任务,我们需要定义编码、特定的运算符和选择方法。这种编码就是所谓的置换编码(见上一节)。有关运算符的详细描述,请参见[14],上一节中有一个示例。

3.3.1适应度函数

适应度函数为种群中的每个个体指定一个数值。这个值定义了某种优势,因此它决定了个人的排名。适应度函数总是与问题相关的。

在这种情况下,适合度值是运输的总成本,即每次往返的总长度。适应度函数计算每个染色体的总长度,并汇总每个个体的这些值。此总和是解决方案的适应值。显然这是一个最小化问题,因此最小的值就是最好的。

3.3.2选择

个人根据其fitness进行选择。染色体越好,被选择的机会就越多。选定的个体可以在新的种群中呈现,而不会发生任何变化(通常具有最佳适应度),也可以被选为交叉的父代。我们使用所谓的锦标赛选择,因为它效率高。

在比赛选择过程中,从人群中随机选择几个(比赛规模,最少2个)个体。锦标赛的冠军是具有最佳fitness价值的个人。排名中的一些首批参与者被选入新人群(直接或作为父母)。

3.4复杂性分析

对mTSP使用多染色体技术可以减小问题的整体搜索空间。让第一条染色体的长度为k1,让第二条染色体的长为k2,依此类推,当然总和为n 。确定第一条染色体的基因等于从一组n个元素中获得k1元素的有序子集。一共有n!/(n-k1)!,第二个染色体的数值为(n-k1)/(n-k1-k2)!,以此类推。因此,问题的总搜索空间可以表示为等式(3.1)。

 还需要确定每个染色体的长度。它可以表示为长度(k 1,k 2,…,k m)的正向量,其总和必须为n。有个不同的正整数值向量满足此要求[22]。因此,新表示的解空间为n!。它与[5]中的解空间相等,但这种方法更类似于mTSP的特性,因此它可以更具体地针对问题,从而更有效。

4. 实施方法

为了分析新的表示法,在MATLAB中开发了一种使用这种方法的新型遗传算法。该新方法与目前为止最有效的方法(两部分染色体)进行了比较,该方法可在MATLAB Central 1上获得。该新算法可以优化传统的mTSP问题,并且能够处理额外的约束和时间窗口(见第1节)。

它需要两个输入集,如城市坐标和距离表,其中包含任何一对城市之间的旅行距离。当然,确定遗传算法的约束条件、时间窗和参数也是必要的。

适应函数简单地总结了个人内部每个销售人员的总体路线长度。选择是锦标赛选择,其中锦标赛规模,即为生存而竞争的个体数是8。因此种群规模必须可以被8整除。锦标赛的获胜者是适应度最小的成员,这个个体被选为新的个体创建,这个成员将进入新的种群而不做任何修改。

对于过长路线(超过定义的限制)的惩罚,而不是按比例分配较大的适应值,是由拆分操作符实现的,它将路线分成较小的路线,这些路线不会超过限制(但销售人员的数量会增加)。由于存在对销售人员数量的限制,算法将此数量最小化,因此此惩罚在优化过程中具有显著效果。

有关所实现算法的更多信息,请参见[14]。

5 例证

虽然该算法已通过大量问题进行了测试,但这里只给出了一个说明性的结果。如前所述,该算法已在MATLAB中实现,约束的微小细化正在进行中。示例代表了实际问题解决的整个过程。初始输入在谷歌地图中给出,最终输出也是由谷歌地图定义的路线系统。第一步是确定距离矩阵。如图4所示,输入数据由地图给出,结果距离表的一部分如表1所示。它包含25个位置(带车辆段)。任务是在以下限制条件下确定这些地点的最佳路线:销售人员最多为5人,每个销售人员的最大旅行距离为450公里。

遗传算法求解多旅行商问题的新方法_第5张图片

 遗传算法求解多旅行商问题的新方法_第6张图片

在距离表确定之后,可以执行优化器算法来使用新的表示法确定最优路径。GA以320个种群规模运行,并进行了200次迭代。优化结果如图5所示。结果是4个销售员就足以满足约束条件。优化后,我们可以在Google Maps地图上可视化结果,如图6所示。路线长度分别为364 km、424 km、398 km和149 km,即满足约束条件,因此算法提供了一个可行的问题解决方案。在每种情况下,运行时间都在1到2分钟之间。遗传算法已经进行了200次迭代,因为经验表明,这个数量足以进行优化。

遗传算法求解多旅行商问题的新方法_第7张图片

 遗传算法求解多旅行商问题的新方法_第8张图片

显然,算法对迭代次数非常敏感。运行时间与迭代次数成正比,但经过一定时间后,得到的最优解不会变得更好。如果约束变得更紧,持续时间将略微增加。最大行程为500秒,约为90秒,最大行程为450秒,约110秒。最大巡演时间(或相当于每次巡演的最大持续时间)对所需的销售人员数量有很大影响。约束越紧,我们需要的销售人员就越多。然而,更窄的限制带来了更多的方形往返。此外,得到的最优值可能取决于初始种群。从图7可以看出,算法可以在80%以上的情况下找到接近最优的解决方案。通过应用额外的启发式,可以提高计算的有效性。显然,通过执行更多的迭代也可以进一步改善这些结果。

6.总结

本文详细综述了遗传算法在车辆路径问题中的应用。研究表明,这个问题与多重旅行商问题密切相关。针对特定的一个仓库版本的mTSPTW,开发了一种新的基于表示的遗传算法。主要好处是表示的透明性,允许有效地结合启发式和约束,并允许轻松实现。可以应用一些启发式方法来提高算法的有效性,如初始种群的适当选择。在一些最后的润色之后,支持的MATLAB代码也将在作者的网站上提供。

你可能感兴趣的:(多旅行商问题(MTSP),遗传算法,多旅行商,算法,人工智能)