CN110472792B - 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 - Google Patents
一种基于离散蝙蝠算法的物流配送车辆路径优化方法 Download PDFInfo
- Publication number
- CN110472792B CN110472792B CN201910758083.3A CN201910758083A CN110472792B CN 110472792 B CN110472792 B CN 110472792B CN 201910758083 A CN201910758083 A CN 201910758083A CN 110472792 B CN110472792 B CN 110472792B
- Authority
- CN
- China
- Prior art keywords
- bat
- point
- customer
- points
- vehicle
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000005457 optimization Methods 0.000 title claims abstract description 31
- 241000288673 Chiroptera Species 0.000 claims abstract description 7
- 238000000638 solvent extraction Methods 0.000 claims abstract description 5
- 238000007621 cluster analysis Methods 0.000 claims abstract description 4
- 238000005192 partition Methods 0.000 claims abstract description 4
- 241001175904 Labeo bata Species 0.000 claims description 5
- 238000013461 design Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000007306 turnover Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 11
- 230000006872 improvement Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002922 simulated annealing Methods 0.000 description 3
- 238000003064 k means clustering Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 239000011664 nicotinic acid Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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
- 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
- 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/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0835—Relationships between shipper or supplier and carriers
- G06Q10/08355—Routing methods
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- Evolutionary Computation (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种基于离散蝙蝠算法的物流配送车辆路径优化方法,其步骤如下:构建带有能力约束的物流配送车辆路径的模型,并设计解编码策略和速度编码策略;初始化蝙蝠算法作为初始化的客户点;利用K‑means算法对初始化的客户点进行聚类分析,将所有客户点按其所处位置进行分区;利用离散蝙蝠算法对分区之后的蝙蝠位置进行更新;选择一个随机数,根据随机数与当前脉冲频率的大小选择局搜索或全局搜索,并计算新的适应度值;适应度值更新,脉冲发射率和声音响度更新;判断是否满足终止条件,输出全局最优解。本发明可以快速有效地求解带容量约束的车辆路径问题,能够大大提高求解速度,降低配送成本,具有更强的鲁棒性和可行性。
Description
技术领域
本发明涉及物流配送的技术领域,尤其涉及一种基于离散蝙蝠算法的物流配送车辆路径优化方法。
背景技术
电子商务的繁荣发展使得物流配送需求大幅度增加,物流配送涉及到的客户规模越来越大,所在区域分布越来越广,客户对配送服务的要求也愈加苛刻,物流企业间的竞争随之加剧。如何在企业承载能力约束的基础之上尽可能满足客户需求、减少配送成本,提高竞争力,成为物流企业迫切需要解决的问题。因此,根据有能力约束的车辆路径问题(Capacitated Vehicle Routing Problem,CVRP),研究并设计有效的优化方法是亟待解决的问题。
有能力约束的车辆路径问题(CVRP)作为物流活动中的一项经典组合优化问题,属于NP-Hard问题,精确算法不能在有限时间内给出最优解,且随着规模的增大求解难度呈指数级增加。为了有效满足物流企业对客户的配送需求,可以使用智能优化算法在有限时间内给出相对较优解。目前,主要采用启发式算法求解CVRP问题,包括禁忌搜索(TabuSearch,TS)算法、模拟退火(Simulated Annealing,SA)算法、蚁群算法(Ant ColonyOptimization,ACO)、粒子群算法(Particle Swarm Optimization,PSO)及遗传算法(Genetic Algorithm,GA)等。但上述算法都存在各自的缺点,TS算法容易陷入局部最优解,SA算法收敛速度较慢,ACO普适性和稳定性较差,PSO缺乏速度动态调节、求解精度低,GA容易陷入早熟等,因此,上述算法不能快速有效地求解CVRP问题。
蝙蝠算法(Bat Algorithm,BA)是Yang教授受自然界中蝙蝠通过回声定位进行搜索、捕食猎物的生物学特性启发,于2010年提出的一种新型的群智能仿生优化算法,该算法通过模拟蝙蝠的捕食行为来求取问题的最优解,具有参数少、稳定性强、求解速度快、搜索能力强等优势,在函数优化、调度问题、模式识别、图像处理、故障诊断等方面表现出极大的优势。截至目前,蝙蝠算法在求解连续优化问题上取得了较好的优化效果,较少用来求解如二值优化问题、背包问题、最小比率TSP问题、CVRP问题等离散优化问题,尤其很少用在CVRP问题的求解中。
发明内容
针对现有车辆路径优化方法收敛速度慢,求解精度低的技术问题,本发明提出一种基于离散蝙蝠算法的物流配送车辆路径优化方法,通过离散蝙蝠算法(Discrete BatAlgorithm,DBA)对客户点进行聚类分析,能够大大提高求解速度,降低配送成本,具有更强的鲁棒性和可行性。
为了达到上述目的,本发明的技术方案是这样实现的:一种基于离散蝙蝠算法的物流配送车辆路径优化方法,其步骤如下:
步骤一:根据现有的有能力约束的车辆路径问题,构建带有能力约束的物流配送车辆路径的模型,并设计解编码策略和速度编码策略;
步骤二:根据解编码策略和速度编码策略初始化蝙蝠算法:初始化蝙蝠的位置、脉冲频率和速度,作为初始化的客户点;
步骤三:利用K-means算法对步骤二中初始化的客户点进行聚类分析,将所有客户点按其所处位置进行分区;
步骤四:全局搜索:利用离散蝙蝠算法对分区之后的蝙蝠位置进行更新;
步骤五:搜索方式的选择:选择一个随机数,根据随机数与当前脉冲频率的大小选择进行局搜索或全局搜索,并计算新的适应度值;
步骤六:适应度值更新:将步骤五得到的适应度值与当前最小适应度值进行比较,若步骤五得到的适应度值小于当前最小适应度值,并且当前声音响度大于运用rand函数产生在(0,1)之间均匀分布的随机数r2,则利用步骤五得到的适应度值更新最小适应度值,并记录各个蝙蝠的位置,得到全局最优解,否则不更新;
步骤七:脉冲发射率和声音响度更新:脉冲发射频率和声音响度的更新是在下一次迭代中判断是全局搜索还是局部搜索及适应度值是否更新;
步骤八:如果满足结束条件,输出全局最优解;否则返回步骤五。
所述步骤一中带有能力约束的物流配送车辆路径的模型为:
决策变量定义为:
其中,表示所有车辆行驶的总距离;Z表示总成本,K为所需车辆的总数;N为用户总量;a为单位车辆的固定费用;b为单位距离的油耗成本;dij为客户点i到客户点j之间的距离;qi为客户点i的货物重量;Q表示车辆的最大载重量;S为客户点的编号集合,且S的值为{1,2,…,N};xijk表示车辆k是否经过客户点i到达点客户j,yik表示保证每个客户都有一辆车为其提供服务,i、j等于0时表示配送中心,k等于0时表示初始车辆数为0。
所述步骤一中编码策略解编码策略和速度编码策略的设计方法为:求解问题的规模为N,将客户点编号为从1到N的不同整数;
(1)解编码策略:解的编码采用遍历配送点序列的方式,编码长度为需要遍历的配送点个数N,解中每一个分量对应一个客户点编号,因而得到解X的编码形式为:
X=(m1,m2,…,mN),
其中,N表示编码长度,mi表示第i个要遍历客户点的编号,mi∈[1,N]且任意mi≠mj;
(2)速度编码策略:速度的编码采用客户点编号增量序列的方式,速度编码中每一个客户点编号对应一个客户点编号增量,且:
V=(v1,v2,…,vN)
其中,V表示速度,vi表示第i个要遍历配送点的速度,vi∈[-(N-1),N-1]。
所述初始化蝙蝠算法的方法为:
(1)初始化蝙蝠位置:将每个蝙蝠个体的初始位置即所在客户点编号置为[1,N]之间的随机数;
(2)初始化脉冲频率:将每个蝙蝠个体的初始脉冲频率置为零;
(3)初始化速度:将每个蝙蝠个体的初始速度置为[1-N,N-1]之间的随机数。
所述步骤三中K-means算法的步骤为:
步骤1:在客户点中随机选择m个点作为每个聚类的中心点,且m∈S;
步骤2:随机选择一个待配送客户点s,且s∈S;
步骤3:比较待配送客户点s分别到m个点的距离,把待配送客户点s放入与其距离最近点所属区域中;
步骤4:选择下一个待配送客户点,循环步骤3,直到所有的待配送客户点都归属某个分区。
所述步骤四中的离散蝙蝠算法的实现方法为:
调整脉冲频率:fa=fmin+(fmax-fmin)β;
其中,fa表示第a只蝙蝠的脉冲频率;fmax、fmin分别表示脉冲频率的最大值和最小值;β是均匀分布的随机数,且β∈[0,1];xa t-1和va t-1分别表示第t-1代蝙蝠a所在的位置和速度;xa t和va t分别表示第t代蝙蝠a所在的位置和速度;x*表示当前最优解,即当前最小适应度值对应的蝙蝠位置,从而产生后代蝙蝠。
所述步骤五中运用rand函数产生在(0,1)之间均匀分布的随机数r1,若r1小于当前脉冲频率,则按步骤四进行全局搜索,并计算新的适应度值;否则在当前解附近进行局部搜索;xnew=x*+εμ;并以一定的概率来判断是否进行两元素优化操作,计算新的适应度值;其中,xnew表示随机扰动得到的新解;x*表示当前最优解;ε表示randn函数生成的随机向量;μ表示常量;所述概率利用随机函数确定,两元素优化操作是在最优解路线随机选择不相邻的两个节点,将两个节点之间的路径翻转获得新路径。
所述步骤五中适应度值的求取方法为:
步骤1:根据每个待配送点所需配送的货物重量,并结合车辆的限载重量Q,把满足限载要求的配送点放入车辆运行路线中;如果该配送点的货物重量超出了车辆的限载重量Q,则再申请一辆车辆,并将当前所需车辆总数加1;
步骤2:计算油耗成本与车辆的租赁费用之和,即总成本。
其中,Aa t、Aa t+1分别表示蝙蝠a在第t代和第t+1代的音量;ra 0表示蝙蝠a的初始脉冲发射频率;ra t表示蝙蝠a在第t代的脉冲发射频率;常量α表示音量的衰减系数,且0<α<1;常量γ表示搜索频率的增强系数,且γ>0。
本发明的有益效果:定义蝙蝠算法的离散化编码策略和操作算子,根据配送点和车辆对CVRP问题及各个变量进行编码,转变为可以优化的变量,使用K-means聚类算法对每次迭代的初始解进行聚类分析,DBA算法中引入了两元素优化(2-optimization,2-opt)的方法进行局部搜索,增加扰动机制,提高搜索速度和搜索精度;与应用比较广泛的PSO和GA进行对比,对比分析结果表明,本发明的离散蝙蝠算法能够大大提高求解速度,降低配送成本,具有更强的鲁棒性和可行性。本发明可以快速有效地求解带容量约束的车辆路径问题,进一步提高了算法的性能,对蝙蝠算法的进一步发展和推广应用具有一定的促进作用,对促进物流业的进步和社会经济的可持续发展具有现实意义。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程图。
图2为本发明和对比算法在同等规模迭代200次的平均变化曲线。
图3为本发明和对比算法在同等规模迭代600次的平均变化曲线。
图4为本发明和对比算法在同等规模迭代1000次的平均变化曲线。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于离散蝙蝠算法的物流配送车辆路径优化方法,其步骤如下:
步骤一:根据现有的有能力约束的车辆路径问题,构建带有能力约束的物流配送车辆路径的模型,并设计解编码策略和速度编码策略。
构建带有能力约束的物流配送车辆路径的模型如下:
决策变量定义为:
公式(1)中表示所有车辆行驶的总距离;i,j∈[1,N];k∈[1,K]。其中,x0jk表示车辆k是否从配送中心驶向客户点j;xi0k表示车辆k是否从客户点i返回配送中心;i、j等于0时表示配送中心,k等于0时表示初始车辆数为0。Z表示总成本,K为所需车辆的总数;N为用户总量;a为单位车辆的固定费用;b为单位距离的油耗成本;dij为客户点i到客户点j之间的距离;qi为客户点i的货物重量;Q表示车辆的最大载重量;S为客户点的编号集合,且S的值为{1,2,…,N};xijk表示车辆k是否经过客户点i到达点客户j,yik表示保证每个客户都有一辆车为其提供服务。
上述模型中,式(1)表示车辆发车成本和配送成本总和最少的目标函数,公式(1)中的k变量从0开始,最大值为N即是每个客户点的重量刚好达到限载重量,每个客户点都需由一辆车进行配送,式(2)表示每辆车装载的货物总量不超过车辆的最大容量,式(3)表示每个客户由且仅由一辆车提供服务,式(4)保证客户点j之前的临近客户点只有一个,i的范围从0开始,包括配送中心点,式(5)保证客户点i之后的临近客户点只有一个,j的范围从0开始包括配送中心点,式(6)表示从配送中心出发的车辆在完成配送任务后要返回配送中心,式(7)表示消除子回路,消除子回路表示消除车辆不是从车场出发的现象,式(4)-式(7)共同保证了可行回路,式(8)和式(9)表示决策变量的取值范围。
编码策略:假设求解问题的规模为N,将客户点编号为从1到N的不同整数。
(1)解编码策略:针对CVRP问题的特性,解的编码采用遍历配送点序列的方式,编码长度为需要遍历的配送点个数N,解中每一个分量对应一个客户点编号,因而得到解X的编码形式为:
X=(m1,m2,…,mN),
其中,N表示编码长度),mi表示第i个要遍历客户点的编号,mi∈[1,N]且任意mi≠mj。
(2)速度编码策略:速度的编码采用客户点编号增量序列的方式,由于解X的长度为N,所以速度编码的长度为N。编码中每一个客户点编号对应一个客户点编号增量,其值可以为正值或负值,变化范围为[-(N-1),N-1]。具体形式为:
V=(v1,v2,…,vN)
其中,V表示速度,vi表示第i个要遍历配送点的速度,vi∈[-(N-1),N-1]。
步骤二:根据解编码策略和速度编码策略初始化蝙蝠算法:初始化蝙蝠的位置、脉冲频率和速度;
(1)初始化蝙蝠位置:将每个蝙蝠个体的初始位置(即所在客户点编号)置为[1,N]之间的随机数;
(2)初始化脉冲频率:将每个蝙蝠个体的初始脉冲频率置为零;
(3)初始化速度:将每个蝙蝠个体的初始速度置为[1-N,N-1]之间的随机数。
步骤三:利用K-means算法对步骤二中的客户点进行聚类分析,将所有客户点按其所处位置进行分区。步骤三处理的数据是步骤二中初始蝙蝠个体的位置,即所在客户点的编号。
为了提高搜索速度,将所有客户点按其所处位置进行分区处理,利用K-means算法对客户点进行聚类分析,并最终划分为m个区,使每个客户点都归属于某个分区。所述K-means算法的步骤为:
步骤1:在客户点中随机选择m个点作为每个聚类的中心点,且m∈S;
步骤2:随机选择一个待配送客户点s,且s∈S;
步骤3:比较待配送客户点s分别到m个点的距离,把待配送客户点s放入与其距离最近点所属区域中;
步骤4:选择下一个待配送客户点,循环步骤3,直到所有的待配送客户点都归属某个分区。
步骤四:利用离散蝙蝠算法对分区之后的蝙蝠位置进行更新。
对于任意蝙蝠a利用公式(10)调整其脉冲频率,公式(11)调整其速度,公式(12)调整其位置,从而产生后代蝙蝠;
fa=fmin+(fmax-fmin)β (10)
其中,fa表示第a只蝙蝠的脉冲频率,脉冲频率fa是进行全局搜索时调整蝙蝠的位置。fmax、fmin分别表示脉冲频率的最大值和最小值;β是均匀分布的随机数,且β∈[0,1];xa t -1和va t-1分别表示第t-1代蝙蝠a所在的位置和速度;xa t和va t分别表示第t代蝙蝠a所在的位置和速度;x*表示当前最优解,当前最小适应度值对应的蝙蝠位置即为当前最优解。
步骤五:搜索方式的选择:选择一个随机数,根据随机数与当前脉冲频率的大小选择进行局搜索或全局搜索,并计算新的适应度值。
全局搜索和局部搜索都是对蝙蝠位置进行更新,但是全局搜索是通过调整蝙蝠脉冲频率和蝙蝠速度来更新蝙蝠位置,而局部搜索则是在当前最优解附近进行搜索。运用rand函数产生在(0,1)之间均匀分布的随机数,记为r1。若r1小于当前脉冲频率,则按步骤四进行全局搜索,并计算新的适应度值;否则在当前解附近进行局部搜索,搜索方式如公式(13)所示,并以一定的概率来判断是否进行两元素优化(2-optimization,2-opt)操作,计算新的适应度值。
xnew=x*+εμ (13)
其中,xnew表示随机扰动得到的新解;x*表示当前最优解;ε表示随机向量,用randn函数生成;μ表示常量,且0μ<1。
适应度函数用来衡量货物配送过程中的总成本,包含车辆租赁成本以及与行驶距离相关的油耗成本,详见公式(1)。所述适应度值的求取方法为:
步骤1:根据每个待配送点所需配送的货物重量,并结合车辆的限载重量Q,把满足限载要求的配送点放入车辆运行路线中;如果该配送点的货物重量超出了车辆的限载重量Q,则再申请一辆车辆,并将当前所需车辆总数加1;
步骤2:计算油耗成本与车辆的租赁费用之和,即总成本。
以一定的概率来判断是否进行2-opt操作,2-opt操作的实现方法以6个客户点的配送为例,假设客户点为A、B、C、D、E、F和G,首先将初始最优解路线记为s={A,B,C,D,E,F,G},然后在s中随机选择不相邻的两个节点,将两个节点之间的路径翻转获得新路径。例如在路线s中随机选中了B节点和E节点,将B节点之前的路径不变添加到新路径中,将B节点到E节点之间的路径翻转其编号后添加到新路径中,将E节点之后的路径不变添加到新路径中,则新路径记为s’={A,E,D,C,B,F,G}。
步骤六:适应度值更新:将步骤五得到的适应度值与当前最小适应度值进行比较,若步骤五得到的适应度值小于当前最小适应度值,并且当前声音响度大于运用rand函数产生在(0,1)之间均匀分布的随机数r2,则利用步骤五得到的适应度值更新最小适应度值,并记录各个蝙蝠的位置,得到全局最优解,否则不更新。
如果是第一次迭代,当前声音响度就是初始声音响度,如果不是第一次迭代,当前声音响度是步骤七更新之后的声音响度。
最小适应度值是对步骤五得到的所有适应度值进行排序,得出的最小适应度值。
步骤七:脉冲发射率和声音响度更新:脉冲发射频率和声音响度的更新是在下一次迭代中判断是全局搜索还是局部搜索及适应度值是否更新。
根据公式(14)和公式(15)分别更新脉冲发射频率ra t以及声音响度Aa t;
其中:t表示迭代代数;Aa t、Aa t+1分别表示蝙蝠a在第t代和第t+1代的声音响度,如果t=0时表示初始声音响度,若t≠0时则按照公式(15)进行更新;ra 0表示蝙蝠a的初始的脉冲发射频率;ra t表示蝙蝠a在第t代的脉冲发射频率;常量α表示音量的衰减系数,且0<α<1;常量γ表示搜索频率的增强系数,且γ>0。利用随机函数为蝙蝠个体生成初始声音响度;利用随机函数为蝙蝠个体生成初始脉冲频率。
步骤八:如果满足终止条件,输出全局最优解;否则返回步骤五。
终止条件是:是否达到最大迭代次数。
仿真实验平台为MATLAB R2017b,CPU为3.4GHZ,内存4.0G,win10 64位操作***。本发明的参数取值如下:DBA中脉冲频率的最大值fmax=1,脉冲频率的最小值fmin=0,音量的衰减系数α=0.9,搜索频率的增强系数γ=0.9,初始响度A∈(0,1),脉冲发射频率r∈(0,1)脉冲发射频率r用来做判断是全局搜索还是局部搜索,随机数用r1,r2表示;GA中交叉概率pc=0.3,变异概率pm=0.2;PSO中惯性权重因子w=0.2,加速系数C1=C2=2。
分别使用本发明(DBA)和PSO、GA这3种算法对从Solomon标准测试库中选取的12个经典测试实例进行10次运算,所有测试均采用全浮点数运算,算法所得最优解为10次运算所得最小值,表1、表2和表3中给出了3种算法的种群规模均等于问题规模数(大小为101),迭代次数分别为200、600和1000时3种算法所得最优解及相应的结果比较。表4中给出了本发明的种群规模为30,GA和PSO算法种群规模均等于问题规模数,迭代次数为1000时3种算法所得最优解及相应的结果比较。
表1迭代次数为200时3种算法运算数据比较
表2迭代次数为600时3种算法运算数据比较
表3迭代次数为1000时3种算法运算数据比较
表4迭代次数为1000时不同种群规模3种算法运算数据比较
从表1、表2和表3可以看出,运行迭代次数为200、600和1000时,12个实例中应用本发明求解所得平均时间稍慢于GA和PSO两种算法求得的平均时间,但是本发明的DBA算法求得的最优解均在很大程度上优于GA和PSO两种算法求得的最优解。表1中,在求解C101问题时,本发明相对于GA和PSO改进最小,分别提高了10.31%和14.32%,但在求解RC101问题时,本发明相对于GA和PSO分别提高了21.42%和32.12%,在平均求解精度方本发明较GA和PSO算法分别有15.75%和22.99%的提高。表2中,在求解C102问题时,本发明相对于GA改进最小,但也有13.73%的提高,在求解C204问题时,本发明相对于PSO改进最小,提高了20.11%,但在求解RC105问题时,本发明相对于GA和PSO分别提高了20.95%和35.65%,在平均求解精度方面本发明较GA和PSO算法分别有17.42%和26.21%的提高。表3中,在求解R201问题时,本发明相对GA改进最小,但也有12.71%的提高,但在求解RC105问题时,本发明相对于GA却有19.34%的提高,在求解C102问题时,本发明相对于PSO改进最小,提高了22.93%,但在求解RC201问题时,本发明相对于PSO提高了33.87%。在平均求解精度方面本发明较GA和PSO算法分别有16.27%和26.67%的提高。从表4可以看出,种群规模为30时的本发明所求得的平均值及最优值均优于同等规模的GA和PSO算法所求得的平均值及最优值,且种群规模为30的本发明耗费平均时间优于同等规模时的GA和PSO,即对于12个测试实例本发明相对于GA和PSO所求的平均时间分别平均加快了174.95%和175.27%。在平均值的平均求解精度方面,本发明较GA和PSO算法分别有6.99%和17.33%的提高。在最优值的平均求解精度方面,本发明较GA和PSO算法分别有7.25%和16.79%的提高。综上可以得出本发明的DBA算法具有有效性。
由于Solomon数据分为C、R、RC为代表的测试问题且求解难度依次递增,本发明与GA和PSO算法对比求解结果可以发现当难度增加时本发明的相对求解精度却是增高的。这说明本发明的DBA算法随着求解问题难度的增加,相对于GA和PSO算法有较强的适用性和寻优能力。
为了对3种算法的求解质量做进一步比较,图2、图3和图4分别描述了表1、表2和表3条件下3种算法分别对12个测试实例进行10次运算所得解的平均值随求解问题规模变化的曲线图,如图2、图3和图4所示。从图2、图3和图4的纵向可以看出,本发明的DBA求解所得平均值均优于GA和PSO算法所得平均值;从横向可以看出,本发明稳定性均优于GA和PSO算法稳定性,综上可以得出本发明具有较强的搜索能力和较高的稳定性。
本发明根据CVRP问题的特点以及BA算法的寻优机制,研究并设计求解CVRP问题的DBA算法;为了求解具有离散属性的CVRP问题,对BA算法中涉及的相关变量进行离散化编码;对离散化后的变量重新定义相关操作算子;为了增强算法的鲁棒性,引入了K-means聚类算法对配送点进行聚类分析;为了增强算法的局部搜索能力,引入局部交叉、变异操作实现对配送路线进行局部搜索。利用BA自适应的随机搜索性,探索潜在的最优空间,而局部交叉变异操作则能够对BA的搜索空间进行深入搜索,达到求解最优解的目的。为了验证本发明的有效性,与PSO和GA算法分别对Solomon算例的求解结果和运行时间进行对比。对比结果表明本发明的有效性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种基于离散蝙蝠算法的物流配送车辆路径优化方法,其特征在于,其步骤如下:
步骤一:根据现有的有能力约束的车辆路径问题,构建带有能力约束的物流配送车辆路径的模型,并设计解编码策略和速度编码策略;
步骤二:根据解编码策略和速度编码策略初始化蝙蝠算法:初始化蝙蝠的位置、脉冲频率和速度,作为初始化的客户点;
步骤三:利用K-means算法对步骤二中初始化的客户点进行聚类分析,将所有客户点按其所处位置进行分区;
步骤四:全局搜索:利用离散蝙蝠算法对分区之后的蝙蝠位置进行更新;
步骤五:搜索方式的选择:选择一个随机数,根据随机数与当前脉冲频率的大小选择进行局部搜索或全局搜索,并计算新的适应度值;
步骤六:适应度值更新:将步骤五得到的适应度值与当前最小适应度值进行比较,若步骤五得到的适应度值小于当前最小适应度值,并且当前声音响度大于运用rand函数产生在(0,1)之间均匀分布的随机数r2,则利用步骤五得到的适应度值更新最小适应度值,并记录各个蝙蝠的位置,得到全局最优解,否则不更新;
步骤七:脉冲发射频率和声音响度更新:脉冲发射频率和声音响度的更新是在下一次迭代中判断是全局搜索还是局部搜索及适应度值是否更新;
步骤八:如果满足结束条件,输出全局最优解;否则返回步骤五;
所述步骤一中带有能力约束的物流配送车辆路径的模型为:
决策变量定义为:
其中,表示所有车辆行驶的总距离;Z表示总成本,K为所需车辆的总数;N为用户总量;a为单位车辆的固定费用;b为单位距离的油耗成本;dij为客户点i到客户点j之间的距离;qi为客户点i的货物重量;Q表示车辆的最大载重量;S为客户点的编号集合,且S的值为{1,2,…,N};xijk表示车辆k是否经过客户点i到达点客户j,yik表示保证每个客户都有一辆车为其提供服务,i、j等于0时表示配送中心,k等于0时表示初始车辆数为0;
所述初始化蝙蝠算法的方法为:
(1)初始化蝙蝠位置:将每个蝙蝠个体的初始位置即所在客户点编号置为[1,N]之间的随机数;
(2)初始化脉冲频率:将每个蝙蝠个体的初始脉冲频率置为零;
(3)初始化速度:将每个蝙蝠个体的初始速度置为[1-N,N-1]之间的随机数;
所述步骤五中运用rand函数产生在(0,1)之间均匀分布的随机数r1,若r1小于当前脉冲频率,则按步骤四进行全局搜索,并计算新的适应度值;否则在当前解附近进行局部搜索;xnew=x*+εμ;并以一定的概率来判断是否进行两元素优化操作,计算新的适应度值;其中,xnew表示随机扰动得到的新解;x*表示当前最优解;ε表示randn函数生成的随机向量;μ表示常量;所述概率利用随机函数确定,两元素优化操作是在最优解路线随机选择不相邻的两个节点,将两个节点之间的路径翻转获得新路径;
所述步骤五中适应度值的求取方法为:
步骤1:根据每个待配送点所需配送的货物重量,并结合车辆的限载重量Q,把满足限载要求的配送点放入车辆运行路线中;如果该配送点的货物重量超出了车辆的限载重量Q,则再申请一辆车辆,并将当前所需车辆总数加1;
步骤2:计算油耗成本与车辆的租赁费用之和,即总成本。
2.根据权利要求1所述的基于离散蝙蝠算法的物流配送车辆路径优化方法,其特征在于,所述步骤一中编码策略解编码策略和速度编码策略的设计方法为:求解问题的规模为N,将客户点编号为从1到N的不同整数;
(1)解编码策略:解的编码采用遍历配送点序列的方式,编码长度为需要遍历的配送点个数N,解中每一个分量对应一个客户点编号,因而得到解X的编码形式为:
X=(m1,m2,…,mN),
其中,N表示编码长度,mi表示第i个要遍历客户点的编号,mi∈[1,N]且任意mi≠mj;
(2)速度编码策略:速度的编码采用客户点编号增量序列的方式,速度编码中每一个客户点编号对应一个客户点编号增量,且:
V=(v1,v2,…,vN)
其中,V表示速度,vi表示第i个要遍历配送点的速度,vi∈[-(N-1),N-1]。
3.根据权利要求1所述的基于离散蝙蝠算法的物流配送车辆路径优化方法,其特征在于,所述步骤三中K-means算法的步骤为:
步骤1:在客户点中随机选择m个点作为每个聚类的中心点,且m∈S;
步骤2:随机选择一个待配送客户点s,且s∈S;
步骤3:比较待配送客户点s分别到m个点的距离,把待配送客户点s放入与其距离最近点所属区域中;
步骤4:选择下一个待配送客户点,循环步骤3,直到所有的待配送客户点都归属某个分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910758083.3A CN110472792B (zh) | 2019-08-16 | 2019-08-16 | 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910758083.3A CN110472792B (zh) | 2019-08-16 | 2019-08-16 | 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110472792A CN110472792A (zh) | 2019-11-19 |
CN110472792B true CN110472792B (zh) | 2020-07-31 |
Family
ID=68511945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910758083.3A Active CN110472792B (zh) | 2019-08-16 | 2019-08-16 | 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110472792B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126688B (zh) * | 2019-12-19 | 2023-05-26 | 北京顺丰同城科技有限公司 | 配送路线确定方法、装置、电子设备及可读存储介质 |
CN111080031A (zh) * | 2019-12-27 | 2020-04-28 | 圆通速递有限公司 | 一种基于改进型蜻蜓算法的车辆路径优化方法和*** |
CN112188825B (zh) * | 2020-10-12 | 2021-09-24 | 合肥安迅精密技术有限公司 | 一种基于蝙蝠算法的多头贴片机贴装效率优化方法及*** |
CN112330001A (zh) * | 2020-10-27 | 2021-02-05 | 河南大学 | 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 |
CN112785085B (zh) * | 2021-02-08 | 2022-11-29 | 日日顺供应链科技股份有限公司 | 一种配送路径优化方法及装置 |
CN114611830B (zh) * | 2022-03-28 | 2024-05-28 | 重庆邮电大学 | 一种基于多维度分区的医药配送车辆路径规划方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105976298A (zh) * | 2016-06-02 | 2016-09-28 | 广东工业大学 | 一种基于离散蝙蝠算法的物流运输调度方法 |
CN107886157A (zh) * | 2017-10-30 | 2018-04-06 | 中国地质大学(武汉) | 一种新型蝙蝠优化算法*** |
CN108121999A (zh) * | 2017-12-10 | 2018-06-05 | 北京工业大学 | 基于混合蝙蝠算法的支持向量机参数选择方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101410209B1 (ko) * | 2011-12-19 | 2014-06-23 | 주식회사 한국무역정보통신 | 화주중심의 물류거점 최적화시스템 |
-
2019
- 2019-08-16 CN CN201910758083.3A patent/CN110472792B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105976298A (zh) * | 2016-06-02 | 2016-09-28 | 广东工业大学 | 一种基于离散蝙蝠算法的物流运输调度方法 |
CN107886157A (zh) * | 2017-10-30 | 2018-04-06 | 中国地质大学(武汉) | 一种新型蝙蝠优化算法*** |
CN108121999A (zh) * | 2017-12-10 | 2018-06-05 | 北京工业大学 | 基于混合蝙蝠算法的支持向量机参数选择方法 |
Non-Patent Citations (3)
Title |
---|
基于改进蝙蝠算法的带模糊需求的车辆路径问题;朱颢;《计算机测量与控制》;20171231;第276-280页 * |
李丽丽.蝙蝠算法及其在CVRPTW-SDP问题中的应用.《万方学位论文数据库》.2018, * |
蝙蝠算法及其在CVRPTW-SDP问题中的应用;李丽丽;《万方学位论文数据库》;20180514;第9-22页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110472792A (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110472792B (zh) | 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 | |
Zhou et al. | Parameter adaptation-based ant colony optimization with dynamic hybrid mechanism | |
US7840319B2 (en) | Core area territory planning for optimizing driver familiarity and route flexibility | |
CN111191813A (zh) | 基于货物载重与软时间窗限制的车辆配送路径优化方法 | |
Hyun et al. | A genetic algorithm for multiple objective sequencing problems in mixed model assembly lines | |
CN103049805A (zh) | 基于改进粒子群优化的带时间窗约束的车辆路径优化方法 | |
CN114237222B (zh) | 一种基于强化学习的取送货车辆路径规划方法 | |
CN112183812B (zh) | 一种计及短时低成本的成品卷烟物流车辆调度方法 | |
Geetha et al. | A hybrid particle swarm optimization with genetic operators for vehicle routing problem | |
CN112330001A (zh) | 一种基于离散蝙蝠算法的物流配送车辆路径优化方法 | |
CN116187896B (zh) | 绿色车辆路径问题求解方法、装置、计算机设备以及介质 | |
CN110705741B (zh) | 一种基于改进蚁群算法的多配送中心车辆路径优化方法 | |
CN112269382A (zh) | 一种机器人多目标路径规划方法 | |
CN109359771A (zh) | 一种基于大数据的干线运输车货匹配算法 | |
CN106971245A (zh) | 一种基于改进蚁群算法的路径确定方法及*** | |
CN111090935B (zh) | 一种公共自行车预约调度与路径规划方法 | |
Su et al. | A responsive ant colony optimization for large-scale dynamic vehicle routing problems via pheromone diversity enhancement | |
CN116088576A (zh) | 一种基于改进鲸鱼算法的无人机三维路径规划方法 | |
CN109359740B (zh) | 基于多生境遗传算法的机动路径优选方法及存储介质 | |
Lagos et al. | Multi-armed bandit-based hyper-heuristics for combinatorial optimization problems | |
CN112016750A (zh) | 一种改进的解决带约束车辆路径问题的方法 | |
CN117291323A (zh) | 基于量子算法的车辆路径优化方法、装置、设备及介质 | |
CN116033016A (zh) | 一种车载网络中利用路边停放车辆的协作缓存方法 | |
CN116579513A (zh) | 基于改进鲸鱼优化算法的物资配送路径优化方法和*** | |
Qian et al. | A hyper heuristic algorithm for low carbon location routing problem |
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 |