
本发明涉及物流配送领域,尤其涉及一种产品车辆路径实现方法和装置。
背景技术:
:随着经济全球化和网络信息技术的快速发展,物流配送作为一个新的经济增长点越来越引起人们的关注,随着市场竞争的日益激烈以及客户要求的不断提高,配送在未来的市场竞争中将起到举足轻重的作用。在物流配送系统中采取有效的配送策略可以减少浪费,降低成本并显著提高经济效益。车辆路径问题(VehicleRoutingProblem,VRP)源于现代物流系统,其作为物流配送优化过程中的关键环节,是一类典型的组合优化问题,也是运筹学和管理学科的前沿研究热点问题之一。带时间窗的车辆路径问题(VehicleRoutingProblemWithTimeWindows,VPRTW)是在VRP问题的基础上对客户服务时间进行约束,这一约束更贴近物流配送的现实情况,该问题实现的好坏将直接影响到一个企业的成本、效益、对客户的服务质量以及实现物流配送管理的科学化,所以对VRPTW的研究越来越受到人们的重视。本文重点研究了带有软时间窗约束的多种生鲜农产品车辆路径问题。随着科技的发展和生活水平的提高,消费者对生鲜农产品的需求不断增加,与此同时,消费者对于生鲜农产品的质量和新鲜度要求也越来越高。因此,在满足客户对新鲜度需求的前提下,寻找最优配送路径,实现配送费用最小化是物流配送领域需要解决的重要问题。由于VRPTW是一个NP难题,采用一般的精确算法解决VRPTW时,时间复杂度较高,而粒子群算法是通过粒子之间的相互作用来寻找最优解,缺乏变异机制,容易陷入局部最优,因此本文采用混合遗传算法进行求解,并且取得了很好的求解结果。在以往车辆路径问题的求解中存在以下三个方面的问题。(1)现有的生鲜农产品VRP中很少考虑道路的实际情况,各个配送客户之间的距离是以直线距离作为计算依据的,脱离了客户之间的实际道路情况。(2)现有的生鲜农产品VRP中研究的多是硬时间窗约束,要求车辆必须在规定的时间窗内到达,早到必须等待,迟到则拒收,很少考虑配送车辆在时间窗以外到达,若早到或晚到接受处罚的软时间窗情况。(3)现有的生鲜农产品VRP中配送过程中大多考虑一种生鲜农产品,很少考虑具有不同新鲜度约束的不同种类生鲜农产品同时配送的情况。技术实现要素:基于此,本发明的目的在于提供一种产品车辆路径实现方法。本发明的第二目的在于,提供所述产品车辆路径的实现装置。为实现上述目的,本发明采用了以下技术。本发明一种产品车辆路径实现方法,其特征在于,所述方法包括:读取城市道路的点边集信息;根据预设算法对所述点边集信息进行计算以得到最短路径信息,所述最短路径信息包括配送中心到各个客户的最短路径以及各个客户之间的最短路径;采用一预设编码方式初始化种群;根据所述最短路径信息以及所述初始化种群计算每个解对应的目标函数值;从各个解对应的目标函数值中选出最小的目标函数值,以及与该最小的目标函数值对应的解;对所述目标函数值依次进行选择操作、交叉操作、变异操作、重插入以及更新记录。在本发明所述的方法中,所述采用一预设编码方式初始化种群的步骤包括:将客户序列随机打乱得到一个新的序列1;在序列1的N-1个空隙中随机选取K-1个插入0,得到序列2,其中N表示客户总数量,K表示配送车辆总数目;在序列2的两端分别补上0,得到序列3,序列3即为一个初始解;根据所述初始解获取初始化的种群。在本发明所述的方法中,所述对所述目标函数值进行选择操作、交叉操作、变异操作、重插入、更新记录的步骤包括:选择操作,根据当前种群中每个解的目标函数值,从中选出偶数组解;交叉操作,在选择操作后的新种群中,对所有的解进行两两配对,将配对在一起的两个解进行交叉操作;变异操作,对每一个解随机生成一个预设数值,如果该预设数值小于变异概率,对当前解进行变异操作,否则,不对当前解进行变异操作;重插入,将变异操作后的一组解及原种群中的部分解重新组合得到新的种群;更新记录,如果新种群的最优值小于记录的上一种群的最优值,则用新种群的最优值及其对应的解替换记录的上一种群中的最优值及其对应的解,同时令解不变次数为0;否则,不更新记录中的最优值及其对应的解,同时令解不变次数加1。在本发明所述的方法中,所述在选择操作后的新种群中,对所有的解进行两两配对,将配对在一起的两个解进行交叉操作的步骤包括:从配对在一起的解向量A和解向量B中分别随机选取两个相邻0之间的非零向量,且此非零向量的长度不超过N-K+1,记为向量A1和向量B1,反之,如果随机选取的非零向量的长度超过N-K+1,则将无法完成后续的操作,即会出现某个辆车不被安排任何客户进行配送;将解向量B中没有在向量A1出现的所有非零分量按顺序组成向量A2;同理,将解向量A中没有在向量B1中出现的所有非零分量按顺序组成向量B2;在向量A2和向量B2的分量之间的空隙中分别随机选取K-2个位置插入0,得到新的向量A3和B3平;按照(0A10A30)的形式重新组合得到新的解向量C;按照(0B10B30)的形式重新组合得到新的解向量D。在本发明所述的方法中,所述根据预设算法对所述点边集信息进行计算以得到最短路径信息,所述最短路径信息包括配送中心到各个客户的最短路径以及各个客户之间的最短路径的步骤包括:计算顶点集V中一点a到其余各点的最短路经,其中a表示配送中心,顶点集V表示配送中心和客户组成的点集;把顶点集V分成两组,一组为已经求出最短路径的顶点集,用R表示;初始时只有一个源点a中每求出一条最短路,便加入到R中,直到全部顶点都加入到R中,算法结束;另一组为其余未确定最短路径的顶点集,用V\R表示;按最短路径长度的递增次序依次加入到R中,在加入过程中,保持从源点a到中各顶点的最短路径长度小于等于从源点a到V\R中任何顶点的最短路径长度。在本发明所述的方法中,还包括:获取道路交通信息和带时间窗的生鲜农产品VRP问题的基本参数;其中,所述基本参数主要包括客户地理位置、订单需求量、客户时间窗约束、新鲜度约束。为实现上述第二目的,本发明采用了以下技术。一种产品车辆路径实现装置,其特征在于,包括:读取模块,用于读取城市道路的点边集信息;第一计算模块,用于根据预设算法对所述点边集信息进行计算以得到最短路径信息,所述最短路径信息包括配送中心到各个客户的最短路径以及各个客户之间的最短路径;初始化模块,用于采用一预设编码方式初始化种群;第二计算模块,用于根据所述最短路径信息以及所述初始化种群计算每个解对应的目标函数值;选择模块,用于从各个解对应的目标函数值中选出最小的目标函数值,以及与该最小的目标函数值对应的解;操作模块,用于对所述目标函数值依次进行选择操作、交叉操作、变异操作、重插入以及更新记录。在本发明所述的装置中,所述初始化模块用于将客户序列随机打乱得到一个新的序列1;在序列1的N-1个空隙中随机选取K-1个插入0,得到序列2,其中N表示客户总数量,K表示配送车辆总数目;在序列2的两端分别补上0,得到序列3,序列3即为一个初始解;根据所述初始解获取初始化的种群。在本发明所述的装置法中,所述操作模块包括:选择单元,用于根据当前种群中每个解的目标函数值,从中选出偶数组解;交叉单元,用于在选择操作后的新种群中,对所有的解进行两两配对,将配对在一起的两个解进行交叉操作;变异单元,用于对每一个解随机生成一个预设数值,如果该预设数值小于变异概率,对当前解进行变异操作,否则,不对当前解进行变异操作;重插入单元,用于将变异操作后的一组解及原种群中的部分解重新组合得到新的种群;更新单元,用于如果新种群的最优值小于记录的上一种群的最优值,则用新种群的最优值及其对应的解替换记录的上一种群中的最优值及其对应的解,同时令解不变次数为0;否则,不更新记录中的最优值及其对应的解,同时令解不变次数加1。在本发明所述的装置法中,所述交叉单元用于从配对在一起的解向量A和解向量B中分别随机选取两个相邻0之间的非零向量,且此非零向量的长度不超过N-K+1,记为向量A1和向量B1,反之,如果随机选取的非零向量的长度超过N-K+1,则将无法完成后续的操作,即会出现某个辆车不被安排任何客户进行配送;将解向量B中没有在向量A1出现的所有非零分量按顺序组成向量A2;同理,将解向量A中没有在向量B1中出现的所有非零分量按顺序组成向量B2;在向量A2和向量B2的分量之间的空隙中分别随机选取K-2个位置插入0,得到新的向量A3和B3平;按照(0A10A30)的形式重新组合得到新的解向量C;按照(0B10B30)的形式重新组合得到新的解向量D。本发明的积极效果是:通过读取城市道路的点边集信息;根据预设算法对所述点边集信息进行计算以得到最短路径信息,所述最短路径信息包括配送中心到各个客户的最短路径以及各个客户之间的最短路径;采用一预设编码方式初始化种群;根据所述最短路径信息以及所述初始化种群计算每个解对应的目标函数值;从各个解对应的目标函数值中选出最小的目标函数值,以及与该最小的目标函数值对应的解;对所述目标函数值依次进行选择操作、交叉操作、变异操作、重插入以及更新记录。本发明极大地减少了实际运输与理论运输之间的误差,无论是在生鲜农产品配送,还是在交通路径中都具有很强的现实意义。附图说明为了更清楚地说明本发明的运行原理和使用的技术方案,下面将对运行原理和使用的技术中所需要使用的附图作简单地介绍。显而易见,下面描述中的附图仅仅是本发明的一些运行例子,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本发明一种产品车辆路径实现方法的流程图。图2是本发明一种产品车辆路径实现方法的目标函数优化曲线图。图3是本发明车辆1的行车路线图。图4是本发明车辆2的行车路线图。图5是本发明车辆3的行车路线图。图6是本发明车辆4的行车路线图。图7是本发明车辆5的行车路线图。图8是本发明车辆6的行车路线图。具体实施方式下面结合附图对本发明的技术方案进行清楚、完整地描述,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,一种产品车辆路径实现方法,包括:S1:读取城市道路的点边集信息需要说明的是,读取信息:自动读取城市道路的点边集信息,即G=(V,E)。S2:根据预设算法对所述点边集信息进行计算以得到最短路径信息,所述最短路径信息包括配送中心到各个客户的最短路径以及各个客户之间的最短路径。S3:采用一预设编码方式初始化种群需要说明的是,为了满足VRPSTWFAP解的结构的特殊性以及更方便地进行交叉操作和变异操作,本发明采用如下编码方式对种群进行初始化(其中一个种群对应一组解,种群中的每条染色体对应每个解,染色体的每个分量称为基因,基因对应解的分量),具体步骤如下。S4:根据所述最短路径信息以及所述初始化种群计算每个解对应的目标函数值需要说明的是,根据S2得到的配送中心到各客户以及各客户之间的最短路径和S3生成的初始种群,计算每个解对应的目标函数值。对于种群中的每个解,分别计算解中每个车辆的总载重量、总行驶距离、车辆到达客户的时间、车辆到达客户时各种生鲜农产品的新鲜度以及车辆离开客户的时间。S5:从各个解对应的目标函数值中选出最小的目标函数值以及与该最小的目标函数值对应的解。S6:对所述目标函数值依次进行选择操作、交叉操作、变异操作、重插入以及更新记录。S7:终止规则在其中一个实施例中,所述步骤S3包括:S301:将客户序列随机打乱得到一个新的序列1。S302:在序列1的N-1个空隙中随机选取K-1个插入0,得到序列2,其中N表示客户总数量,K表示配送车辆总数目。S303:在序列2的两端分别补上0,得到序列3,序列3即为一个初始解;然后根据该初始解即可得到初始化的种。在其中一个实施例中,所述步骤S4中计算所述种群中的每个解的目标函数值包括:S401:根据配送中心到各客户以及各客户之间的最短路径和步骤S2生成的初始种群。S402:计算每个解对应的目标函数值。S403:对于种群中的每个解,分别计算解中每个车辆的总载重量、总行驶距离、车辆到达客户的时间、车辆到达客户时各种生鲜农产品的新鲜度以及车辆离开客户的时间。在其中一个实施例中,所述步骤S5包括:S501:选择操作,根据当前种群中每个解的目标函数值,采用轮盘赌的方式从中选出偶数组解,以便进行下述交叉操作和变异操作。S502:交叉操作,由于初始解的生成采用了特殊的编码方式,为保证交叉后的解是可行解,对采用特殊编码方式后的种群进行特殊的交叉操作,在选择操作后的新种群中,对所有的解进行两两配对,将配对在一起的两个解进行交叉操作。S503:变异操作,为了避免全部解陷入局部极小值,对于交叉操作后的一组解,采用如下方式进行变异操作:对每一个解随机生成一个很小的数,如果该数小于变异概率,对当前解进行变异操作;否则,对当前解不进行变异操作。S504:重插入,将变异操作后的一组解及原种群中的部分解重新组合得到新的种群,以保证种群中解的数量一致。S505:更新记录,为了保证算法的收敛性,计算新种群的最优值及其对应的解,如果新种群的最优值小于步骤S4中记录的上一种群的最优值,则用新种群的最优值及其对应的解替换记录的上一种群中的最优值及其对应的解,同时令解不变次数为0;否则,不更新记录中的最优值及其对应的解,同时令解不变次数加1。在其中一个实施例中,步骤S2包括:S201:求一点(设为a)到其余各点的最短路经,其中a表示配送中心,V表示配送中心和客户组成的点集,E表示边集。S202:把顶点集V分成两组,一组为已经求出最短路径的顶点集,用R表示,初始时只有一个源点a中每求出一条最短路,便加入到R中,直到全部顶点都加入到R中,算法结束。S203:另组为其余未确定最短路径的顶点集,用V\R表示,按最短路径长度的递增次序依次加入到R中,在加入过程中,保持从源点a到中各顶点的最短路径长度小于等于从源点a到V\R中任何顶点的最短路径长度。在其中一个实施例中,所述步骤S6中的交叉操作,包括:S601:从配对在一起的解向量A和解向量B中分别随机选取两个相邻0之间的非零向量,且此非零向量的长度不超过N-K+1,记为向量A1和向量B1,反之,如果随机选取的非零向量的长度超过N-K+1,则将无法完成后续的操作,即会出现某个辆车不被安排任何客户进行配送。S602:将解向量B中没有在向量A1出现的所有非零分量按顺序组成向量A2;同理,将解向量A中没有在向量B1中出现的所有非零分量按顺序组成向量B2。S603:在向量A2和向量B2的分量之间的空隙中分别随机选取K-2个位置插入0,得到新的向量A3和B3平。S604:按照(0A10A30)的形式重新组合得到新的解向量C。S605:按照(0B10B30)的形式重新组合得到新的解向量D。在步骤S7中,终止规则,计算当前最优值的不变次数以及算法循环次数,如果当前最优解的不变次数或算法循环次数有一个达到上限,则算法终止。在另一具体实施例中,本发明一种产品车辆路径实现方法包括以下步骤:S1:读取城市道路的点边集信息。S2:根据Dijkstra算法对所述点边集信息进行计算以得到配送中心到各客户以及各客户之间的最短路径。S3:采用一预设编码方式初始化种群。S4:计算所述种群中的每个解的目标函数值以及记录当前种群的最优值及其对应的解,比较每个解对应的目标函数值,从中选出最小的目标函数值及其对应的解。S5:对所述目标函数值进行选择操作、交叉操作、变异操作、重插入、更新记录。S6:终止规则。本发明的目的是采用遗传算法和Dijkstra算法相结合的方法求解带软时间窗约束的生鲜农产品车辆路径问题。本发明极大减少了实际运输与理论运输之间的误差,无论是在生鲜农产品配送,还是在交通路径中都可以具有很强的现实意义。首先,我们建立具有软时间窗约束的多种生鲜农产品车辆路径优化问题模型为:假设某一物流公司有一个配送中心、N位客户、K辆同型车,用(0,1,...,N)表示,其中0代表配送中心;W种生鲜农产品;客户对生鲜农产品需求新鲜度为δi,w,其中0.3≤δi,w≤1;时间窗为[Ei,Si];需求量qi,w;配送车辆k到达i的时间ti,θk,i,w;对每个客户的平均服务时间为T0;从客户i到客户i的时间为Tk,ij;其中可能经过的交点数目为lk,ij;配送距离dk,ij;车辆k服务的顾客数mk;每辆车的固定费用为c;单位行驶距离配送费用为c1(单位配送成费用和冷颤费用);早到单位时间惩罚费用为p1;晚到单位时间惩罚费用为p2;生鲜农产品w在保质期内但低于客户需求新鲜度时单位惩罚费用为γw,超过保质期将产生较大的惩罚费用为γ(γ>γw);车辆从配送中心出发完成配送任务后返回配送中心,每位客户的需求量小于车辆的最大载重量,客户距离配送中心的距离小于最大行驶距离。配送的各种生鲜农产品在性质上具有极大的相关性。建立数学模型:配送车辆固定费用:配送车辆行驶费用:时间窗惩罚费用:生鲜农产品w的新鲜度:其中,θw0为产品w的初始新鲜度,其与生鲜农产品性质有关。新鲜度惩罚费用:总费用数学模型:约束条件:1≤mk≤N(4)。tk,i+Tk,ij+To=tkj(6)。0<θk,i,w≤1(8)。其中,式(2)表示每辆车的载重量约束。式(3)表示每辆车的行驶距离约束。式(4)表示每辆车服务客户约束。式(5)表示所有车辆服务的客户数等于总的订单数。式(6)和(7)表示时间约束。式(8)表示新鲜度约束。式(9)表示车辆k服务的客户数。式(10)表示每个客户仅有一辆车服务。式(11)表示每辆车从配送中心出发并返回配送中心。式(12)和式(13)表示0、1决策变量。数学模型求解步骤如下:对于上述数学模型采用混合遗传算法进行求解,其中,N表示订单数,K表示0的个数,等于车辆数加1。Step1读取信息:自动读取城市道路的点边集信息,即G=(V,E),采用Dijkstra算法计算配送中心到各客户以及各客户之间的最短路径。具体Dijkstra算法如下:Step1.1令R={a},l(a)=0,对于任意的点x∈V\R,令l(x)=d(a,x),其中,若(a,x)∈E,则d(a,x)为边(a,x)的长度,否则,d(a,x)=∞。Step1.2当R≠V时,求一点x∈V\R,使得l(x)=min{l(x)|x∈V\R},令R=R∪{x}。Step1.3对任意的点y∈V\R,且(x,y)∈E,则l(y)=min{l(u),l(x+c(x,y))}。Step1.4重复上述步骤,知道所有的点都加入到R中。Step2种群初始化:为了满足VRPSTWFAP解的结构的特殊性,以及更方便地进行交叉操作和变异操作,本发明采用如下编码方式对种群进行初始化(其中一个种群对应一组解,种群中的每条染色体对应每个解,染色体的每个分量称为基因,基因对应解的分量),具体步骤如下。Step2.1将客户序列随机打乱得到一个新的序列1。Step2.2在序列1的N-1个空隙中随机选取K-1个插入0,得到序列2,其中N表示客户总数量,K表示配送车辆总数目。Step2.3在序列2的两端分别补上0,得到序列3,序列3即为一个初始解。将12位客户序列随机打乱的到新的序列1:163427850192在序列1的10个空隙中随机选取2个位置插入0,即第三个和第五个空隙位置中插入0,得到序列2:16304207850192在上述序列2的两端分别补上0得到一个初始解:0163042078501920Step3计算种群中每个解的目标函数值:根据Step1得到的配送中心到各客户以及各客户之间的最短路径和Step2生成的初始种群,计算每个解对应的目标函数值。对于种群中的每个解,分别计算解中每个车辆的总载重量、总行驶距离、车辆到达客户的时间、车辆到达客户时各种生鲜农产品的新鲜度以及车辆离开客户的时间。Step4记录当前种群的最优值及其对应的解:比较每个解对应的目标函数值,从中选出最小的目标函数值及其对应的解。Step5选择操作:根据当前种群中每个解的目标函数值,采用轮盘赌的方式从中选出偶数组解,以便进行下述交叉操作和变异操作。Step6交叉操作:由于Step2中初始解的生成采用了特殊的编码方式,为保证交叉后的解是可行解,对采用特殊编码方式后的种群进行特殊的交叉操作。在选择操作后的新种群中,对所有的解进行两两配对,将配对在一起的两个解进行交叉操作:Step6.1从配对在一起的解向量A和解向量B中分别随机选取两个相邻0之间的非零向量,且此非零向量的长度不超过N-K+1,记为向量A1和向量B1。反之,如果随机选取的非零向量的长度超过N-K+1,则将无法完成后续的操作,即会出现某个辆车不被安排任何客户进行配送。Step6.2将解向量B中没有在向量A1出现的所有非零分量按顺序组成向量A2;同理,将解向量A中没有在向量B1中出现的所有非零分量按顺序组成向量B2。Step6.3在向量A2和向量B2的分量之间的空隙中分别随机选取K-2个位置插入0,得到新的向量A3和B3。因为在Step6.1中已经限制了向量A1和向量B1的长度都小于等于N-K+1,所以A2和B2分量之间的空隙都大于等于K-2,保证每个0都有位置插入。Step6.4按照(0A10A30)的形式重新组合得到新的解向量C;同样,按照(0B10B30)的形式重新组合得到新的解向量D。此时,解向量C和解向量D即为由解向量A和解向量B进行交叉操作后得到的新的成对解。解向量C和解向量D的结构与初始解的结构相同,从而保证了交叉操作将一对可行解变成新的成对可行解。例:在VRPSTWFAP中,由3辆车配送12个订单的交叉操作:解1:0139108427060520解2:0026107843520190如果选择两个交叉点分别为解1:11和13,解2:1和6,经过Step6.1后,可得向量A1和向量B1:A1:6B10261经过Step6.2后可得向量A2和B2A202178435219B213984275经过Step6.3后可得向量A3和向量B3:A3021078435219B3139084275经过Step6.4后可得交叉操作后的新解向量C和新解向量DC0600210784352190D0026101390842750Step6.5对初始种群重复上述过程,可以得到交叉操作后的新种群。Step7变异操作:为了避免全部解陷入局部极小值,对于交叉操作后的一组解,采用如下方式进行变异操作:对每一个解随机生成一个很小的数,如果该数小于变异概率,对当前解进行变异操作;否则,对当前解不进行变异操作。Step8重插入:将变异操作后的一组解及原种群中的部分解重新组合得到新的种群,以保证种群中解的数量一致。Step9更新记录:为了保证算法的收敛性,计算新种群的最优值及其对应的解,如果新种群的最优值小于Step4中记录的上一种群的最优值,则用新种群的最优值及其对应的解替换记录的上一种群中的最优值及其对应的解,同时令解不变次数为0;否则,不更新记录中的最优值及其对应的解,同时令解不变次数加1。Step10终止规则:计算当前最优值的不变次数以及算法循环次数,如果当前最优解的不变次数或算法循环次数有一个达到上限,则算法终止,否则返回Step5。车辆路径问题是一个NP-hard,只有在节点较少时才能求得精确解。虽然很多文献或专利中都表明能够解决带时间窗的车辆路径问题,然而并没有透露可行解的编码方法,也不能保证每次都能够求得可行解。如由Clarke和Wright提出的节约算法、Pureza和Franca研究的Tabu搜索算法等。这些算法用以求解车辆路径问题时虽然很有效,但也出现了一些缺陷:如节约算法按节约量从大到小构造路径,具有运算速度快的优点,但存在未组合点零乱、边缘点难于组合的问题;Tabu搜素太贪婪地对都一个局部区域以及邻域搜索,导致一叶障目。为了避免这些缺陷,本发明采用改进遗传算法,不仅采用群体搜索策略和个体之间信息交换策略,还引用了Dijkstra算法和实际主要道路数据,在此基础上对算法编码中的交叉操作做出改进,保证了交叉操作后的解的可行性,最后通过循环策略对配送车辆数进行优化,尽量减少配送人力、物力等费用,经过本发明的改进,生鲜农产品车辆路径配送费用降到最低。最重要的是很多文献或专利中都表明能够解决带时间窗的车辆路径问题,然而并没有透露可行解的编码方法,也不能保证每次都能够求得可行解。本发明的改进混合遗传算法不仅公开了编码方法,还结合道路数据,保证了每次都能实现可行解。本发明的改进混合遗传算法解决多种生鲜农产品车辆路径优化问题,在满足客户需求的情况下使配送费用降到最低。区别于以往的以时间最短为目的的路径优化问题。本发明还提供了一种产品车辆路径实现系统,所述系统包括:基本参数设置模块、实际路况计算模块、遗传算法优化模块、结果显示模块。在其中一个实施例中,所述基本参数设置模块用于输入生鲜农产品路径优化问题所需的基本参数数据,用于实现种群数量、最大迭代次数、车辆负载、惩罚费用等数据的录入功能。实际路况计算模块用于计算配送中心到客户以及各客户之间的最短实际距离,使计算结果更加接近于实际运营结果,并加速了遗传算法优化模块的计算。遗传算法优化模块用于优化生鲜农产品的配送路径和配送车辆数,使配送成本降到最低。结果显示模块用于显示生鲜农产品的目标函数优化曲线和最终配送路径。本优化系统包括基本参数设置模块、实际路况计算模块、遗传算法优化模块、结果显示模块。基本参数设置模块用于输入生鲜农产品路径优化问题所需的基本参数数据,能够实现种群数量、最大迭代次数、车辆负载、惩罚费用等数据的录入功能。实际路况计算模块用于计算配送中心到客户以及各客户之间的最短实际距离,使计算结果更加接近于实际运营结果,并加速了遗传算法优化模块的计算。遗传算法优化模块用于优化生鲜农产品的配送路径和配送车辆数,使配送成本降到最低。结果显示模块用于显示生鲜农产品的目标函数优化曲线和最终配送路径。为了验证本发明的实用性和优越性,下面通过实例进行详细说明。本发明所建模型仅考虑1个配送中心,配送车辆型号单一,载重量、最大行驶距离、行驶速度(匀速)已知,全部以配送中心作为起点。配送的生鲜农产品可以混装,每个客户的需求量不超过配送车辆的最大载重量,客户的位置和需求量已知,每个客户有且仅有一辆车一次配送完成。每辆车的配送过程中只有卸货没有装货,且完成配送任务后返回配送中心。本例中设3种生鲜农产品,10辆配送车,222个位置点,其中有20个是客户点,以位置编号为102的点作为配送中心。例如,参照图3-图8,其为车辆1至6的行车路线图。建立生鲜农产品配送成本数学模型:(1)获取道路交通信息(参考上海市部分主要道路数据)和带时间窗的生鲜农产品VRP问题的基本参数,主要包括:客户地理位置、订单需求量、客户时间窗约束、新鲜度约束等。(2)配送中心点的坐标为(121.4149,31.22065),配送车辆的最大载重量为30t、车速为10km/h、每辆车出行最大行驶距离为300km、早到惩罚费用为5元(¥)、晚到惩罚费用为10元、单位行驶距离成本为1元、生鲜农产品在保质期内,但新鲜度超过客户需求新鲜度时单位惩罚费用分别为20元、15元、10元、超过保质期单位惩罚费用为均为100元。用10辆同型车,对订单点进行配送,通过本发明设计的混合遗传算法,可以得到6辆车对这些客户进行配送的目标优化函数曲线图和优化路线图。本发明还提供了一种产品车辆路径实现装置,包括:读取模块、第一计算模块、初始化模块、第二计算模块、选择模块以及操作模块。其中,该读取模块用于读取城市道路的点边集信息。该第一计算模块用于根据预设算法对所述点边集信息进行计算以得到最短路径信息,所述最短路径信息包括配送中心到各个客户的最短路径以及各个客户之间的最短路径。该初始化模块用于采用一预设编码方式初始化种群。该初始化模块具体用于将客户序列随机打乱得到一个新的序列1;在序列1的N-1个空隙中随机选取K-1个插入0,得到序列2,其中N表示客户总数量,K表示配送车辆总数目;在序列2的两端分别补上0,得到序列3,序列3即为一个初始解;根据所述初始解获取初始化的种群。该第二计算模块用于根据所述最短路径信息以及所述初始化种群计算每个解对应的目标函数值。该选择模块用于从各个解对应的目标函数值中选出最小的目标函数值,以及与该最小的目标函数值对应的解。该操作模块用于对所述目标函数值依次进行选择操作、交叉操作、变异操作、重插入以及更新记录。该操作模块包括:选择单元,用于根据当前种群中每个解的目标函数值,从中选出偶数组解。交叉单元,用于在选择操作后的新种群中,对所有的解进行两两配对,将配对在一起的两个解进行交叉操作。变异单元,用于对每一个解随机生成一个预设数值,如果该预设数值小于变异概率,对当前解进行变异操作,否则,不对当前解进行变异操作。重插入单元,用于将变异操作后的一组解及原种群中的部分解重新组合得到新的种群。更新单元,用于如果新种群的最优值小于记录的上一种群的最优值,则用新种群的最优值及其对应的解替换记录的上一种群中的最优值及其对应的解,同时令解不变次数为0;否则,不更新记录中的最优值及其对应的解,同时令解不变次数加1。交叉单元具体用于从配对在一起的解向量A和解向量B中分别随机选取两个相邻0之间的非零向量,且此非零向量的长度不超过N-K+1,记为向量A1和向量B1,反之,如果随机选取的非零向量的长度超过N-K+1,则将无法完成后续的操作,即会出现某个辆车不被安排任何客户进行配送。将解向量B中没有在向量A1出现的所有非零分量按顺序组成向量A2;同理,将解向量A中没有在向量B1中出现的所有非零分量按顺序组成向量B2。在向量A2和向量B2的分量之间的空隙中分别随机选取K-2个位置插入0,得到新的向量A3和B3平。按照(0A10A30)的形式重新组合得到新的解向量C。按照(0B10B30)的形式重新组合得到新的解向量D。以上对本发明的运行原理进行了详细介绍,上述运行原理的说明只是用于帮助理解本发明的方法及其核心技术思路;对于本领域的一般技术人员,依据本发明的核心技术思路,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3