求解多目标带时间窗周期性车辆路径问题的智能调度算法的制作方法

文档序号:11143637阅读:543来源:国知局
求解多目标带时间窗周期性车辆路径问题的智能调度算法的制造方法与工艺
本发明涉及物流运输和智能计算领域,更具体地,涉及一种求解多目标带时间窗周期性车辆路径问题的智能调度算法。
背景技术
:随着国家经济的发展和科学技术的进步,物流产业逐渐成为国民经济中一个重要的服务行业。作为经济发展的“加速器”和产业结构演变的“润滑油”,物流产业的发展程度已经成为衡量一个国家现代化和综合国力的重要标志之一。而在物流产业中,最突出的则是物流成本问题。因此,对物流成本的优化显得尤为重要。车辆路径问题的优化算法主要分为精确求解算法和智能算法。精确求解算法能够准确地找出全局最优的解,例如迪杰斯特拉算法。但是随着算例的规模增加,算法的运行时间会急剧增加,不适合解决大规模的问题。而智能算法通过交叉变异和局部搜索等操作将解推向更优的区域,最终得到人们可以接受的解。同时,智能算法不受搜索空间限制性假设的约束,能够从离散的多极值的高纬问题中以很高的概率找到全局最优解。另外,智能算法的终止条件往往是运行代数或者评估次数,这些都是人们设定的,所以运行时间是人们可以接受的。因此,智能算法十分适用于车辆路径问题的设计和优化。多目标局部搜索算法是智能算法的一个重要分支,是一种使用多种邻域操作对解的各个目标进行优化的智能算法。在解决复杂的优化问题过程中,局部搜索是一种提高解的质量的重要方法。多目标局部搜索算法可以利用问题相关的信息设计不同的邻域操作,从而能够有效地提高解的质量。结合合理的存档策略,多目标局部搜索算法可以将搜索过程中得到的非占优解保存起来。多目标局部搜索算法框架清晰,易于理解,简单实用,被广发运用到组合优化、模式识别和自动控制等领域。因此,多目标局部搜索算法十分适合多目标带时间窗周期性车辆路径问题(MOPVRPTW)这样的组合优化问题。技术实现要素:本发明提供一种性能较高的求解多目标带时间窗周期性车辆路径问题的智能调度算法。为了达到上述技术效果,本发明的技术方案如下:一种求解多目标带时间窗周期性车辆路径问题的智能调度算法,包括以下步骤:S1:从存档中选择解,对解在不同的目标上进行局部搜索,提高解的质量;S2:使用搜索得到的解更新存档。进一步地,所述步骤S1的具体过程如下:S111:初始化存档A,评估目标序号obj设置为1,其中obj=1,2,···,5;S112:初始化解x;S113:对解x进行评估;S114:采用局部搜索LSobj优化x的第obj个目标,得到优化后的解x’;S115:使用解x’更新存档A得到存档A1,并将存档A1复制给存档A;S116:obj=obj+1;S117:如果obj小于等于目标数M,则执行步骤S112,否则执行步骤S118;S118:从存档A中随机选择一个解x1,obj设置为1;S119:采用局部搜索LSobj优化x1的第obj个目标,得到优化后的解x1’;S120:使用解x1’更新存档A得到A2,并将存档A2复制给存档A;S121:obj=obj+1;S122:如果obj小于等于目标数M,则执行步骤S119,否则执行步骤S123;S123:如果未达到结束条件,则执行步骤S118,否则执行步骤S124;S124:输出存档A,程序结束。进一步地,所述步骤S113的过程是:采用以下评估函数对解x进行评估:f3=max{Tj,d|j=1,…,Rd,d=1,…,T}其中,路径集合R包括了每天访问客户的路径集合Rd,故R={R1,R2,···,RT},其中T表示访问周期,每天的路径集合Rd则包含多条具体的路径rj,d,rj,d=<c(1,j,d),c(2,j,d),···,c(Nj,j,d)>,故Rd={r1,d,r2,d,···,rm,d},m表示该天出现的路径数,c(i,j,d)表示第d天中第j条路径中的第i个客户,Nj表示该路径出现的客户的数量,令c(0,j,d)=c(Nj+1,j,d)=0表示所有车辆从仓库出发,并最终返回仓库;Distj,d表示第d天中第j条路径的行驶距离:其中,dc(i,j,d)c(i+1,j,d)表示客户c(i,j,d)和客户c(i+1,j,d)之间的行驶距离;Tj,d表示第d天中第j条路径的行驶时间:其中,tc(i,j,d)c(i+1,j,d)表示c(i-1,j,d)和c(i,j,d)之间的行驶时间,sc(i,j,d)表示客户c(i,j,d)需要的服务时间。令ac(i,j,d)表示车辆到达客户c(i,j,d)的时间,lc(i,j,d)表示车辆离开客户c(i,j,d)的时间,ac(i,j,d)=lc(i-1,j,d)+dc(i-1,j,d)c(i,j,d)。如果车辆到客户的时间ac(i,j,d)早于该客户的最早服务时间e(i,j,d),则会产生等待时间:wc(i,j,d)=max(0,ec(i,j,d)-ac(i,j,d)),则lc(i,j,d)=ac(i,j,d)+wc(i,j,d)+sc(i,j,d);Wid表示第d天中第j条路径上的所有客户的等待时间:Dtj,d表示第d天中第j条路径上的所有客户的延迟时间,如果车辆到客户的时间晚于该客户的最迟服务时间lc(i,j,d),则会产生等待时间tc(i,j,d)=max(0,ac(i,j,d)-lc(i,j,d)),故其中,f1表示在T天中所调度的所有车辆,为评估目标1即obj=1,优化目标1,可以减少每辆车的消耗;f2表示在T天中所有车辆行驶的总距离,为评估目标2即obj=2,优化目标2,可以减少车辆总的花费;f3表示在T天所调度的所有车辆中每个驾驶员最长的工作时间,为评估目标3即obj=3,优化目标3可以保证工作量的平衡;f4表示在T天中所有车辆的等待时间,为评估目标4即obj=4,优化目标4,可以提高工作效率,避免浪费工作时间;f5表示在T天中所有车辆的延迟时间,为评估目标5即obj=5,优化目标5,可以提高客户的满意程度。进一步地,所述步骤S114中对于一个给定的解x和确定的优化目标obj进行优化时,包括以下几步:S1141:如果obj等于1,执行步骤S1142,否则执行步骤S1142;S1142:对目标1使用LS1进行优化,执行步骤S1144;S1143:对目标2-5使用LS2-5进行其他,执行步骤S1144;S1144:程序结束。进一步地,所述步骤S1142中LS1的过程是:依次进行对路径的优化操作LSR1和对模式的优化操作LSP1,并分别使用搜索得到的解更新存档。对路径的优化操作LSR1是在客户模式不变的情况下通过调整客户的位置减少车辆数:先选择出客户数最少的路径,将该路径上的客户插入到当天的其他路径中;如果这条路径上的客户全部被插入到其他路径中,即减少了车辆数,那么可以继续选择客户数最少的路径进行优化。如果存在客户不能被合法地插入到其他路径中,则程序结束;对模式的优化操作LSP1是通过调整客户的模式减少车辆数:先选择出客户数最少的路径,然后更改该路径上的客户的模式进而改变客户的位置,然后使用选择条件进行挑选;如果优化后的解的车辆数比优化前的解的车辆数要小的话,则进行替换;否则不进行替换;因为周期性车辆路径问题涉及多天,所以LSR1和LSP1会在每一天进行优化。如果在某一天上解的质量没有得到提升,则撤销该天的领域操作。进一步地,所述步骤S1143中对于一个给定的解x对目标2-5进行优化时,包括以下几步:S11431:优化深度depth设置为0;S11432:从邻域操作池中随机选择一个邻域操作;S11433:使用该邻域操作对解优化,找到该邻域中最优的解x’;S11434:使用解x’更新存档A;S11435:如果fobj(x')<fobj(x),则x被x’替换;S11436:如果depth小于最大深度MaxDepth次,则执行步骤S11432,否则,返回解x,其中MaxDepth为10,即对每一个解在同一个目标上的优化深度为10;而邻域操作池包括以下几种多种不同的邻域操作,OPool={O1,O2,···,On},其中,Oi表示第i个邻域操作:O1表示随机地从选定的路径中删除一个客户,然后将其重新插入到最优位置;O2表示随机地从选定的路径中删除一些客户,然后分别将它们重新插入到最优位置;O3表示交换两个选定的路径中的客户序列,在一条选定的路径中,随机选择一个位置,将其后的所有客户看作一个序列,然后和另一条路径中的所有可能的序列进行交换,最后提升最大的解被保存下来;O4表示随机地从选定的路径中选择一些客户,改变客户的模式,然后对于每个客户使用新的模式将客户插入到其最优位置;O5表示将一条路径中的客户片段插入到另一条选定的路径中;O6表示交换两条选定的路径中的客户片段;O7表示将一条路径中的客户片段插入到同一条路径中;O8表示交换一条路径中两个客户的位置;O9表示从一天选定的路径中选择客户片段,并将其进行倒置;因为周期性车辆路径问题涉及多天,所以上述的邻域操作需要在每一天进行优化,如果在某一天上解的质量没有得到提升,则撤销该天的领域操作。进一步地,所述步骤S2中对于使用解x更新存档A时,包括以下几步:S211:计算解x的关联矩阵B(x)={B1,…,BM},而S212:如果存档A为空,将解x放入A,执行步骤S222,否则执行步骤S213;S213:令i等于1;S214:解y为存档中第i个的解;S215:如果B(y)占优B(x),执行步骤S222,否则执行步骤S216;S216:如果B(x)和B(y)互不占优,执行步骤S217,否则执行步骤S218;S217:如果解x目标值占优解y,则使用解x替代解y,并执行步骤S222,否则执行步骤S222;S218:将解y从存档A中移除;S219:i=i+1;S220:如果i小于等于存档A中解的个数,则执行步骤S214,否则执行步骤S221;S221:将解x放入存档A。S222:程序结束。与现有技术相比,本发明技术方案的有益效果是:本发明运用于多目标带时间窗周期性车辆路径问题的设计和优化中,主要涉及物流运输和智能计算两大领域。发明的方法将优化过程包括:第一,从存档中寻找选择解,对解在不同的目标上进行局部搜索,提高解的质量;第二,使用最终得到的解更新存档。在多目标局部搜索算法中设计了多种邻域操作,避免陷入局部最优,提高算法的收敛速度。本发明对公开的对称样例和非对称样例进行了测试,证明了发明的方法是真实有效的。附图说明图1为实施例1中周期性车辆路径的解的具体结构图;图2为实施例1中周期性车辆路径的解的相应的模式;图3为实施例1中周期性车辆路径的解的相应的路径示意图;图4邻域操作的结构;图5多目标局部搜索算法优化多目标带时间窗周期性车辆路径问题的流程图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方案做进一步的说明。实施例1以下结合附图进一步对发明的方法进行描述,可以四个部分:分别是解的表示和目标定义、局部搜索、邻域操作和存档更新策略。1、解的表示和目标定义多目标带时间窗周期性车辆路径问题的基本结构如图1-3所示,包括两个部分:模式集合P和路径集合R。模式集合P包括每个客户的访问模式pi,故P={p1,p2,…,pN},其中N表示客户的个数。路径集合R包括了每天访问客户的路径集合Rd,故R={R1,R2,…,RT},其中T表示访问周期。每天的路径集合Rd则包含多条具体的路径rj,d,故Rd={r1,d,r2,d,…,rm,d},其中m表示该天出现的路径数。每路具体的路径rj,d则是由多个客户组成,即rj,d=<c(1,j,d),c(2,j,d),…,c(Nj,j,d)>,其中c(i,j,d)表示第d天中第j条路径中的第i个客户,Nj表示该路径出现的客户的数量。为计算方便,令c(0,j,d)=c(Nj+1,j,d)=0,表示所有车辆从仓库出发,并最终返回仓库。在优化程序中,分别是对上面描述的五个目标进行优化的,其中设计到Distj,d,Tj,d,Wj,d和Dtj,d。Distj,d:表示第d天中第j条路径的行驶距离。其中,dc(i,j,d)c(i+1,j,d)表示c(i,j,d)和c(i+1,j,d)之间的行驶距离。Tj,d:表示第d天中第j条路径的行驶时间。令ac(i,j,d)表示车辆到达客户c(i,j,d)的时间,lc(i,j,d)表示车辆离开客户c(i,j,d)的时间。则ac(i,j,d)=lc(i,j,d)+dc(i-1,j,d)c(i,j,d)其中,tc(i-1,j,d)c(i,j,d)表示客户c(i-1,j,d)和客户c(i,j,d)之间的行驶时间。如果车辆到客户的时间早于该客户的最早服务时间e(i,j,d),则会产生等待时间:wc(i,j,d)=max(0,ec(i,j,d)-ac(i,j,d))。则lc(i,j,d)=ac(i,j,d)+wc(i,j,d)+sc(i,j,d)。sc(i,j,d)表示客户c(i,j,d)需要的服务时间。因此,Wj,d:表示第d天中第j条路径上的所有客户的等待时间。故,Dtj,d:表示第d天中第j条路径上的所有客户的延迟时间。如果车辆到客户的时间晚于该客户的最迟服务时间lc(i,j,d),则会产生等待时间dtc(i,j,d)=max(0,ac(i,j,d)-lc(i,j,d))。故2、局部搜索因为常规的邻域操作不能直接减少车辆数,即不能优化目标一,所以优化目标一的邻域操作需要单独设计。因此,对五个目标的局部搜索可以分为两类,记为LS1和LS2-5。因此对于一个给定的解x和确定的优化目标obj进行优化时,包括以下几步:1)如果obj等于1,执行步骤2,否则执行步骤S3;2)对目标1使用LS1进行优化,执行步骤4;3)对目标2-5使用LS2-5进行其他,执行步骤4;4)程序结束。对目标一的局部搜索LS1依次进行对路径的优化操作LSR1和对模式的优化操作LSP1,并分别使用搜索得到的解更新存档;对路径的优化操作LSR1是在客户模式不变的情况下通过调整客户的位置减少车辆数:先选择出客户数最少的路径,将该路径上的客户插入到当天的其他路径中;如果这条路径上的客户全部被插入到其他路径中,即减少了车辆数,那么可以继续选择客户数最少的路径进行优化。如果存在客户不能被合法地插入到其他路径中,则程序结束;对模式的优化操作LSP1是通过调整客户的模式减少车辆数:先选择出客户数最少的路径,然后更改该路径上的客户的模式进而改变客户的位置,然后使用选择条件进行挑选;如果优化后的解的车辆数比优化前的解的车辆数要小的话,则进行替换;否则不进行替换;因为周期性车辆路径问题涉及多天,所以LSR1和LSP1会在每一天进行优化。如果在某一天上解的质量没有得到提升,则撤销该天的领域操作。在局部搜索中,单个邻域操作容易陷入局部最优,而多个领域操作更容易逃离局部最优。因此,对其他目标的局部搜索LS2-5使用了多个邻域操作,形成布邻域操作池OPool={O1,O2,…,On}。其中,Oi表示第i个邻域操作。对于一个给定的解x对目标2-5进行优化时,可以包括以下几步:1)深度depth设置为0。2)从邻域操作池中随机选择一个邻域操作。3)使用该邻域操作对解优化,找到该邻域中最优的解x'。4)使用解x'更新存档。5)如果fobj(x')<fobj(x),则x被x'替换。6)如果depth小于MaxDepth替,则执行步骤2,否则,返回解x,程序结束。在该发明中,最大深度设置MaxDepth为10,即对每一个解在同一个目标上的优化深度为10。3、邻域操作这部分详细描述LS2-5使用的多种邻域操作。这些邻域操作可以被分为两类:路径间的操作与路径内的操作,如图4所示。这些邻域操作都涉及两个基本的函数:selectRoute和bestPosition。函数selectRoute定义了如何选择路径。对于目标二、四和五而言,selectRoute从当天的路径中随机选择一条。对于目标三而言,selectRoute选择当天路径中行驶时间最长的路径。函数bestPosition定义了插入客户的最优位置。插入标准是所有合法插入位置中使得解在给定目标上最小的位置,即解的接收标准是最大提升策略。因为周期性车辆路径问题涉及多天,所以上述的邻域操作需要在每一天中的路径进行操作。如果在某一天上解的质量没有得到提升,则撤销该天的领域操作。O1随机地从选定的路径中删除一个客户,然后将其重新插入到最优位置。O2随机地从选定的路径中删除一些客户,然后分别将它们重新插入到最优位置。O2交换两个选定的路径中的客户序列。在一条选定的路径中,随机选择一个位置,将其后的所有客户看作一个序列,然后和另一条路径中的所有可能的序列进行交换,最后提升最大的解被保存下来。O4随机地从选定的路径中选择一些客户,改变客户的模式。然后对于每个客户使用新的模式将客户插入到其最优位置。O5将一条路径中的客户片段插入到另一条选定的路径中。O5交换两条选定的路径中的客户片段。O6将一条路径中的客户片段插入到同一条路径中。O7交换一条路径中两个客户的位置。O8从一天选定的路径中选择客户片段,并将其进行倒置。4、存档更新策略存档用于存储非占优解。但是,随着程序的进化越来越多的非占优解被发现,所以对存档大小的控制是必要的。本发明使用Epsilon存档策略,包括以下几步:1)计算解x的关联矩阵B(x)={B1,…,BM},而2)如果存档A为空,将解x放入A,执行步骤12,否则执行步骤3;3)令i等于1;4)解y为存档中第i个的解;5)如果B(y)占优B(x),执行步骤12,否则执行步骤6;6)如果B(x)和B(y)互不占优,执行步骤7,否则执行步骤8;7)如果解x目标值占优解y,则使用解x替代解y,并执行步骤12,否则执行步骤12;8)将解y从存档A中移除;9)i=i+1;10)如果i小于等于存档A中解的个数,则执行步骤4,否则执行步骤11;11)将解x放入存档A。12)程序结束。多目标局部搜索算法优化MOPVRPTW的流程图如图5所示:1)初始化存档A,评估目标序号obj设置为1,其中obj=1,2,···,5;2)初始化解x;3)对解x进行评估;4)采用局部搜索LSobj优化x的第obj个目标,得到优化后的解x’;5)使用解x’更新存档A得到存档A1,并将存档A1复制给存档A;6)obj=obj+1;7)如果obj小于等于目标数M,则执行步骤2,否则执行步骤8;8)从存档A中随机选择一个解x1,obj设置为1;9)采用局部搜索LSobj优化x1的第obj个目标,得到优化后的解x1’;10)使用解x1’更新存档A得到A2,并将存档A2复制给存档A;11)obj=obj+1;12)如果obj小于等于目标数M,则执行步骤9,否则执行步骤13;13)如果未达到结束条件,则执行步骤8,否则执行步骤14;14)输出存档A,程序结束。为了测试该算法的性能,选择快速非占优排序算法(NSGA-II)作为对比算法。该发明对公开的Solomon算例和非对称Real-Word算例进行测试。因为算例的规模大小差距较大,所以可以根据客户数将所有的算例划分为三种类型:小规模算例、中规模算例和大规模算例。它们的客户数分别位于[0,100),[100,200),[200,288]之间。它们的种群大小和最大代数如下表所示。另外,Epsilon存档中的ε为0.05。算例的类型种群大小最大代数小规模算例70500中规模算例1001500大规模算例1002000将NSGA-II运行时间作为多目标局部搜索算法的终止条件。实验结果:在135个非对称算例上,MOLS在HV指标上和NSGA-II相比的结果为135/0/0(优/平/差),在IGD指标上也是135/0/0。在20个非对称算例上,HV和IGD指标分别是20/0/0和20/0/0。实验表明,多目标局部搜索算法在收敛性和多样性上要优化NSGA-II。这证明了发明的智能调度算法在多目标带时间窗周期性车辆路径的优化设计中是十分有效的。相同或相似的标号对应相同或相似的部件;附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1