当前位置: 首页 > 专利查询>骆剑锋专利>正文

基于多车辆的考虑限载限路程的多目的地的路径规划方法技术

技术编号:17095594 阅读:54 留言:0更新日期:2018-01-21 06:28
本发明专利技术涉及一种基于多车辆的考虑限载限路程的多目的地的路径规划算法,包括以下步骤:(1)用Dijkstra算法计算所有点间的最短路径及其路程;(2)算出每条最短路径的绕行贡献值;(3)根据绕行贡献值对路径进行降序排序,形成路径队列;(4)把绕行贡献值较大的路径从队列的队头中出队等步骤,本发明专利技术的优点是:本算法能根据车辆的限重和限程情况,计算出要到达多个目的地再回到出发点的路径规划算法,并且算法不只是规划一辆车,而是能同时规划多辆车。

【技术实现步骤摘要】
基于多车辆的考虑限载限路程的多目的地的路径规划算法
本算法属于计算机的智能计算的路径规划算法
,特别是多车辆、带限制条件、多目的地的路径规划算法。
技术介绍
众所周知,现在流行的导航软件有百度地图、高德地图、腾讯地图,它们的主要功能就是根据用户的需要与现实的交通情况,规划出从出发点到目的地的最短路径。而这些软件只能满足于一般个人用户,不能满足于企业(如:物流、客运、旅游等)的需求,因为个人用户只需考虑他自己一辆车的路径规划,而企业需要考虑多辆车的路径规划,并且个人用户一般只考虑当前要去的一个目的地,而企业(如物流)往往要到多个地点收货,还有更现实的是,企业的车辆经常要考虑载重因素(因为超重是违法的)和路程因素问题(考虑车辆油量或司机工作时间)。所以总的来说,现流行软件中考虑一辆车的两点间的最短路径规划,而本算法是考虑多辆车在限重限路程的情况下到多个目的地的最短路径规划。在理论上,现有的相关算法有两种:第一种是最短路径算法,经典的最短路径算法有Dijkstra算法和Floyd算法,它们都是计算两点间的最短路径,但不计算遍历多点的最短路径。第二种是图的遍历算法,经典的遍历算法有深度优先遍历算法和广度优先遍历算法,它们都是计算如何访问图中的所有点的,但在遍历时,不考虑路程的长短。
技术实现思路
为克服现有技术的缺陷,本专利技术提供一种基于多车辆的考虑限载限路程的多目的地的路径规划算法,本专利技术的技术方案是:基于多车辆的考虑限载限路程的多目的地的路径规划算法,包括以下步骤:(1)用Dijkstra算法计算所有点间的最短路径及其路程;(2)算出每条最短路径的绕行贡献值;(3)根据绕行贡献值对路径进行降序排序,形成路径队列;(4)把绕行贡献值较大的路径从队列的队头中出队;(5)出队的路径进入累加堆栈;(6)组合回路前对刚入堆栈的路径先进行判断及处理;(7)建立准备调度的车辆的队列:把企业的车辆信息,包括车牌号、限重、限程,组成两个降序的循环队列,分别是限重循环队列和限程循环队列,其中队头是限重最大和限程最大的车辆。(8)堆栈限制值的累加:把堆栈中各端点的收货重量进行累加,即累加负载,有相同端点的,不重复计算,并且把堆栈中的路径所组合的回路进行求路程,当得到累加重量及路程两值后,则进行判断是否超重和超程。(9)超程处理后的车辆调度以及超程处理后的调度;(10)判断是否所有的地点都遍历完毕,如果是,则完成;否则再回到步骤(4)并执行后续步骤。所述的步骤(6)中具体判断及其处理方法如下:a、如果当前过程还没组成第一条回路,那么直接跳过本次判断,跳到判断步骤b,否则,就要判断路径的任意一个端点是否在已经组合好的回路中,如果已经存在,则删除此路径,同时执行步骤(4)-(6);如果不存在则进行判断步骤b。b、判断路径是否与在堆栈中的路径组合成一个不经过终点回路,如果是,则删除此路径,同时回到步骤(4),并执行以下步骤;如果不是,则进行判断步骤c。c、判断路径中任意一个端点,是否在堆栈中出现过三次,包括刚入堆栈的路径的端点,如果是,则删除此路径,同时回到步骤(4),并执行以下步骤,如果不是,则进行判断步骤d;d、是否为离散分路:如果路径没有与堆栈中任意一条路径连接在一起,那么它将独自为离散分路,如果是离散分路径,则进行判断步骤e,否则,跳过判断步骤e,直接到步骤f。e、是否为靠近路径:如果路径是离散分路,则要判断路径与堆栈中路径的组合回路是否靠近,靠近则进行连接处理,如果不靠近,那么路径则退回到队列中,但不是退回到队列的头,而是从头开始向尾寻找第一个不是退回路径的后面。所述的步骤(8)的判断方法如下:步骤f、判断超重:如果累加负载值没超过限重循环队列的队头车辆对应的限重值,那么就进行步骤g,否则就删除这条新入堆栈的路径,把堆栈中的路径组合成回路,并把堆栈清空,准备新的路径进堆栈;步骤g:判断超程:如果累加路程值没超过限程循环队列的队头车辆对应的限程值,那么就再回到步骤(4)并往下执行,否则就删除这条新入堆栈的路径,把堆栈中的路径组合成回路。并把堆栈清空,准备新的路径进堆栈。所述的步骤(9)超程处理后的车辆调度:如果执行了步骤g,限程循环队列的队头车辆调到队尾,第二辆车作为队头,并且在限重循环队列中对应车辆的信息也调到队尾,并且进入步骤(10)。所述的步骤(9)超重处理后的车辆调度:如果没有执行判断g,那么限重循环队列的队头车辆调到队尾,第二辆车作为队头,并且在限程循环队列中对应车辆的信息也调到队尾。本专利技术的优点是:本算法能根据车辆的限重和限程情况,计算出要到达多个目的地再回到出发点的路径规划算法,并且算法不只是规划一辆车,而是能同时规划多辆车,而现有的导航软件只能导航一辆车,并且不考虑车辆的限重和限程情况,最重要的是它们一次导航只能到达一个目的地。本算法应用广泛,除了物流企业的货车收货的例子外,还有如下应用:(1)无人机的限重限路程的快递业务(2)旅游企业车辆的多观光点的路径规划(3)无线网络的信息路由方案。(4)共享单车被回收的路径规划(5)家电维修人员的路径规划(6)校车接送学生的路径规划等等。附图说明图1是本专利技术的流程示意图。图2是本专利技术实施例的网络图。图3是最短路程矩阵ZD。图4是绕行贡献值矩阵PV。图5是PQ队列。图6是出队及进堆栈示意图。图7是回路1图。图8是是否靠近示意图。图9是限重循环队列。图10是限程循环队列。图11是累加过程示意图。图12是超值后处理示意图。图13是调度后的限程循环队列。图14是调度后的限重循环队列。图15是最终结果图。具体实施方式下面结合具体实施例来进一步描述本专利技术,本专利技术的优点和特点将会随着描述而更为清楚。但这些实施例仅是范例性的,并不对本专利技术的范围构成任何限制。本领域技术人员应该理解的是,在不偏离本专利技术的精神和范围下可以对本专利技术技术方案的细节和形式进行修改或替换,但这些修改和替换均落入本专利技术的保护范围内。参见图1至图15,本专利技术涉及一种基于多车辆的考虑限载限路程的多目的地的路径规划算法,包括以下步骤:(1)用Dijkstra算法计算所有点间的最短路径及其路程;(2)算出每条最短路径的绕行贡献值;(3)根据绕行贡献值对路径进行降序排序,形成路径队列;(4)把绕行贡献值较大的路径从队列的队头中出队;(5)出队的路径进入累加堆栈;(6)组合回路前对刚入堆栈的路径先进行判断及处理;(7)建立准备调度的车辆的队列:把企业的车辆信息,包括车牌号、限重、限程,组成两个降序的循环队列,分别是限重循环队列和限程循环队列,其中队头是限重最大和限程最大的车辆。(8)堆栈限制值的累加:把堆栈中各端点的收货重量进行累加,即累加负载,有相同端点的,不重复计算,并且把堆栈中的路径所组合的回路进行求路程,当两值得到后,则进行判断是否超重和超程。(9)超程处理后的车辆调度以及超程处理后的调度;(10)判断是否所有的地点都遍历完毕,如果是,则完成。否则再回到步骤(4)并执行后续步骤。所述的步骤(6)中具体判断及其处理方法如下:a、如果当前过程还没组成第一条回路,那么直接跳过本次判断,跳到判断步骤b,否则,就要判断路径的任意一个端点是否在已经组合好的回路中,如果已经存在,则删除此路径,同时执行步骤(4)-(6);本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/52/201710741283.html" title="基于多车辆的考虑限载限路程的多目的地的路径规划方法原文来自X技术">基于多车辆的考虑限载限路程的多目的地的路径规划方法</a>

