CN116341781B - 基于大规模邻域搜索算法的路径规划方法及存储介质 - Google Patents
基于大规模邻域搜索算法的路径规划方法及存储介质 Download PDFInfo
- Publication number
- CN116341781B CN116341781B CN202310319243.0A CN202310319243A CN116341781B CN 116341781 B CN116341781 B CN 116341781B CN 202310319243 A CN202310319243 A CN 202310319243A CN 116341781 B CN116341781 B CN 116341781B
- Authority
- CN
- China
- Prior art keywords
- longitude
- latitude
- path
- path data
- distribution
- 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
- 238000013439 planning Methods 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000010845 search algorithm Methods 0.000 title claims abstract description 35
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000012384 transportation and delivery Methods 0.000 claims abstract description 275
- 238000009826 distribution Methods 0.000 claims abstract description 206
- 238000012545 processing Methods 0.000 claims abstract description 28
- 230000001066 destructive effect Effects 0.000 claims abstract description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 47
- 230000008439 repair process Effects 0.000 claims description 45
- 238000010276 construction Methods 0.000 claims description 23
- 230000000593 degrading effect Effects 0.000 claims description 11
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000012966 insertion method Methods 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 230000006378 damage Effects 0.000 description 10
- 238000006731 degradation reaction Methods 0.000 description 10
- 230000015556 catabolic process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000001816 cooling Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000002922 simulated annealing Methods 0.000 description 3
- 238000000137 annealing Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 101100182248 Caenorhabditis elegans lat-2 gene Proteins 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- 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
- 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
-
- 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Development Economics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Entrepreneurship & Innovation (AREA)
- Evolutionary Computation (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Bioinformatics & Computational Biology (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及基于大规模邻域搜索算法的路径规划方法及存储介质,该方法包括:获取多个待配送目标所对应的配送请求信息,配送请求信息中携带待配送目标所对应的配送位置信息;将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数;基于已构建的路径规划模型和配送运输参数,规划生成与多个待配送目标对应的配送路径数据,路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;在配送路径数据中,确定目标配送路径,并基于目标配送路径对多个待配送目标进行配送。通过本申请,解决了相关技术中执行车辆路径规划的方案的处理效率低的问题。
Description
技术领域
本申请涉及计算机智能化应用技术领域,特别是基于大规模邻域搜索算法的路径规划方法及存储介质。
背景技术
在配送领域中,车辆路径问题是指一定数量的用户有不同数量的货物需求,配送中心向客户提供所需的货物,在这个过程中,有一个车队需在一定的约束下组织行车路线,以满足客户的需求,同时达到设定的运输要求,例如:配送距离最短、配送成本最小、配送时间最短。
在相关技术中,车辆路径规划的实现会经过以下过程:在获取配送信息后,通过地图应用程序接口(Application Programming Interface,简称API)获取配送目标对应的输送起始位置的经纬度、两两经纬度之间的时间距离数据,并通过结合其他数据进行路径优化规划,得出对应配送方案;但在相关技术中,在实现车辆路径规划的过程中存在以下因素降低了路径规划的运作效率:一是,地图API请求问题,例如:车辆路径规模大时,请求获取经纬度数据的开销大,求解时间长,地图API提供的并发量配额无法满足用户请求服务的速度;二是,地图API在将地址转化为经纬度(地址编码)过程中,编码出错率高,例如:频繁地请求数据会出现地址对应的经纬度获取值为空值、获取的经纬度和实际经纬度相差甚远。
目前针对相关技术中车辆路径规划中因地图API请求运算开销大和地址编码易出错,造成执行车辆路径规划的方案的处理效率低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于大规模邻域搜索算法的路径规划方法及存储介质,以及装置和电子设备,以至少解决相关技术中执行车辆路径规划的方案的处理效率低的问题。
第一方面,本申请实施例提供了一种基于大规模邻域搜索算法的路径规划方法,包括:获取多个待配送目标所对应的配送请求信息,其中,所述配送请求信息中携带所述待配送目标所对应的配送位置信息;将所述配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个所述待配送目标所对应的配送运输参数,其中,所述配送运输参数用于表征任意两个所述配送位置信息之间对应的行驶参数;基于已构建的路径规划模型和所述配送运输参数,规划生成与多个所述待配送目标对应的配送路径数据,其中,所述路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;在所述配送路径数据中,确定目标配送路径,并基于所述目标配送路径对多个所述待配送目标进行配送。
第二方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的基于大规模邻域搜索算法的路径规划方法。
相比于相关技术,本申请实施例提供的基于大规模邻域搜索算法的路径规划方法及存储介质,以及装置和电子设备,通过获取多个待配送目标所对应的配送请求信息,其中,所述配送请求信息中携带所述待配送目标所对应的配送位置信息;将所述配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个所述待配送目标所对应的配送运输参数,其中,所述配送运输参数用于表征任意两个所述配送位置信息之间对应的行驶参数;基于已构建的路径规划模型和所述配送运输参数,规划生成与多个所述待配送目标对应的配送路径数据,其中,所述路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;在所述配送路径数据中,确定目标配送路径,并基于所述目标配送路径对多个所述待配送目标进行配送;通过预设地图获取按配送区域划分的待配送目标对应的配送运输参数,减少配送运输参数的请求量,进而减少地图API请求所需的时间,解决了相关技术中车辆路径规划中因地图API请求运算开销大和地址编码易出错,造成执行车辆路径规划的方案的处理效率低的问题,实现了减少请求配送运输参数的数据量和减少请求服务所需时间,降低地址编码出错率,提高车辆路径规划的效率、降低车辆路径规划的时间成本的有益效果。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的基于大规模邻域搜索算法的路径规划方法的终端的硬件结构框图;
图2是根据本申请实施例的基于大规模邻域搜索算法的路径规划方法的流程图;
图3是根据本申请优选实施例的路径规划方法的流程图;
图4为本申请优选实施例所进行的destroy操作的示意图;
图5为本申请实施例所进行的repair操作的示意图;
图6为本申请实施例基于移除点的destroy后操作的示意图;
图7为本申请实施例基于移除路径的destroy后操作的示意图;
图8是本申请优选实施例中进行初始解构造生成初始路径数据的方法流程示意图;
图9是根据本申请实施例的基于大规模邻域搜索算法的路径规划装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“多环节”是指大于或者等于两个的环节。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图1是本申请实施例的基于大规模邻域搜索算法的路径规划方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的基于大规模邻域搜索算法的路径规划方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端10的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例提供了一种运行于上述终端的基于大规模邻域搜索算法的路径规划方法,图2是根据本申请实施例的基于大规模邻域搜索算法的路径规划方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取多个待配送目标所对应的配送请求信息,其中,配送请求信息中携带待配送目标所对应的配送位置信息。
在本实施例中,在接收到对配送目标进行配送的订单信息,也就是配送请求信息后,开始实时本申请的车辆路径的规划方法。在本实施例中,对应的配送请求信息还包括预设的实现路径规划的标准化输入参数,包括:配送目标所对应的仓库信息(对应的配送起点,仓库点对应的经纬度)、配送车辆信息(例如:车辆类型、车辆的数目、车辆的运输能力、车辆的运输状况)、单路径对应的约束(例如:单程的配送时间限定、单路线最大订单量限制、单路线最长距离限制),同时,配送请求信息还设定了对路径规划时运行参数的限定(例如:算法运行时间限制、最大迭代次数限制、最大迭代不提升次数限制)。
在本实施例中,根据配送请求信息中的配送位置信息进行路径规划时,需要利用其他对应的信息,进而使得规划出的配送路径配送时间最短、行驶距离最短、配送成本低且配送效率高。
步骤S202,将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数,其中,配送运输参数用于表征任意两个配送位置信息之间对应的行驶参数。
在本实施例中,通过地图API对配送位置信息进行地址编码,也就是至少把表征配送目的地的地址信息转换为对应的经纬度;在本实施例中,预设地图包括但不限于现有中公众所使用的高德地图API、百度地图API。
在本实施例中,为了降低向地图API的请求量,节省查询时间及计算开销,在其中一些可选实施方式中,在获得配送输送参数的过程中,采用按配送区域对配送运输参数进行获取及后续的路径规划处理,降低计算行驶参数所需要的数据处理量的维度及总数据量,节省计算处理成本。具体地,当配送运输参数对应的行驶参数包括经纬度时,在获得对应的经纬度,然后通过对应的配送请求信息中的经纬度判断配送区域,然后按配送区域分单,例如:设定两个配送区域A和配送区域B,有配送订单1、2、3、4、5、6,根据配送订单的经纬度和配送区域信息(包括区域经纬度所构成的多边形),可知配送订单1、3、5在配送区域A,配送订单2、4、6在区域B,此时就存在两个区域订单,分别是配送区域A的订单(1、3、5)和配送区域B的订单(2、4、6),之后,再分区域依次生成配送区域内两两订单的行驶参数,对于配送区域A,生成配送订单1、3、5之间的两两经纬度所对应的行驶时间和行驶距离(对应请求3*2=6次),对配送区域B,生成配送订单2、4、6之间的两两经纬度所对应的行驶时间和行驶距离(请求3*2=6次),总共请求12次,而在未采用配送区域而进行行驶时间和行驶距离的计算时,生成1、2、3、4、5、6之间的两两经纬度所对应的行驶时间和行驶距离,则需要请求6*5=30次,明显的,采用按配送区域进行行驶参数的计算机处理,减少了计算量。
步骤S203,基于已构建的路径规划模型和配送运输参数,规划生成与多个待配送目标对应的配送路径数据,其中,路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的。
在本实施例中,在获得配送运输参数(例如:经纬度、任意两个经纬度之间对应的行驶时间、行驶距离)和配送请求信息中包含的标准化输入参数(对应的约束条件)后,利用启发式算法求解出对应的配送路径数据。在本实施例中,启发式算法采用自适应大规模邻域搜索算法ALNS,并且,在本实施例中,采用在自适应大规模邻域搜索算法的整体框架下,提出新的destroy子算法(destroy操作)和repair子算法(repair操作),并增加了destroy后处理(destroy后操作),以提高算法迭代过程中搜索邻域的多样性和迭代效率。
步骤S204,在配送路径数据中,确定目标配送路径,并基于目标配送路径对多个所述待配送目标进行配送。
在本实施例中,在通过ALNS规划生成对应的配送路径数据后,还可以对配送路径数据进行优化,进而确定满足预期的目标配送路径;在本实施例中,目标配送路径可以是配送路径数据,还可以是基于配送路径数据进行优化(路径规划重排)后的配送路径。
在本实施例中,可以通过重排序每条配送路径数据中每个待配送目标的配送顺序,获得最短配送时间的配送路径。需要说明的是,本实施例中考虑配送时间最短,并非是指配送车辆从仓库出发、再返回仓库的总时间最短。
通过上述步骤S201至步骤S204,采用获取多个待配送目标所对应的配送请求信息,其中,配送请求信息中携带待配送目标所对应的配送位置信息;将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数,其中,配送运输参数用于表征任意两个配送位置信息之间对应的行驶参数;基于已构建的路径规划模型和配送运输参数,规划生成与多个待配送目标对应的配送路径数据,其中,路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;在配送路径数据中,确定目标配送路径,并基于目标配送路径对多个待配送目标进行配送,通过预设地图获取按配送区域划分的待配送目标对应的配送运输参数,减少配送运输参数的请求量,进而减少地图API请求所需的时间,解决了相关技术中车辆路径规划中因地图API请求运算开销大和地址编码易出错,造成执行车辆路径规划的方案的处理效率低的问题,实现了减少请求配送运输参数的数据量和减少请求服务所需时间,降低地址编码出错率,提高车辆路径规划的效率、降低车辆路径规划的时间成本的有益效果。
需要说明的是,本申请实施例中,当实现路径规划,得到目标配送路径后,通过图形化界面展示配送方案,并下发给对应的配送人员。在本实施例中,采用嵌入到HTML页面中的脚本语言(JavaScript,简称JS)实现网页版配送管理系统,通过java实现应用程序app端配送管理系统。在本实施例中,采用高德地图的地图JS API中的路径规划服务展示配送方案中的路线的实际行驶轨迹,以供管理者和配送员查看。同时,在配送过程中,根据配送运行情况,对配送方案进行实时调整。
图3是根据本申请优选实施例的路径规划方法的流程图,图4为本申请优选实施例所进行的destroy操作的示意图,图5为本申请实施例所进行的repair操作的示意图,参考图3至图5,在其中一些可选实施方式中,对应的路径规划通过如下步骤实现:
步骤S301,初始化毁灭和重建方法的权重和累计得分、模拟退火阈值接受准则的初始温度和冷却系数、完成一个周期所需的迭代次数和自适应参数k,之后,执行步骤S302。
在本实施例中,初始化具体内容为:
将所有的毁灭和重建方法的权重都设为1,累计得分都设为0。
对模拟退火阈值接受准则,冷却系数设为α(0.9≤α<1),初始温度的计算公式如下:
其中,initTemp表示初始温度,initSolutionObjective表示初始化目标。
设一个周期所需的迭代次数为t次,设自适应参数k初始值为k0。
需要说明的是,本申请实施例中所谓的退火、冷却及初始温度是大规模邻域搜索算法所涉及的相关概念,并非常规所理解的材料的退火、冷却及设定初始温度。
步骤S302,通过基于聚类的随机插入方法生成初始解,并将当前解设为全局最优解,之后,执行步骤S303。
在本实施例中,基于聚类的随机插入方法为对应的构建算法,并基于初始化的参数和已获得的配送运输参数,进行初始解的构建,从而获得初始路径数据。
在本实施例中,对应的构造算法可以是基于K-means或者DBSCAN聚类方法的随机插入方法;在本实施例中,通过对配送运输参数中对应第二经纬度和配送目标所对应的目标信息(例如:配送目标所对应的订单编号)进行聚类,以生成多个簇;对每个聚类生成的簇,判断其配送目标所对应的体积重量总和是否超出配送车辆容积和载重,若超出,剔除超出车辆容积和载重的部分作为一个新簇,将剩余部分(包括对应的第二经纬度和对应的订单编号)作为一条路径数据,若不超出,不对簇进行处理;最后,随机选取某个簇,持续插入距离该簇最近的簇,直到不满足车辆的容积载重限制时,生成新路径数据,并选取下一个新的簇与剩余簇进行最近插入操作;当所有簇都插入路线时,初始解构造完毕。
需要说明的是,本申请实施例中所涉及的簇是经纬度所指代的点的簇,也就是本申请实施例所涉及的点均是用于表征经纬度的,同时,本申请实施例所涉及的路径是多个表征经纬度的点的连线。
步骤S303,判断是否满足算法迭代终止条件,若满足,则执行步骤S312,否则执行步骤S304。
在本实施例中,迭代的终止条件有算法运行时间、算法迭代次数和路径规划出的解没得到提升的迭代次数,其中,当任何一项超出限制则终止算法迭代。
步骤S304,对当前解对应的每一条路径数据,用最近邻算法重新排序一遍,并记录重排序后的当前解到重排序解集合,之后,执行步骤S305。
在本实施例中,通过记录最近邻算法重排路线后的当前解到重排序解集合中,进而可以得到相对较优的路径排序,并快速修正后续解中拥有相同配送路径的排序方式,更快逼近满意解。
步骤S305,通过轮盘赌算法从预设的毁灭重构子算法所对应的多种destroy操作和多种repair操作中选择一个策略组合。
在本实施例中,根据轮盘赌算法依次选择destroy操作和repair操作,并通过计算对应的操作被选取的概率,来确定出对应策略的组合;在本实施例中,按如下公式计算对应操作被选取的概率:其中,pi为第i种destroy操作或第i种repair操作被选取的概率,wi为第i种destroy操作或第i种repair操作的权重,k为destroy操作或repair操作的总数量。
在本实施例中,destroy操作包括:随机移除第二经纬度(参考图4的4-a中的a1与a2所示的圆点)、随机移除由多个第二经纬度组成的初始路径(参考图4的4-b中的b1所示的圆点)、移除聚类值小于预设聚类值阈值的第二经纬度(参考图4的4-c中的c1与c2所示的圆点)、移除对应的配送运输参数不满足预设参数值的初始路径(参考图4的4-d中的d1所示的圆点)、移除对应的输送量小于预设输送量阈值的初始路径所对应的所有第二经纬度(参考图4的4-e中的e1所示的圆点)、在对应的输送量大于预设输送量阈值的初始路径所对应的所有第二经纬度中,移除聚类值小于预设聚类值阈值的第二经纬度(参考图4的4-f中的f1所示的圆点)、移除对应的输送量的差值大于预设输送量阈值的相邻两条初始路径。
在本实施例中,repair操作包括:将移除的第二经纬度插入邻近的重构路径数据(参考图5的5-a,将路径s1中的经纬度点a1插入路径s2,并将对应的经纬度点记作a2)、将多个移除的第二经纬度聚类成经纬度团簇,并将经纬度团簇插入邻近的重构路径数据(参考图5的5-b,经纬度点b1和经纬度点b2分别聚类成经纬度团簇T1和经纬度团簇T2,然后,经纬度团簇T1和经纬度团簇T2分别插入路径s3和路径s4)、将多个移除的第二经纬度和邻近的重构路径数据进行合并,并按输送量将合并得到的路径数据进行拆分(参考图5的5-c,经纬度点c1和l邻近路径s5合并为经纬度团簇T3,然后,经纬度团簇T3对应的经纬度点的数目超出预设数目阈值,则将经纬度团簇T3拆分于路径s6和路径s7对应的团簇,并生成对应的路径)、将移除的第二经纬度插入指定路径数据中,指定路径数据为相对移除的第二经纬度距离最近且对应的输送量小于预设输送量阈值的重构路径数据(参考图5的5-d,对应经纬度点d1,原本属于路径s9,路径s9离经纬度点d1最近,路径s8离经纬度点d1的较近,路径s10离经纬度点d1最远,但因为路径s9输送量大,路径s8输送量小,路径s9超出输送量阈值,而将离经纬度点d1分配给路径s8,并将插入路径s8的经纬度点记为经纬度点d2)。
步骤S306,通过k值计算毁灭方法应选中的重建点数,之后,执行步骤S307。
在本实施例中,应用步骤S305中的毁灭和重建策略组合对当前解进行毁灭重建,得出新解。
在本实施例中,通过自适应参数k值设定移除的最大点数maxDestroyNum和最小点数minDestroyNum,计算公式如下:
其中,totalNum是总的配送请求数量,minNum是最小移除数;实际的移除点数是从[minDestroyNum,maxDestroyNum]区间内取的一个随机整数。
在本实施例中,当前解和新解均为对应的配送路径数据,也就是至少包括对应的配送位置信息对应的第二经纬度的配送路径。
步骤S307,根据阈值接受准则判断是否接受新解,若接受新解,则更新当前解,否则,执行步骤S308。
在本实施例中,若新解优于全局最优解,更新全局最优解;在本实施例中,通过模拟退火阈值接受准则判断是否接受新解,其中,比当前解目标值更小的新解一定接受,对比当前解目标值大的解以一定的概率接受,其接受概率为:
其中,currentObjective是当前解的目标值,newObjective是新解的目标值,temp是当前温度。
在本实施例中,对应解的目标值是指该解所对应的路径的目标值,且目标值包括多种子因子,例如:配送行驶距离、配送行驶时间、用户时间窗满足率、配送车辆约束(车辆容积、车辆载重)违背惩罚,并且,通过将各种子因子进行加权得到一个值,则确定出对应的目标值。
步骤S308,比较当前解和重排序解集合中拥有相同待配送目标的配送路径的配送时间,若重排序解集合中的配送路径对应的配送时间较短,替换当前解中的具有相同待配送目标的配送路径,之后,执行步骤S309。
步骤S309,根据迭代评分机制对当前迭代的毁灭和重建方法进行评分,并累加到当前毁灭和重建方法的累积评分中,之后,执行步骤S310。
步骤S310,判断是否已经迭代了一定的周期,若是,根据权重更新机制调整各毁灭和重建操作的权重,并将各毁灭和重建方法的累计得分清零,否则执行步骤S311。
步骤S311,根据自适应参数调整规则更新k值,之后,执行步骤S303。
步骤S312,结束迭代,输出全局最优解。
步骤S313,对全局最优解的每一条路线,通过多种路径重排序方法进行重排序,再输出重排序后的全局最优解。
在其中一些实施例中,将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数,通过如下步骤实现:
步骤21,从配送位置信息中获取配送地址信息,并将配送地址信息输入预设地图中,得到与配送地址信息对应的第一经纬度。
在本实施例中,通过预设地图将配送地址信息进行位置编码,进而生成第一经纬度;在本实施例中,在将配送地址信息输入到预设地图中进行处理之后,会对处理的结果进行判断,也就是各个配送地址信息对应的经纬度是否为空值,若为空值,则记录配送地址信息,在所有配送位置信息都请求过一次地图API的位置编码处理服务后,重新请求无法获取经纬度的各个配送地址信息,如果重复次数达到预设阈值(例如:5次)都无法获得该配送地址信息对应的经纬度,则采用人工查询的方式在地图API上查询该配送地址的经纬度,或是更换地图API请求相应服务;需要注意的是,如果更换地图API请求经纬度时,需考虑到原有的地图API和新的地图API所采用的坐标系是否有区别,若有区别,则需要将获取的经纬度转换成另一个坐标系的经纬度,例如:高德地图采用火星坐标系GCJ-02,百度地图采用百度坐标系BD-09,它们显示的经纬度都需要通过坐标系转换才能得到另一个坐标系下的对应经纬度。
对获取的第一经纬度,判断其是否处于所有配送区域组合成的总区域的边界范围内,若第一经纬度不在总区域内,则重新请求地图API的位置编码服务,如果重复次数达到预设阈值(例如:5次)都无法获得正确区域范围内的配送位置信息对应的经纬度,通过人工查询或更换地图API的方式请求相应服务。
步骤22,在第一经纬度中,检测处于对应的所述配送区域内的第二经纬度。
在本实施例中,配送区域是基于历史配送数据所划分的,包括两种划分方法:一是规划人员基于经验划分,二是是通过大数据分析划分。
在本实施例中,在划分出配送区域后,在配送区域边缘记录多个关键经纬度点,以此生成一个和地图上实际区域边缘近似的多边形,并通过判断第一经纬度处于哪个对应的多边形,进而确定所处的配送区域,从而从第一经纬度中检测处于对应的所述配送区域内的第二经纬度。
在其中一些可选实施方式中,结合大数据技术分析历史配送对应的数据信息,划分配送区域包括如下步骤:
步骤1、通过大数据分析得出一段时间内(例如:一个月)的地图上的历史订单(对应历史配送请求)分布信息,其中,历史订单信息包括地图上每个可能配送位置信息对应的配送目的地一天内的配送目标出现概率、历史订单所对应的配送目标的平均重量、历史订单所对应的配送目标的平均体积。
步骤2、估计每个配送目的地一天内的配送目标平均重量和平均体积。
按如下计算公式进行计算:配送目的地一天的配送目标平均重量=配送目标出现概率*历史配送目标的平均重量、配送目的地一天的配送目标平均体积=配送目标出现概率*历史配送目标的平均体积。
步骤3,通过预设数据库中的历史订单对应的两两经纬度之间的行驶时间、行驶距离找出距离各配送目的地的最近点(一个点对应一个经纬度),将这两点合并生成团。
在本实施例中,如果点1离点2最近,而点2离点3最近,点3离点2最近,则将点1、2、3合并作为一个团;此外,如果在数据库中没有点1与点4之间的两两经纬度之间的行驶时间、行驶距离的数据,则表明该两点之前从未被分配到同一个配送区域内,即两点的距离相对较远,在考虑点1的最近点时可以不考虑点4。
在本实施例中,合并成的团是多个经纬点所组成的团簇。
步骤4,结合车辆信息和团与团之间的距离信息,依次合并最近团,生成多个配送区域。
在其中一些可选实施例中,在第一经纬度中,检测处于对应的配送区域内的第二经纬度,通过如下步骤实现:
步骤221,确定配送区域的区域边缘所对应的关键经纬度,并基于关键经纬度,在预设地图中生成配送区域多边形,其中,配送区域是基于历史配送所划分的。
在本实施例中,在划分出配送区域后,在配送区域边缘记录多个关键经纬度点,以此生成一个和地图上实际区域边缘近似的多边形。
步骤222,判断第一经纬度在预设地图中的坐标数据是否处于配送区域多边形中。
步骤223,将处于配送区域多边形中的第一经纬度作为第二经纬度。
在本实施例中,通过判断第一经纬度处于哪个对应的多边形,进而确定所处的配送区域,从而从第一经纬度中检测处于对应的配送区域内的第二经纬度。
步骤23,利用预设地图,对每个配送区域所对应的第二经纬度进行处理,生成与每个配送区域对应的配送运输参数,其中,配送运输参数包括以下参数:第二经纬度、任意两个第二经纬度之间的行驶距离、任意两个第二经纬度之间的行驶时间。
在本实施例中,利用预设地图,并基于对应的第二经纬度进行两两第二经纬度之间的行驶距离、行驶时间的计算。
在其中一些可选实施方式中,当利用预设地图处理第二经纬度获得配送运输参数出现异常或需求规划路径的响应时间较短时,则可以采用两两第二经纬度之间的距离计算两个配送位置信息之间对应的行驶距离,并结合该配送区域的车辆行驶速度限制来计算两个配送位置信息之间的行驶时间,例如:设定配送位置信息A对应的配送目的地的经纬度坐标为(lng1,lat1),设定配送位置信息B对应的配送目的地的经纬度坐标为(lng2,lat2),将两个坐标的经纬度的单位转换成弧度,按如下公式计算对应的距离:
其中,R为地球半径,且距离和地球半径采用现有中常用的量纲,例如:M、或者KM;对应的行驶时间则按行驶距离除以预设车速得到。
通过上述步骤21至步骤23中的从配送位置信息中获取配送地址信息,并将配送地址信息输入预设地图中,得到与配送地址信息对应的第一经纬度;在第一经纬度中,检测处于对应的配送区域内的第二经纬度;利用预设地图,对每个配送区域所对应的第二经纬度进行处理,生成与每个配送区域对应的配送运输参数,其中,配送运输参数包括以下参数:第二经纬度、任意两个第二经纬度之间的行驶距离、任意两个第二经纬度之间的行驶时间,实现得到各个配送区域内的两个待配送目标对应的第二经纬度之间的配送输送参数的计算,并通过按配送区域进行配送运输参数的计算,降低地图API的请求量,节省查询时间及计算开销。
在其中一些实施例中,基于已构建的路径规划模型和所述配送运输参数,规划生成与多个所述待配送目标对应的配送路径数据,通过如下步骤实现:
步骤31,基于预设的构造算法,对配送运输参数所对应的多种参数进行处理,生成初始路径数据,其中,初始路径数据包括多个待配送目标所对应的第二经纬度和待配送目标所对应的目标信息。
在本实施例中,预设的构造算法是基于K-means或者DBSCAN聚类方法的随机插入方法;在其中一些可选实施方式中,通过对配送运输参数中对应第二经纬度和配送目标所对应的目标信息(例如:配送目标所对应的订单编号)进行聚类,以生成多个簇;对每个聚类生成的簇,判断其配送目标所对应的体积重量总和是否超出配送车辆容积和载重,若超出,剔除超出车辆容积和载重的部分作为一个新簇,将剩余部分(包括对应的第二经纬度和对应的订单编号)作为一条路径数据,若不超出,不对簇进行处理;最后,随机选取某个簇,持续插入距离该簇最近的簇,直到不满足车辆的容积载重限制时,生成新路径数据,并选取下一个新的簇与剩余簇进行最近插入操作;当所有簇都插入路线时,初始解构造完毕。
步骤32,利用轮盘赌算法,从预设的毁灭重构子算法所对应的多种毁灭destroy操作和多种重构repair操作中,选取目标destroy操作和目标repair操作,其中,destroy操作表征对初始路径数据中的第二经纬度或初始路径进行移除,repair操作表征向初始路径数据中插入第二经纬度。
在其中一些可选实施方式中,利用轮盘赌算法,从预设的毁灭重构子算法所对应的多种destroy操作和多种repair操作中,选取目标destroy操作和目标repair操作,采用如下方式实现:
步骤321、按如下公式分别计算destroy操作和repair操作所对应的概率;
pi为第i种destroy操作或repair操作所对应的概率,wi为第i种destroy操作或repair操作的对应的设定权重,k为destroy操作或repair操作所对应的总数量;
步骤322、选取概率最大的destroy操作和概率最大的repair操作,得到目标destroy操作和目标repair操作。
在本实施例中,选取的目标destroy操作和目标repair操作是基于对应的操作被选中的概率最大的而得到,但在其他可选实施方式中,还可以根据其他需求进行选定,例如:计算出对应的操作的概率为0.6,但对应设定的选择区间包括[0.5-0.75],那则选择该区间所对应的操作。
步骤33,在对初始路径数据进行destroy操作所得到的重构路径数据,进行repair操作,生成候选路径数据。
在本实施例中,所进行的destroy操作包括:随机移除第二经纬度(参考图4的4-a中的a1与a2所示的圆点)、随机移除由多个第二经纬度组成的初始路径(参考图4的4-b中的b1所示的圆点)、移除聚类值小于预设聚类值阈值的第二经纬度(参考图4的4-c中的c1与c2所示的圆点)、移除对应的配送运输参数不满足预设参数值的初始路径(参考图4的4-d中的d1所示的圆点)、移除对应的输送量小于预设输送量阈值的初始路径所对应的所有第二经纬度(参考图4的4-e中的e1所示的圆点)、在对应的输送量大于预设输送量阈值的初始路径所对应的所有第二经纬度中,移除聚类值小于预设聚类值阈值的第二经纬度(参考图4的4-f中的f1所示的圆点)、移除对应的输送量的差值大于预设输送量阈值的相邻两条初始路径。
在本实施例中,所进行的repair操作包括:将移除的第二经纬度插入邻近的重构路径数据(参考图5的5-a,将路径s1中的经纬度点a1插入路径s2,并将对应的经纬度点记作a2)、将多个移除的第二经纬度聚类成经纬度团簇,并将经纬度团簇插入邻近的重构路径数据(参考图5的5-b,经纬度点b1和经纬度点b2分别聚类成经纬度团簇T1和经纬度团簇T2,然后,经纬度团簇T1和经纬度团簇T2分别插入路径s3和路径s4)、将多个移除的第二经纬度和邻近的重构路径数据进行合并,并按输送量将合并得到的路径数据进行拆分(参考图5的5-c,经纬度点c1和l邻近路径s5合并为经纬度团簇T3,然后,经纬度团簇T3对应的经纬度点的数目超出预设数目阈值,则将经纬度团簇T3拆分于路径s6和路径s7对应的团簇,并生成对应的路径)、将移除的第二经纬度插入指定路径数据中,指定路径数据为相对移除的第二经纬度距离最近且对应的输送量小于预设输送量阈值的重构路径数据(参考图5的5-d,对应经纬度点d1,原本属于路径s9,路径s9离经纬度点d1最近,路径s8离经纬度点d1的较近,路径s10离经纬度点d1最远,但因为路径s9输送量大,路径s8输送量小,路径s9超出输送量阈值,而将离经纬度点d1分配给路径s8,并将插入路径s8的经纬度点记为经纬度点d2)。
在其中一些可选实施方式中,在对初始路径数据进行destroy操作后,还实施如下步骤:对完成destroy操作的初始路径数据进行destroy后操作,其中,destroy后操作包括以下其中一种移除操作:移除至少一个选定的第二经纬度、移除以至少一个选定的第二经纬度为中心的经纬度中心团簇和/或邻近经纬度团簇、移除与至少一个选定的第二经纬度的距离在预设距离半径范围内的第二经纬度、移除选定的初始路径上的多个第二经纬度、移除至少一条选定的初始路径、移除一条选定的初始路径及与该选定的初始路径邻近的多条初始路径。
在本实施例中,destroy后操作包括基于移除点的destroy后操作和基于移除路径的destroy后操作,图6为本申请实施例基于移除点的destroy后操作的示意图,图7为本申请实施例基于移除路径的destroy后操作的示意图,参考图6至图7,以下对本申请所涉及的destroy后操作进行说明如下:
参考图6,本申请实施例基于移除点的destroy后操作包括:
方式1:移除一个选定的第二经纬度,具体地,参考图6的6-a所示,移除经纬度点a1。
方式2:移除选定的多个第二经纬度,具体地,参考图6的6-b所示,移除经纬度点b1和经纬度点b2。
方式3:移除以至少一个选定的第二经纬度为中心的经纬度中心团簇和/或邻近经纬度团簇,具体地,参考图6的6-c所示,移除经纬度中心团簇T2和邻近经纬度团簇T1。
方式4:移除与至少一个选定的第二经纬度的距离在预设距离半径范围内的第二经纬度,具体地,参考图6的6-d所示,删除以经纬度d1为中心、半径为R范围内的所有经纬度点d2。
参考图7,本申请实施例基于移除路径的destroy后操作包括:
方式1:移除一条选定的初始路径,具体地,参考图7的7-a所示,移除路径s1。
方式2:移除多条选定的初始路径,具体地,参考图7的7-b所示,移除路径s2和路径s3。
方式3:移除选定的初始路径上的多个第二经纬度,具体地,参考图7的7-c所示,移除路径s4上的经纬度点c1、经纬度点c2及经纬度点c3。
方式4:移除一条选定的初始路径及与该选定的初始路径邻近的多条初始路径,具体地,参考图7的7-d所示,移除一条选定的路径s5及与该选定的路径s5邻近的路径s6。
步骤34,从候选路径数据中,确定出配送路径数据。
在本实施例中,从候选路径数据中选取的配送路径数据可以是候选路径数据本身,还可以是对候选路径数据进行进一步筛选,例如:对应的路径的配送行驶时间最短、配送行驶距离最短,又或是配送成本最低,从而将更加优化的路径数据作为配送路径数据。
在其中一些可选实施方式中,从候选路径数据中,确定出所述配送路径数据,通过如下步骤实现:
步骤341、获取候选路径数据所对应的相邻两个第二经纬度之间的行驶时间,得到第一行驶时间。
步骤342,判断第一行驶时间是否小于预设阈值。
步骤343,在判断到第一行驶时间小于预设阈值的情况下,将小于预设阈值的第一行驶时间所对应的候选路径数据作为配送路径数据。
在本实施例中,在生成对应的配送路径数据之前,已获得进行初步排序的路径,也就是候选路径,而候选路径所包含的多个第二经纬度的排序并非满足设定需求的排序,会存在相邻两个第二经纬度之间的行驶时间(设定为第一行驶时间)不满足设定的行驶时间,因而对应排序的候选路径所对应的行驶总时间及行驶总距离也不满足规划要求;在本实施例中,通过对已排出的候选路径上的第二经纬度进行行驶时间的计算,从而选出满足相邻两个第二经纬度之间的行驶时间是满足设定需求(小于预设阈值),并通过选出对应的候选路径数据的所对应的所有第一行驶时间均满足设定要求,使得对应的候选路径也就满足规划需求。
在本实施例中,预设阈值可以是设定的时间,也可以按时间由短到长的顺序,从候选路径数据对应的所有第一行驶时间中选取某个时间长度的第一行驶时间。
通过上述步骤31至步骤34中的基于预设的构造算法,对配送运输参数所对应的多种参数进行处理,生成初始路径数据,其中,初始路径数据包括多个待配送目标所对应的第二经纬度和待配送目标所对应的目标信息;利用轮盘赌算法,从预设的毁灭重构子算法所对应的多种毁灭destroy操作和多种重构repair操作中,选取目标destroy操作和目标repair操作,其中,destroy操作表征对初始路径数据中的第二经纬度或初始路径进行移除,repair操作表征向初始路径数据中插入第二经纬度;在对初始路径数据进行destroy操作所得到的重构路径数据,进行repair操作,生成候选路径数据;从候选路径数据中,确定出配送路径数据,实现基于利用启发式算法求解出对应的配送路径数据,并通过采用在自适应大规模邻域搜索算法的整体框架下,提出新的destroy操作和新repair操作,并增加了destroy后处理,以提高算法迭代过程中搜索领域的多样性和迭代效率。
图8是本申请优选实施例中进行初始解构造生成初始路径数据的方法流程示意图,参考图8,在其中一些可选实施方式中,通过如下步骤构建初始路径数据:
步骤S81,通过聚类方法生成多个簇,之后,执行步骤S82。
在本实施例中,簇是经纬度点的簇,且每个簇对应一条路径数据。
步骤S82,遍历所有簇,并判断是否遍历完所有簇,如果是,执行步骤S85,否则,执行步骤S83。
步骤S83,判断空闲的配送车辆的载重容积是否超出当前簇对应的路径的配送量总和,如果是,执行步骤S84,否则,执行步骤S82。
步骤S84,将超出配送车辆的载重容积的配送量所对应的配送目标(配送订单)作为新的簇,另一部分配送量作为当前空闲的配送车辆的配送量,并将当前空闲的配送车辆记作已安排配送车辆。
步骤S85,判断所有簇是否分配对应的路径数据,如果是,则确定初始路径数据构建完成,否则,执行步骤S86。
步骤S86,随机选取未分配路径数据的簇,之后,执行步骤S87。
步骤S87,判断是否存在其他未分配路径数据的簇,如果是,执行步骤S88,否则,执行步骤S89。
步骤S88,将选取的簇插入最近簇,之后,执行步骤S810。
步骤S89,为选取的簇分配输送车辆及对应的配送量,之后,确定初始路径数据构建完成。
步骤S810,判断是否超出配送车辆对应的载重容积,如果是,执行步骤S811,否则,执行步骤S87。
步骤S811,删除超出车辆约束部分的配送量对应的配送目标,并将删除的配送量对应的配送目标作为新簇,之后,执行步骤S85。
在本实施例中,通过对配送运输参数中对应经纬度和配送目标所对应的目标信息(例如:配送目标所对应的订单编号)进行聚类,以生成多个簇;对每个聚类生成的簇,判断其配送目标所对应的体积重量总和是否超出配送车辆容积和载重,若超出,剔除超出车辆容积和载重的部分作为一个新簇,将剩余部分(包括对应的经纬度和对应的订单编号)作为一条路径数据,若不超出,不对簇进行处理;最后,随机选取某个簇,持续插入距离该簇最近的簇,直到不满足车辆的容积载重限制时,生成新路径数据,并选取下一个新的簇与剩余簇进行最近插入操作;当所有簇都插入路线时,初始解构造完毕。
在其中一些实施例中,在配送路径数据中,确定目标配送路径,通过如下步骤实现:
步骤41、确定多个待配送目标对应的配送起点所对应的起点经纬度,确定配送路径数据中所有第二经纬度与对应的起点经纬度的欧式距离,并基于欧式距离,利用最近邻排序算法,对所有第二经纬度进行排序,生成重排路径数据。
步骤42、根据对应的路径数据中相邻两个第二经纬度之间的行驶时间,确定对应的路径数据所对应的第一总配送时间,并从重排路径数据和配送路径数据中,选取第一总配送时间最短的路径数据作为当前路径数据。
步骤43、利用预设的邻域搜索法,对当前路径数据进行邻域搜索,得到多个邻域路径数据,并以邻域路径数据中相邻两个第二经纬度之间的行驶时间,确定邻域路径数据所对应的第二总配送时间,其中,邻域搜索法包括以下其中一种搜索方法:交换当前路径数据中的两个第二经纬度、交换当前路径数据中的两个由预设数目的第二经纬度连线组成的路径片段、将一个路径片段插入另一个路径片段之前、交换两个由多个第二经纬度聚类成的经纬度团簇,将一个经纬度团簇插入到另一个经纬度团簇前。
步骤44、基于第二总配送时间和当前路径数据所对应的第一总配送时间,从当前路径数据和多个邻域路径数据中,选取配送时间最短的路径数据作为目标配送路径所对应的路径数据。
通过上述步骤中的确定多个待配送目标对应的配送起点所对应的起点经纬度,确定配送路径数据中所有第二经纬度与对应的起点经纬度的欧式距离,并基于欧式距离,利用最近邻排序算法,对所有第二经纬度进行排序,生成重排路径数据;根据对应的路径数据中相邻两个第二经纬度之间的行驶时间,确定对应的路径数据所对应的第一总配送时间,并从重排路径数据和配送路径数据中,选取第一总配送时间最短的路径数据作为当前路径数据;利用预设的邻域搜索法,对当前路径数据进行邻域搜索,得到多个邻域路径数据,并以邻域路径数据中相邻两个第二经纬度之间的行驶时间,确定邻域路径数据所对应的第二总配送时间;基于第二总配送时间和当前路径数据所对应的第一总配送时间,从当前路径数据和多个邻域路径数据中,选取配送时间最短的路径数据作为目标配送路径所对应的路径数据,实现对基于已构建的路径规划模型规划出的配送路径数据进行重排序优化,进而得到配送时间及配送距离最优的路径数据,进一步提高车辆路径规划的效率、降低车辆路径规划的时间成本。
需要说明的是,在本实施例中,可以采用如下重排序方法得到配送时间最短的目标配送路径:首先,采用欧氏距离计算两两地点之间的经纬度之差,再从中心仓出发依次选择最近点排列路径(即最近邻排序算法),比较当前路径和最近邻排序后的路径的配送时间,取时间较短的路线;然后,通过邻域搜索算法得到当前路径的邻域路径,取时间较短的路径。
在本实施例中,邻域搜索方法包括:随机交换对应路径中的两点、随机交换路径中的两个片段、随机将一个片段插入另一片段前、随机交换路线点聚类后的两个簇,随机将路线点聚类后的一个簇插入到另一个簇前。需要注意的是,上述处理需剔除起始点(仓库);同时,在本实施例中,若配送时间考虑货车从最后一个配送点回到仓库的时间,只需在计算最短时间时加入最后一个点返回仓库的时间,且不在处理中剔除起始点(仓库),即可采用本实例中重排序方法;在本实施例中,通过多种路线重排序方法对配送方案的每一条路线进行优化,能够减少当前最优解的配送时间,更好满足企业的实际需求。
以下对本申请实施例的路径规划方法进行进一步说明。
本申请实施例的路径规划方法包括如下步骤:
步骤1、接收订单(对应配送请求),通过地图API(对应预设地图)将订单的地址转为经纬度。
步骤2、根据订单经纬度判断订单所在区域,将总订单拆分成多个区域总订单。
在本实施例中,通过分析历史配送订单情况,将城市所在的七个区划分成四个主要的配送区域,由于可以通过提取订单地址前面的区域信息来判断订单所处区域,本申请实施例通过地址区域信息将订单分区,若订单地址没有区域信息,则通过判断订单的经纬度处在哪个区域经纬度多边形内部来判断订单所在区域;另一实施例结合大数据技术定期分析历史订单信息,划分出几个主要的配送区域,具体步骤如下:
1、通过大数据分析得出一段时间内(如一个月)的地图上的订单分布信息,包括地图上每个可能收货点一天的订单出现概率、历史订单平均重量、历史订单平均体积。
2、估计每个可能收货点一天的订单平均重量和平均体积,计算公式如下:收货点一天的订单平均重量=订单出现概率*历史订单平均重量;收货点一天的订单平均体积=订单出现概率*历史订单平均体积
3、通过数据库中的订单两两经纬度之间的时间距离数据找出各收货点的最近点,将这两点合并生成团。
4、结合车辆信息和团与团之间的距离信息,依次合并最近团,生成多个区域。
在本实施例中,对每一个团而言,都有以下的处理过程:对团中的每个收货点,获取和该收货点有两两经纬度之间的时间距离数据的其他收货点信息,找出其他收货点涉及的其他团,并记录下来。对记录下来的多个其他团,依次在当前团的点和其他团的点的两两组合中找出两点最近距离,将其作为团与团之间的最近距离,之后,则进行比较当前团和多个其他团之间的最近距离,找出当前团的最近团,并记录最近距离;在找出每个团的最近团后,按团与其最近团距离从小到大的顺序依次合并团和最近团。比较合并的新团中的订单平均重量、平均体积和车辆不同类型的载重容积,若新团的订单平均重量、平均体积和某种类型的车辆载重容积相近,将新团作为一个细分区域;若新团的订单平均重量、平均体积小于某种类型的车辆载重容积,将新团和其最近团组合,尽可能接近某种类型的车辆载重容积,并将组合后的团作为一个细分区域;若新团的订单平均重量、平均体积大于最大车型的车辆载重容积,将新团和其最近团组合,尽可能接近某两辆车型的车辆总载重容积,并将组合后的团作为一个细分区域;当配送的订单较多时,所用的车辆数也相对较多,此时会把上述过程中生成的细分区域中的一些邻近区域合并,最终得到几个大区域,以方便管理。
步骤3、通过地图API得到各区域的订单两两经纬度之间的时间距离数据。
在本实施例中,订单区域划分后,只需通过获取各区域的订单两两经纬度之间的时间距离数据(包括行驶时间和行驶距离)来求解各区域的路径规划问题,这样做大大降低了地图API的请求量,节省了查询时间和配额合同成本;在本实施例中,通过地图API的路径规划API增量获取两两经纬度之间的时间距离数据,对同个配送区域的订单两两经纬度的组合,在数据库的两两经纬度时间距离表中通过键值(longitude1,latitude1)-(longitude2,latitude2)查找已有的两两经纬度组合,并直接获取时间距离数据;对于历史未涉及到,或是近期未涉及到的两两经纬度之间的时间距离数据,再通过地图API的路径规划API增量获取;需要注意的是,两个经纬度的先后顺序代表着前一个是起点,后一个是终点,起点和终点调换后,得到的行驶时间和行驶距离可能会发生变化。在本实施例中,可将经纬度之间的行驶距离及行驶时间存储在数据库中,数据库中的两两经纬度之间的行驶距离及行驶时间应定期维护,比如一个月更新一次数据。可以在数据库中的两两经纬度时间距离表加一列上传时间属性,在数据库日常维护时,对任一两两经纬度组合,只要检测到当前时间与上传时间之差大于某个定值(如一个月),则重新调用地图API的路径规划服务请求该两两经纬度组合的时间距离数据。在本实施例中,如果数据库中存储了海量的历史数据,还可以将一天细化为不同时段,维护一天中不同时段的订单两两经纬度之间的时间距离数据。
步骤4、获取和标准化路径规划的输入参数。
在本实施例中,输入参数包括仓库数据、订单数据、车辆数据、订单两两经纬度之间的时间距离数据、单路线约束、运行参数设置,其中,所需的仓库数据包括仓库的经纬度;订单数据包括订单编号、经纬度、体积、重量;车辆数据包括车辆类型、容积、载重、卸货时间、空闲数量;单路线约束包括路线最长配送时间限制、单路线最大订单量限制、单路线最长距离限制;运行参数设置包括算法运行时间限制、最大迭代时间次数限制、最大迭代不提升次数限制。对单路线约束,采用路线最长配送时间限制,时间限制为8小时,即8*60*60=28800s。对运行参数设置,实施例中设置的算法运行时间限制是10分钟,最大迭代次数限制是2000次,最大迭代不提升限制是10次。在本实施例中,可以对配送需达到的多目标进行优先级设置,如最短时间、最短距离、最少车辆、各车辆的工作量(订单总体积重量相近)、满足客户的配送时间要求、各路线的订单聚类系数较大等等。实施例中在输入时赋予每个配送目标0-1之间的一个权重,再归一化各目标的权重,使其总和为1。路径规划算法将各目标值的加权和作为目标函数,尽量使得目标函数最小化。
本实施例中,在标准化参数的过程中,需统一各参数的单位,以及经纬度、两两经纬度之间的时间距离格式,重量的单位统一为kg,体积的单位统一为m3,时间的单位统一为s,距离的单位统一为m,对于经纬度,格式为(longitude,latitude),如(113.1,20);对两两经纬度之间的时间距离格式统一为:(longitude1,latitude1)-(longitude2,latitude2):time/distance,即通过一个包含两个经纬度的字符串从时间或距离字典中获取两两经纬度之间的时间或距离。如果有新的订单进入,在时间或距离字典中添加相应的两两经纬度时间或距离即可。最后,将标准化的参数整理成对象格式,如json文件格式,作为车辆路径规划算法的输入。
步骤5,对各区域订单进行路径规划,得到区域订单的路线组合及配送顺序。
在本实施例中,在确定规划目标和约束条件后,通过启发式算法求解大规模车辆路径问题。本实例中的规划目标包括最短时间、最少车辆、最短距离、各车辆的工作量(订单总体积重量)相近、各路线的订单聚类系数较大,其中各权重依次递减。约束条件包括车辆的容积载重约束、不同类型车辆的数量约束、路线最长配送时间限制、各车辆工作量均衡约束(软约束)。
步骤6、重排序每条路线上的订单顺序,获得最短配送时间的路线。
步骤7、通过图形化界面展示配送方案,下发给配送员。
在本实施例中,通过js实现网页版配送管理系统,通过java实现app端配送管理系统;在本实施例中,采用地图API中的路径规划服务展示配送方案中的路线的实际行驶轨迹,以供管理者和配送员查看。
步骤8、根据配送过程中的实际情况,对配送方案进行临时调整。
在本实施例中,考虑配送中存在的不确定性,配送员(app端)或管理员(网页端)上传相关信息,再根据配送员目前的位置、具体的意外信息重新为一个或多个配送员规划配送方案,并以图形化界面形式展示。
本实施例的重规划路线的具体步骤如下:
1、时刻检测是否有突发情况的上传。
2、若有突发情况,结合突发情况的种类、突发情况涉及的订单所在区域信息和配送员位置信息,找出重规划可能涉及到的路线。
在本实施例中,存在以下可能的意外情况和对应处理方法:
如果一个配送员突然身体不适,无法配送剩余订单,则该配送员会将自己的情况和未配送的订单信息上传。当检测到突发情况时,会搜寻该配送员所在区域和邻近区域的其他配送员情况,将其他配送员的配送路线设为重规划可能涉及到的路线。紧接着,考虑各配送员离该配送员的距离和车辆容积载重情况,将订单优先分配给同一区域的距离较近的配送员。若还有剩余订单未分配,对邻近区域的配送员,考虑加上剩余订单后的路线总行驶时间是否超过最大路线时间限制,若是,则不分配订单给邻近配送员,将剩余订单留在车上,交由身体不适的配送员下一天配送。如果某个请求者暂时不在收货地点,检测到该情况后,会找到该请求者订单所属的配送路线作为重规划涉及的路线,并在重规划过程中剔除该订单的经纬度,重新排序该路线上的未配送订单顺序;如果有请求者临时要求上门收款服务,检测到该情况后,会判断该请求者地址对应的经纬度所在区域,将在同一区域的配送员的多条配送路线作为重规划涉及的路线。在重规划过程中,对各配送路线,找出该请求者地址与配送路线中行驶时间最短的点,记录最短行驶时间,将该请求者请求分配给相邻点最短行驶时间最短的配送路线,并将请求者的收货地址对应的经纬度增加到该配送路线中,重新规划该路线上的未配送订单顺序;如果有请求者要求更早或更晚送货,检测到该情况后,会找到该请求者订单所属的配送路线作为重规划涉及的路线,并在重规划过程中加入特定的时间窗约束,通过步骤6中的重排序方法重新排序路线的未配送订单,记录满足时间窗约束的路线。在重规划的时间限制内,获取满足时间窗约束、且配送时间最短的路线。
本实施例还提供了基于大规模邻域搜索算法的路径规划装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9是根据本申请实施例的基于大规模邻域搜索算法的路径规划装置的结构框图,如图9所示,该装置包括获取模块91、生成模块92、规划模块93及处理模块94,其中,
获取模块91,用于获取多个待配送目标所对应的配送请求信息,其中,配送请求信息中携带待配送目标所对应的配送位置信息;
生成模块92,与获取模块91耦合连接,用于将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数,其中,配送运输参数用于表征任意两个配送位置信息之间对应的行驶参数;
规划模块93,与生成模块92耦合连接,用于基于已构建的路径规划模型和配送运输参数,规划生成与多个待配送目标对应的配送路径数据,其中,路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;
处理模块94,与规划模块93耦合连接,用于在配送路径数据中,确定目标配送路径,并基于目标配送路径对多个待配送目标进行配送。
通过本申请实施例的基于大规模邻域搜索算法的路径规划装置,采用获取多个待配送目标所对应的配送请求信息,其中,配送请求信息中携带待配送目标所对应的配送位置信息;将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数,其中,配送运输参数用于表征任意两个配送位置信息之间对应的行驶参数;基于已构建的路径规划模型和配送运输参数,规划生成与多个待配送目标对应的配送路径数据,其中,路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;在配送路径数据中,确定目标配送路径,并基于目标配送路径对多个待配送目标进行配送,解决了相关技术中车辆路径规划中因地图API请求运算开销大和地址编码易出错,造成实现车辆路径规划的效率低的问题,实现了减少请求配送运输参数的数据量和减少请求服务所需时间,降低地址编码出错率,提高车辆路径规划的效率、降低车辆路径规划的时间成本的有益效果。
在其中一些实施例中,该生成模块92进一步包括:
获取单元,用于从配送位置信息中获取配送地址信息,并将配送地址信息输入预设地图中,得到与配送地址信息对应的第一经纬度。
检测单元,与获取单元耦合连接,用于在第一经纬度中,检测处于对应的配送区域内的第二经纬度。
处理单元,与检测单元耦合连接,用于利用预设地图,对每个配送区域所对应的第二经纬度进行处理,生成与每个配送区域对应的配送运输参数,其中,配送运输参数包括以下参数:第二经纬度、任意两个第二经纬度之间的行驶距离、任意两个第二经纬度之间的行驶时间。
在其中一些实施例中,该检测单元还用于确定配送区域的区域边缘所对应的关键经纬度,并基于关键经纬度,在预设地图中生成配送区域多边形,其中,配送区域是基于历史配送所划分的;判断第一经纬度在预设地图中的坐标数据是否处于配送区域多边形中;将处于配送区域多边形中的第一经纬度作为第二经纬度。
在其中一些实施例中,该规划模块93进一步包括:
构建单元,用于基于预设的构造算法,对配送运输参数所对应的多种参数进行处理,生成初始路径数据,其中,初始路径数据包括多个待配送目标所对应的第二经纬度和待配送目标所对应的目标信息;
选取单元,与构建单元耦合连接,用于利用轮盘赌算法,从预设的毁灭重构子算法所对应的多种毁灭destroy操作和多种重构repair操作中,选取目标destroy操作和目标repair操作,其中,destroy操作表征对初始路径数据中的第二经纬度或初始路径进行移除,repair操作表征向初始路径数据中插入第二经纬度。
重构单元,与选取单元耦合连接,用于在对初始路径数据进行destroy操作所得到的重构路径数据,进行repair操作,生成候选路径数据;
确定单元,与重构单元耦合连接,用于从候选路径数据中,确定出配送路径数据。
在其中一些实施例中,该规划模块93还用于在对初始路径数据进行destroy操作后,对完成destroy操作的初始路径数据进行destroy后操作,其中,destroy后操作包括以下其中一种移除操作:移除至少一个选定的第二经纬度、移除以至少一个选定的第二经纬度为中心的经纬度中心团簇和/或邻近经纬度团簇、移除与至少一个选定的第二经纬度的距离在预设距离半径范围内的第二经纬度、移除选定的初始路径上的多个第二经纬度、移除至少一条选定的初始路径、移除一条选定的初始路径及与该选定的初始路径邻近的多条初始路径。
在其中一些实施例中,该选取单元还用于按如下公式分别计算所述destroy操作和所述repair操作所对应的概率;
pi为第i种所述destroy操作或所述repair操作所对应的概率,wi为第i种所述destroy操作或所述repair操作的对应的设定权重,k为所述destroy操作或所述repair操作所对应的总数量;
选取所述概率最大的所述destroy操作和所述概率最大的所述repair操作,得到所述目标destroy操作和所述目标repair操作。
在其中一些实施例中,该确定单元还用于获取候选路径数据所对应的相邻两个第二经纬度之间的行驶时间,得到第一行驶时间;判断第一行驶时间是否小于预设阈值;在判断到第一行驶时间小于预设阈值的情况下,将小于预设阈值的第一行驶时间所对应的候选路径数据作为配送路径数据。
在其中一些实施例中,该处理模块94进一步包括:
计算单元,用于确定多个待配送目标对应的配送起点所对应的起点经纬度,确定配送路径数据中所有第二经纬度与对应的起点经纬度的欧式距离,并基于欧式距离,利用最近邻排序算法,对所有第二经纬度进行排序,生成重排路径数据。
选择单元,与计算单元耦合连接,用于根据对应的路径数据中相邻两个第二经纬度之间的行驶时间,确定对应的路径数据所对应的第一总配送时间,并从重排路径数据和配送路径数据中,选取第一总配送时间最短的路径数据作为当前路径数据。
搜索单元,与选择单元耦合连接,用于利用预设的邻域搜索法,对当前路径数据进行邻域搜索,得到多个邻域路径数据,并以邻域路径数据中相邻两个第二经纬度之间的行驶时间,确定邻域路径数据所对应的第二总配送时间,其中,邻域搜索法包括以下其中一种搜索方法:交换当前路径数据中的两个第二经纬度、交换当前路径数据中的两个由预设数目的第二经纬度连线组成的路径片段、将一个路径片段插入另一个路径片段之前、交换两个由多个第二经纬度聚类成的经纬度团簇,将一个经纬度团簇插入到另一个经纬度团簇前。
选定单元,与搜索单元耦合连接,用于基于第二总配送时间和当前路径数据所对应的第一总配送时间,从当前路径数据和多个邻域路径数据中,选取配送时间最短的路径数据作为目标配送路径所对应的路径数据。
本实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取多个待配送目标所对应的配送请求信息,其中,配送请求信息中携带待配送目标所对应的配送位置信息。
S2,将配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个待配送目标所对应的配送运输参数,其中,配送运输参数用于表征任意两个配送位置信息之间对应的行驶参数。
S3,基于已构建的路径规划模型和配送运输参数,规划生成与多个待配送目标对应的配送路径数据,其中,路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的。
S4,在配送路径数据中,确定目标配送路径,并基于目标配送路径对多个待配送目标进行配送。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的基于大规模邻域搜索算法的路径规划方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于大规模邻域搜索算法的路径规划方法。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种基于大规模邻域搜索算法的路径规划方法,其特征在于,包括:
获取多个待配送目标所对应的配送请求信息,其中,所述配送请求信息中携带所述待配送目标所对应的配送位置信息;
将所述配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个所述待配送目标所对应的配送运输参数,其中,所述配送运输参数用于表征任意两个所述配送位置信息之间对应的行驶参数;
基于已构建的路径规划模型和所述配送运输参数,规划生成与多个所述待配送目标对应的配送路径数据,其中,所述路径规划模型是基于自适应大规模邻域搜索算法ALNS和预设的毁灭重构操作所构建的;
在所述配送路径数据中,确定目标配送路径,并基于所述目标配送路径对多个所述待配送目标进行配送;其中,将所述配送位置信息输入预设地图中,得到与位于对应的配送区域内的多个所述待配送目标所对应的配送运输参数,包括:
从所述配送位置信息中获取配送地址信息,并将所述配送地址信息输入所述预设地图中,得到与所述配送地址信息对应的第一经纬度;
在所述第一经纬度中,检测处于对应的所述配送区域内的第二经纬度;
利用所述预设地图,对每个所述配送区域所对应的所述第二经纬度进行处理,生成与每个所述配送区域对应的所述配送运输参数,其中,所述配送运输参数包括以下参数:所述第二经纬度、任意两个所述第二经纬度之间的行驶距离、任意两个所述第二经纬度之间的行驶时间,其中,在所述第一经纬度中,检测处于对应的所述配送区域内的第二经纬度,包括:
确定所述配送区域的区域边缘所对应的关键经纬度,并基于所述关键经纬度,在所述预设地图中生成与地图上实际区域边缘匹配的配送区域多边形,其中,所述配送区域是基于历史配送所划分的;
判断所述第一经纬度在所述预设地图中的坐标数据是否处于所述配送区域多边形中;
将处于所述配送区域多边形中的所述第一经纬度作为所述第二经纬度,其中,基于已构建的路径规划模型和所述配送运输参数,规划生成与多个所述待配送目标对应的配送路径数据,包括:
基于预设的构造算法,对所述配送运输参数所对应的多种所述参数进行处理,生成初始路径数据,其中,所述初始路径数据包括多个所述待配送目标所对应的所述第二经纬度和所述待配送目标所对应的目标信息;
利用轮盘赌算法,从预设的毁灭重构子算法所对应的多种毁灭destroy操作和多种重构repair操作中,选取目标destroy操作和目标repair操作,其中,所述destroy操作表征对所述初始路径数据中的所述第二经纬度或初始路径进行移除,所述repair操作表征向所述初始路径数据中插入所述第二经纬度;
在对所述初始路径数据进行所述destroy操作所得到的重构路径数据,进行所述repair操作,生成候选路径数据;
从所述候选路径数据中,确定出所述配送路径数据,其中,从所述候选路径数据中,确定出所述配送路径数据,包括:
获取所述候选路径数据所对应的相邻两个所述第二经纬度之间的行驶时间,得到第一行驶时间;
判断所述第一行驶时间是否小于预设阈值;
在判断到所述第一行驶时间小于预设阈值的情况下,将小于预设阈值的所述第一行驶时间所对应的所述候选路径数据作为所述配送路径数据。
2.根据权利要求1所述的方法,其特征在于,所述destroy操作包括以下其中一种移除操作:
随机移除所述第二经纬度、移除聚类值小于预设聚类值阈值的所述第二经纬度、移除对应的输送量小于预设输送量阈值的初始路径所对应的所有所述第二经纬度、在对应的输送量大于预设输送量阈值的初始路径所对应的所有所述第二经纬度中,移除聚类值小于预设聚类值阈值的所述第二经纬度、随机移除由多个所述第二经纬度组成的初始路径、移除对应的输送量的差值大于预设输送量阈值的相邻两条初始路径、移除对应的所述配送运输参数不满足预设参数值的初始路径,和/或,
所述repair操作包括以下其中一种插入操作:
基于最近距离插入法,将移除的所述第二经纬度插入邻近的所述重构路径数据;
基于最近距离聚类插入法,将多个移除的所述第二经纬度聚类成经纬度团簇,并将所述经纬度团簇插入邻近的所述重构路径数据;
基于合并拆分法,将多个移除的所述第二经纬度和邻近的所述重构路径数据进行合并,并按输送量将合并得到的路径数据进行拆分;
基于工作量均衡插入法,将移除的所述第二经纬度插入指定路径数据中,其中,所述指定路径数据为相对移除的所述第二经纬度距离最近且对应的输送量小于预设输送量阈值的所述重构路径数据。
3.权利要求1所述的方法,其特征在于,在对所述初始路径数据进行所述destroy操作后,所述方法还包括:对完成所述destroy操作的初始路径数据进行destroy后操作,其中,所述destroy后操作包括以下其中一种移除操作:移除至少一个选定的所述第二经纬度、移除以至少一个选定的所述第二经纬度为中心的经纬度中心团簇和/或邻近经纬度团簇、移除与至少一个选定的所述第二经纬度的距离在预设距离半径范围内的所述第二经纬度、移除选定的所述初始路径上的多个所述第二经纬度、移除至少一条选定的所述初始路径、移除一条选定的所述初始路径及与该选定的所述初始路径邻近的多条初始路径。
4.根据权利要求1所述的方法,其特征在于,利用轮盘赌算法,从预设的所述毁灭重构子算法所对应的多种destroy操作和多种repair操作中,选取目标destroy操作和目标repair操作,包括:
按如下公式分别计算所述destroy操作和所述repair操作所对应的概率;
pi为第i种所述destroy操作或所述repair操作所对应的概率,wi为第i种所述destroy操作或所述repair操作的对应的设定权重,k为所述destroy操作或所述repair操作所对应的总数量;
选取所述概率最大的所述destroy操作和所述概率最大的所述repair操作,得到所述目标destroy操作和所述目标repair操作。
5.据所述权利要求1所述的方法,其特征在于,在所述配送路径数据中,确定目标配送路径,包括:
确定多个所述待配送目标对应的配送起点所对应的起点经纬度,确定所述配送路径数据中所有所述第二经纬度与对应的所述起点经纬度的欧式距离,并基于所述欧式距离,利用最近邻排序算法,对所有所述第二经纬度进行排序,生成重排路径数据;
根据对应的路径数据中相邻两个所述第二经纬度之间的行驶时间,确定对应的路径数据所对应的第一总配送时间,并从所述重排路径数据和所述配送路径数据中,选取所述第一总配送时间最短的路径数据作为当前路径数据;
利用预设的邻域搜索法,对所述当前路径数据进行邻域搜索,得到多个邻域路径数据,并以所述邻域路径数据中相邻两个所述第二经纬度之间的行驶时间,确定所述邻域路径数据所对应的第二总配送时间,其中,所述邻域搜索法包括以下其中一种搜索方法:交换所述当前路径数据中的两个所述第二经纬度、交换所述当前路径数据中的两个由预设数目的所述第二经纬度连线组成的路径片段、将一个所述路径片段插入另一个所述路径片段之前、交换两个由多个所述第二经纬度聚类成的经纬度团簇,将一个所述经纬度团簇插入到另一个所述经纬度团簇前;
基于所述第二总配送时间和所述当前路径数据所对应的所述第一总配送时间,从所述当前路径数据和多个所述邻域路径数据中,选取配送时间最短的路径数据作为所述目标配送路径所对应的路径数据。
6.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的基于大规模邻域搜索算法的路径规划方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310319243.0A CN116341781B (zh) | 2023-03-28 | 2023-03-28 | 基于大规模邻域搜索算法的路径规划方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310319243.0A CN116341781B (zh) | 2023-03-28 | 2023-03-28 | 基于大规模邻域搜索算法的路径规划方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116341781A CN116341781A (zh) | 2023-06-27 |
CN116341781B true CN116341781B (zh) | 2024-07-23 |
Family
ID=86885420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310319243.0A Active CN116341781B (zh) | 2023-03-28 | 2023-03-28 | 基于大规模邻域搜索算法的路径规划方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116341781B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118229194B (zh) * | 2024-04-12 | 2024-08-23 | 暨南大学 | 批生产模式下的库位规划方法、电子装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135208A1 (zh) * | 2019-12-31 | 2021-07-08 | 苏宁云计算有限公司 | 考虑订单聚合度的配送路径规划方法与系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107194513B (zh) * | 2017-05-26 | 2020-09-29 | 中南大学 | 一种解决全渠道物流配送问题的优化方法 |
CN109697523A (zh) * | 2017-10-23 | 2019-04-30 | 顺丰科技有限公司 | 优化收派件路径的方法、系统及设备 |
CN111882099A (zh) * | 2020-05-11 | 2020-11-03 | 武汉理工大学 | 一种基于变邻域并行退火算法的物流配送路径规划方法 |
CN112884409A (zh) * | 2021-02-26 | 2021-06-01 | 上海东普信息科技有限公司 | 配送路线推荐方法、装置、设备及存储介质 |
CN114676911A (zh) * | 2022-03-28 | 2022-06-28 | 中国工商银行股份有限公司 | 一种运输车辆行车路线确定方法及装置 |
CN115577886A (zh) * | 2022-10-12 | 2023-01-06 | 安徽大学 | 一种多无人机站的组合配送方法及系统 |
-
2023
- 2023-03-28 CN CN202310319243.0A patent/CN116341781B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135208A1 (zh) * | 2019-12-31 | 2021-07-08 | 苏宁云计算有限公司 | 考虑订单聚合度的配送路径规划方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116341781A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119928B (zh) | 一种基于司机特征的车辆匹配推荐方法 | |
CN111428137B (zh) | 一种电动汽车充电设施的推荐方法及推荐装置 | |
CN112288347A (zh) | 冷链配送的路线确定方法、装置、服务器及存储介质 | |
CN109934372B (zh) | 一种路径规划方法、装置及设备 | |
CN112884409A (zh) | 配送路线推荐方法、装置、设备及存储介质 | |
CN111260172B (zh) | 信息处理方法及系统、计算机设备 | |
CN113343570A (zh) | 一种考虑拣货单关联性的动态拣货方法和系统 | |
CN113110472B (zh) | 路径规划方法、装置和终端 | |
CN111950950A (zh) | 订单配送路径的规划方法、装置、计算机介质及电子设备 | |
CN116341781B (zh) | 基于大规模邻域搜索算法的路径规划方法及存储介质 | |
CN106919957A (zh) | 处理数据的方法及装置 | |
CN112378415A (zh) | 一种路径规划方法、装置及设备 | |
CN111126688A (zh) | 配送路线确定方法、装置、电子设备及可读存储介质 | |
CN115409439A (zh) | 基于改进蚁群算法的多车型供应链调度方法及电子设备 | |
CN111861017A (zh) | 一种基于现网数据的充电站网络优化方法 | |
Kim et al. | Ant colony optimisation with random selection for block transportation scheduling with heterogeneous transporters in a shipyard | |
CN110751359A (zh) | 一种自动化航线网络评估方法、电子设备及存储介质 | |
CN114862065B (zh) | 社工任务规划方法、装置、电子设备及存储介质 | |
CN114877906A (zh) | 配送计划生成方法、装置、系统及计算机可读存储介质 | |
CN115375237A (zh) | 一种冷链物流智能管理方法、系统、设备和存储介质 | |
CN112700074B (zh) | 快递任务的规划方法及装置 | |
CN111339468B (zh) | 信息推送方法、装置、电子设备和存储介质 | |
CN109559078B (zh) | 一种车辆调度方法、装置、设备及存储介质 | |
CN114169488A (zh) | 基于混合元启发式算法的带容量约束的车辆路径获取方法 | |
CN113688324A (zh) | 一种银行网点推荐方法及装置 |
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 |