【技术保护点】
基于多车辆的考虑限载限路程的多目的地的路径规划算法,其特征在于,包括以下步骤:(1)用Dijkstra算法计算所有点间的最短路径及其路程;(2)算出每条最短路径的绕行贡献值;(3)根据绕行贡献值对路径进行降序排序,形成路径队列;(4)把绕行贡献值较大的路径从队列的队头中出队;(5)出队的路径进入累加堆栈;(6)组合回路前对刚入堆栈的路径先进行判断及处理;(7)建立准备调度的车辆的队列:把企业的车辆信息,包括车牌号、限重、限程,组成两个降序的循环队列,分别是限重循环队列和限程循环队列,其中队头是限重最大和限程最大的车辆;(8)堆栈限制值的累加:把堆栈中各端点的收货重量进行累加,即累加负载,有相同端点的,不重复计算,并且把堆栈中的路径所组合的回路进行求路程,当得到累加重量及路程两值后,则进行判断是否超重和超程;(9)超程处理后的车辆调度以及超程处理后的调度;(10)判断是否所有的地点都遍历完毕,如果是,则完成;否则再回到步骤(4)并执行后续步骤。

【技术特征摘要】
1.基于多车辆的考虑限载限路程的多目的地的路径规划算法,其特征在于,包括以下步骤:(1)用Dijkstra算法计算所有点间的最短路径及其路程;(2)算出每条最短路径的绕行贡献值;(3)根据绕行贡献值对路径进行降序排序,形成路径队列;(4)把绕行贡献值较大的路径从队列的队头中出队;(5)出队的路径进入累加堆栈;(6)组合回路前对刚入堆栈的路径先进行判断及处理;(7)建立准备调度的车辆的队列:把企业的车辆信息,包括车牌号、限重、限程,组成两个降序的循环队列,分别是限重循环队列和限程循环队列,其中队头是限重最大和限程最大的车辆;(8)堆栈限制值的累加:把堆栈中各端点的收货重量进行累加,即累加负载,有相同端点的,不重复计算,并且把堆栈中的路径所组合的回路进行求路程,当得到累加重量及路程两值后,则进行判断是否超重和超程;(9)超程处理后的车辆调度以及超程处理后的调度;(10)判断是否所有的地点都遍历完毕,如果是,则完成;否则再回到步骤(4)并执行后续步骤。2.根据权利要求1所述的基于多车辆的考虑限载限路程的多目的地的路径规划算法,其特征在于,所述的步骤(6)中具体判断及其处理方法如下:a、如果当前过程还没组成第一条回路,那么直接跳过本次判断,跳到判断步骤b,否则,就要判断路径的任意一个端点是否在已经组合好的回路中,如果已经存在,则删除此路径,同时执行步骤(4)-(6);如果不存在则进行判断步骤b;b、判断路径是否与在堆栈中的路径组合成一个不经过终点回路,如果是,则删除此路径,同时回到步骤(4),并执行以下步骤;如果不是,则进行判断步骤c;c、判断路径中任意一个端点,是否在堆栈中出现过三次,包括刚入堆栈的路径的端点,如果是,则删除此...

【专利技术属性】
技术研发人员:骆剑锋
申请(专利权)人:骆剑锋东莞职业技术学院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1