CN110108290B - 一种基于遗传算法的多智能车避撞路径规划的方法 - Google Patents

一种基于遗传算法的多智能车避撞路径规划的方法 Download PDF

Info

Publication number
CN110108290B
CN110108290B CN201910333273.0A CN201910333273A CN110108290B CN 110108290 B CN110108290 B CN 110108290B CN 201910333273 A CN201910333273 A CN 201910333273A CN 110108290 B CN110108290 B CN 110108290B
Authority
CN
China
Prior art keywords
chromosome
time window
node
trolley
path
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
Application number
CN201910333273.0A
Other languages
English (en)
Other versions
CN110108290A (zh
Inventor
詹志诚
任涛
郭雨桐
宋子成
梁寓飞
邱里铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201910333273.0A priority Critical patent/CN110108290B/zh
Publication of CN110108290A publication Critical patent/CN110108290A/zh
Application granted granted Critical
Publication of CN110108290B publication Critical patent/CN110108290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Genetics & Genomics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于遗传算法的多智能车避撞路径规划的方法,涉及智能车导航技术领域。步骤如下:步骤1:获取小车的信息;步骤2:建立染色体组;步骤3:对染色体进行交叉变异得到染色体组M;步骤4:对染色体归并排序得到任务序列;遍历染色体组M中的每一个染色体个体,进行避撞路径规划得到总路径集合U;步骤5:当小车完成任务后规划到缓冲区中;步骤6:将每辆小车的运行距离的倒数之和设置为该染色体个体的适应度;判断是否进化次数达到最小进化次数且适应度稳定不变或者进化次数到达最大进化次数,若是则输出路径规划方案;若否重新选取染色体组后执行步骤3。本方法加快了算法的计算效率,有助于对新型复杂的物流搬运方法的研究。

Description

一种基于遗传算法的多智能车避撞路径规划的方法
技术领域
本发明涉及智能车导航技术领域,尤其涉及一种基于遗传算法的多智能车避撞路径规划的方法。
背景技术
随着互联网行业的快速发展,网购的风潮席卷全球。在每一个网购的流程中,我们总是要在较大的仓库中运输货物。以往的传统仓库主要是靠人来使用运货车来搬运货物,耗费了人力资源也存在一定的危险性。而随着科技日新月异,智慧仓库也逐渐出现,它们利用一些智能小车来代替人力,利用指令来操控这些小车搬运货物。现今这一些智能小车来自动地运输货物已经成为各大物流公司方便快捷的选择。这一些智能小车是现代工业自动化物流系统中的关键设备,凭借其施工简单、路径灵活、不占用空间、较好的移动性、柔性等优点深受自动化运输的青睐。而在国内,京东商场的所谓智慧仓库就是用智能小车来全自动化地搬运货物。但是在实际的应用中,在错综复杂的仓库里头,如何能够让小车更快地在不出现意外碰撞的情况下完成货物的搬运,提高物流效率是这些公司们面对的主要问题。
现如今已经有的小车导航算法考虑的有基于时间窗的单小车避撞方法,成功的让一辆车能在仓库中避开其他小车完成任务。该方法缺失了对任务进行分配的宏观处理,导致小车的总路径不能达到最优。也有一些基于蚁群算法的针对多个小车的路径分配算法,但是缺失高效的避撞手段,导致算法不够贴近实际使用。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于遗传算法的多智能车避撞路径规划的方法,本方法加快了算法的计算效率,也适用于实际应用,更有助于对新型的复杂的物流搬运方法的研究。
为解决上述技术问题本发明所采取的技术方案是:
本发明提供一种基于遗传算法的多智能车避撞路径规划的方法,包括如下步骤:
步骤1:获取小车行驶的地图、任务数量、以及人为设定小车的数量、小车的初始位置和小车速度的最大值,将地图转化为邻接矩阵;所述地图为线状的双向行驶干道,在地图上设有缓冲区并且在每条干道上都设有n个节点;每个节点包括占用时间窗和空闲时间窗,占用时间窗表示为在一段时间内该节点被某一辆小车所占用,占用时间窗组包括所有节点的占用时间窗;空闲时间窗表示在某一段时间内该节点未被小车占用,空闲时间窗组包括所有节点的空闲时间窗;所述任务由地图上的一个起始节点和一个终止节点所组成;
步骤2:根据遗传方法,依照得到的任务数量建立对应的染色体组;采用Java自带的随机数工具类,生成一个长度为任务数量的,每个位置为0到1之间的随机数的数组,以此作为用于分配任务的染色体;根据人为设定的初始染色体数量,随机生成该数量的染色体,组成染色体组Q;
步骤3:对产生的染色体组的个体进行交叉和变异处理,得到新的染色体组M;交叉处理采用的是基本的两点交叉法,根据交叉率在染色体组中选择任意的两个染色体对其中一个位置进行截断,然后两个数组进行交叉交换,生成新的两个个体;所述交叉率是每一次交叉都将随机生成0-1的随机数作为交叉率;所述变异是对所有新生成的染色体生成0到1的随机数,达到变异率的数组再随机生成新的染色体;所述染色体组M由染色体组Q内的所有染色体和经过交叉和变异后的新生成的染色体组成;
步骤4:对染色体组M中的每一个染色体个体进行如下操作:对染色体采用归并排序,得到一个任务序列;对于每一个任务,根据当前车辆最早开始任务的时间,选出最早能执行任务的车辆进行避撞路径规划,按照任务顺序将当前数组中所有任务都进行避撞路径规划,规划每一个小车从起始点到终止点的路径,根据迪杰斯特拉方法对每一个点到点的路径进行规划,得到小车的常规路径,在每一条路径规划之后,将路径规划过程中的所有数据储存至历史数据库中,最终得到序列路径规划集合x,遍历染色体组M中的每一个染色体个体,得到总路径集合U={x1、x2、…、xm},其中m代表序列路径规划集合的编号;
步骤5:当小车完成任务之后,执行步骤4.2到4.6将其规划到缓冲区中,将其规划到缓冲区中,根据先后到达的时间顺序,将小车引导入不同深度的区域;所述缓冲区的两个点连接着地图作为进出点;
步骤6:将每辆小车的运行距离的倒数之和设置为该染色体个体的适应度;判断是否进化次数达到人为设定的最小进化次数且适应度稳定不变或者进化次数到达人为设定的最大进化次数,若是,则跳出循环,选取当前染色体组中的适应度最高的个体的任务分配方式以及小车的路径规划作为输出路径规划方案;若否,则根据其适应度的大小比例,让染色体组Q中的所有染色体个体占有0到1之间的一块数段,随机数生成0到1之间的数,根据其所在数段,留下与其数段相对应的染色体,以此重复选择K次,其中K代表染色体组Q中的染色体总数,留下非重复的个体组成新的染色体组,从而淘汰掉适应度低下的个体,并且选取出适应度最大的优秀个体作为精英个体加入到染色体组中,组成迭代染色体组
Figure BDA0002038349350000021
其中σ为迭代次数;执行步骤3。
所述步骤4的具体步骤如下:
步骤4.1:在染色体组M中随机选择一个染色体将其进行归并排序,得到一个任务序列,根据任务序列中最早执行的任务时间,在缓冲区内选择能够最早执行任务的车辆,将其由当前位置调至任务起始点;
步骤4.2:将步骤1中获取的地图生成的邻接矩阵,选择出与小车Cn所在的当前节点相连接的所有节点,形成下一节点集合Q={q1,q2,…,qd,…qα},其中n代表小车的编号,qd为编号为d的下一个节点;遍历集合Q中的所有节点,判断当前节点的小车Cn从该节点行驶到下一个节点qd的时间,以及小车行驶出下一个节点qd的时间是否在该节点的空闲时间窗的空闲时间范围之内;若是则代表小车能通过下一个节点qd,将该节点的空闲时间窗保存至候选时间窗组H1内,若否则代表小车不能通过该节点;
步骤4.3:获取历史数据库中当前节点的空闲时间窗和候选时间窗组内下一个节点qα的空闲时间窗被相同车辆占用的时间t1和t2,若历史数据库中不存在该数据则不发生碰撞,则继续查看候选时间窗组H1内的下一个候选时间窗;若历史数据库中存在该数据则将小车Cn在当前节点空闲时间窗和下一个节点qd的空闲时间窗的占用时间t3和t4与t1和t2进行比较,若产生了追击碰撞或相向碰撞则将下一个节点qα的空闲时间窗从候选时间窗组H1内删除;重复本步骤遍历候选时间窗组H1内的所有空闲时间窗,得到候选时间窗组H2;所述追击碰撞为t3>t1且t4<t2或者t3<t1且t4<t2则表示两个小车产生了追击碰撞,所述相向碰撞为t3<t2<t4且t2<t1则表明小车在反向行驶且会造成相向碰撞;
步骤4.4:在历史数据库中查询当前节点是否存在下一个空闲时间窗,若否则执行步骤4.5;若是,则说明当前节点在小车Cn占用时间到下一个该节点的空闲时间窗所处时间之间有其他小车经过当前节点,则小车Cn将判断与当前节点相连接的路径上且由当前时间至当前节点的下一个空闲时间窗开启时间内是否存在无车辆的空路径,若是则将该空闲时间窗储存至候选时间窗组H2内,小车Cn到达下一节点qd的时间设置为下一时间窗的开启时间,并且在下一节点qd的空闲时间窗内存入避让的路径;若否则说明无法避让,执行步骤4.5;
步骤4.5:将候选时间窗组H2内小车Cn在当前节点空闲时间窗到达下一节点空闲时间窗用时最短的节点添加到确定时间窗组中;并将该节点在候选时间窗组H2内删除;
步骤4.6:将小车移动到用时最短的下一节点,重复步骤4.2至步骤4.5,直到小车Cn的终止节点的时间窗被加入到确定时间窗组里,结束循环,得到了一个时间窗路径,以此时间窗路径为常规路径;
步骤4.7:按照步骤4.1中得到的当前染色体中任务的先后顺序,重复步骤4.2至步骤4.6遍历所有任务,得到序列路径规划集合x;
步骤4.8:遍历染色体组M中的每一个染色体个体,重复步骤4.1至4.7,将所有的序列路径规划集合储存至总路径集合U中,U={x1、x2、…、xm},其中m为序列路径规划集合的编号;
所述步骤1中线状的双向行驶干道只能运行一辆小车通行,在干道上设有节点,节点表示收接货区域,小车可以在其区域停顿一段时间来交接货物;当节点是横纵两条干道交叉而得到的时候,节点则表示为十字路口,小车需要在该点停顿一段时间表示穿越过程。
采用上述技术方案所产生的有益效果在于:本发明提供的一种基于遗传算法的多智能车避撞路径规划的方法,本发明从功能上来说,是在给定的地图上,让特定数目的小车以最短距离无碰撞的完成给定的任务(点到点的运动来搬运货物);使用的编程技术主要是Java下的开发技术,运用了遗传算法和基于时间窗的避撞路径规划算法使得最优路径规划能够得到实现;该路径规划算法采用的是以节点作为一个时间窗单位,而不是传统的以边作为时间窗的方法,大大加快了算法的计算效率,也适用于实际应用,更有助于对新型的复杂的物流搬运方法的研究。
附图说明
图1为本发明实施例提供的路径规划的方法流程图;
图2为本发明实施例提供的地图的基本结构图,其中1~9代表地图干道上设有的节点,A代表一辆正在运行的小车,B代表另一辆正在运行的小车,E、F分别代表地图上设有的缓冲区。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本实施方式的软件环境为WINDOWS 10系统,开发工具为JDK 9.0,采用矩阵工具ujmp做矩阵计算,用junit,mockito进行单元测试和集成测试。仿真环境是Java虚拟机。将地图以及小车信息导入:可以导入或者手动建立地图,设定小车的速度;然后设置小车的数量,以及输入任务以及该任务的数量,运行系统;并根据传送来的数据,对其数据进行转化,将json数据格式转化为我们需要的存储小车当前位置的链表数据结构以及邻接矩阵来表示地图等信息。
如图1所示,本实施例的方法如下所述。
本发明提供一种基于遗传算法的多智能车避撞路径规划的方法,包括如下步骤:
步骤1:获取小车行驶的地图、任务数量、以及人为设定小车的数量、小车的初始位置和小车速度的最大值,将地图转化为邻接矩阵;所述地图为线状的双向行驶干道,如图2所示,在地图上设有缓冲区并且在每条干道上都设有n个节点;每个节点包括占用时间窗和空闲时间窗,占用时间窗表示为在一段时间内该节点被某一辆小车所占用,占用时间窗组包括所有节点的占用时间窗;空闲时间窗表示在某一段时间内该节点未被小车占用,空闲时间窗组包括所有节点的空闲时间窗;所述任务由地图上的一个起始节点和一个终止节点所组成;
本实施例中设定任务数量为3;
步骤2:根据遗传算法,依照得到的任务数量建立对应的染色体组;采用Java自带的随机数工具类,生成一个长度为任务数量的,每个位置为0到1之间的随机数的数组,以此作为用于分配任务的染色体。根据人为设定的初始染色体数量,随机生成该数量的染色体,组成染色体组Q。
步骤3:对产生的染色体组的个体进行交叉和变异处理,得到新的染色体组M。交叉处理采用的是基本的两点交叉法,根据交叉率在染色体组中选择任意的两个染色体对其中一个位置进行截断,然后两个数组进行交叉交换,生成新的两个个体。所述交叉率是每一次交叉都将随机生成0-1的随机数作为交叉率;所述变异是对所有新生成的染色体生成0到1的随机数,达到变异率的数组再随机生成新的染色体;所述染色体组M由染色体组Q内的所有染色体和经过交叉和变异后的新生成的染色体组成;
步骤4:对染色体组M中的每一个染色体个体进行如下操作:对染色体采用归并排序,得到一个任务序列;对于每一个任务,根据当前车辆最早开始任务的时间,选出最早能执行任务的车辆进行避撞路径规划,按照任务顺序将当前数组中所有任务都进行避撞路径规划,规划每一个小车从起始点到终止点的路径,根据迪杰斯特拉算法对每一个点到点的路径进行规划,得到小车的常规路径,在每一条路径规划之后,将路径规划过程中的所有数据储存至历史数据库中,最终得到序列路径规划集合x,遍历染色体组M中的每一个染色体个体,得到总路径集合U={x1、x2、…、xm},其中m代表序列路径规划集合的编号;
步骤4.1:在染色体组M中随机选择一个染色体将其进行归并排序,得到一个特定顺序的任务序列,根据任务序列中最早执行的任务时间,在缓冲区内选择能够最早执行任务的车辆,将其由当前位置调至任务起始点;
实施例中本步骤中的染色体为[0.1,0.4,0.3],分别对应于任务1,2和3经过归并排序后得到[0.1,0.3,0.4],所以得到的任务序列为任务1,任务3,任务2。
步骤4.2:将步骤1中获取的地图生成的邻接矩阵,选择出与小车Cn所在的当前节点相连接的所有节点,形成下一节点集合Q={q1,q2,…,qd,…qα},其中n代表小车的编号,qd为编号为d的下一个节点;遍历集合Q中的所有节点,判断当前节点的小车Cn从该节点行驶到下一个节点qd的时间,以及小车行驶出下一个节点qd的时间是否在该节点的空闲时间窗的空闲时间范围之内;若是则代表小车能通过下一个节点qd,将该节点的空闲时间窗保存至候选时间窗组H1内,若否则代表小车不能通过该节点;
步骤4.3:获取历史数据库中当前节点的空闲时间窗和候选时间窗组内下一个节点qα的空闲时间窗被相同车辆占用的时间t1和t2,若历史数据库中不存在该数据则不发生碰撞,则继续查看下一个候选时间窗;若历史数据库中存在该数据则将小车Cn在当前节点空闲时间窗和下一个节点qd的空闲时间窗的占用时间t3和t4与t1和t2进行比较,若产生了追击碰撞或相向碰撞则将下一个节点qα的空闲时间窗从候选时间窗组H1内删除;重复本步骤遍历候选时间窗组H1内的所有空闲时间窗,得到候选时间窗组H2;所述追击碰撞为t3>t1且t4<t2或者t3<t1且t4<t2则表示两个小车产生了追击碰撞,所述相向碰撞为t3<t2<t4且t2<t1则表明小车在反向行驶且会造成相向碰撞;
步骤4.4:在历史数据库中查询当前节点是否存在下一个空闲时间窗,若否则执行步骤4.5;若是,则说明当前节点在小车Cn占用时间到下一个该节点的空闲时间窗所处时间之间有其他小车经过当前节点,则小车Cn将判断与当前节点相连接的路径上且由当前时间至当前节点的下一个空闲时间窗开启时间内是否存在无车辆的空路径,若是则将该空闲时间窗储存至候选时间窗组H2内,小车Cn到达下一节点qd的时间设置为下一时间窗的开启时间,并且在下一节点qd的空闲时间窗内存入避让的路径;若否则说明无法避让,执行步骤4.5;
步骤4.5:将候选时间窗组H2内小车Cn在当前节点空闲时间窗到达下一节点空闲时间窗用时最短的节点添加到确定时间窗组中;并将该节点在候选时间窗组H2内删除;
步骤4.6:将小车移动到用时最短的下一节点,重复步骤4.2至步骤4.5,直到小车Cn的终止节点的时间窗被加入到确定时间窗组里,结束循环,得到了一个时间窗路径,以此时间窗路径为常规路径;
步骤4.7:按照步骤4.1中得到的当前染色体中任务的先后顺序,重复步骤4.2至步骤4.6遍历所有任务,得到序列路径规划集合x;
步骤4.8:遍历染色体组M中的每一个染色体个体,重复步骤4.1至4.7,将所有的序列路径规划集合储存至总路径集合U中,U={x1、x2、…、xm},其中m为序列路径规划集合的编号;
步骤5:为了避免小车最终停靠在仓库主要干道上阻挡行车,也为了能让小车充电维修等,地图的边缘地带设置有一部分的缓冲区供其停靠。当小车完成任务之后,执行步骤4.2到4.6将其规划到缓冲区中,将其规划到缓冲区中,根据先后到达的时间顺序,将小车引导入不同深度的区域。缓冲区也与地图一样,是由一些节点连接而成的单向行驶的图,所述缓冲区的两个点连接着地图作为进出点。
步骤6:将每辆小车的运行距离的倒数之和设置为该染色体个体的适应度;判断是否进化次数达到人为设定的最小进化次数且适应度稳定不变或者进化次数到达人为设定的最大进化次数,若是则跳出循环,选取当前染色体组中的适应度最高的个体的任务分配方式以及小车的路径规划作为输出逇路径规划方案;若否则根据其适应度的大小比例,让染色体组Q中的所有染色体个体占有0到1之间的一块数段,随机数生成0到1之间的数,根据其所在数段,留下与其数段相对应的染色体,以此重复选择K次,其中K代表染色体组Q中的染色体总数,留下非重复的个体组成新的染色体组,从而淘汰掉适应度低下的个体,并且选取出适应度最大的优秀个体作为精英个体加入到染色体组中,组成迭代染色体组
Figure BDA0002038349350000071
其中σ为迭代次数;执行步骤3。
如图2所示,所述线状的双向行驶干道只能运行一辆小车通行,在干道上设有节点,节点表示收接货区域,小车可以在其区域停顿一段时间来交接货物;当节点是横纵两条干道交叉而得到的时候,节点则表示为十字路口,小车需要在该点停顿一段时间表示穿越过程。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。

Claims (3)

1.一种基于遗传算法的多智能车避撞路径规划的方法,其特征在于:包括如下步骤:
步骤1:获取小车行驶的地图、任务数量、以及人为设定小车的数量、小车的初始位置和小车速度的最大值,将地图转化为邻接矩阵;所述地图为线状的双向行驶干道,在地图上设有缓冲区并且在每条干道上都设有n个节点;每个节点包括占用时间窗和空闲时间窗,占用时间窗表示为在一段时间内该节点被某一辆小车所占用,占用时间窗组包括所有节点的占用时间窗;空闲时间窗表示在某一段时间内该节点未被小车占用,空闲时间窗组包括所有节点的空闲时间窗;所述任务由地图上的一个起始节点和一个终止节点所组成;
步骤2:根据遗传方法,依照得到的任务数量建立对应的染色体组;采用Java自带的随机数工具类,生成一个长度为任务数量的,每个位置为0到1之间的随机数的数组,以此作为用于分配任务的染色体;根据人为设定的初始染色体数量,随机生成该数量的染色体,组成染色体组Q;
步骤3:对产生的染色体组的个体进行交叉和变异处理,得到新的染色体组M;交叉处理采用的是基本的两点交叉法,根据交叉率在染色体组中选择任意的两个染色体对其中一个位置进行截断,然后两个数组进行交叉交换,生成新的两个个体;所述交叉率是每一次交叉都将随机生成0-1的随机数作为交叉率;所述变异是对所有新生成的染色体生成0到1的随机数,达到变异率的数组再随机生成新的染色体;所述染色体组M由染色体组Q内的所有染色体和经过交叉和变异后的新生成的染色体组成;
步骤4:对染色体组M中的每一个染色体个体进行如下操作:对染色体采用归并排序,得到一个任务序列;对于每一个任务,根据当前车辆最早开始任务的时间,选出最早能执行任务的车辆进行避撞路径规划,按照任务顺序将当前数组中所有任务都进行避撞路径规划,规划每一个小车从起始点到终止点的路径,根据迪杰斯特拉方法对每一个点到点的路径进行规划,得到小车的常规路径,在每一条路径规划之后,将路径规划过程中的所有数据储存至历史数据库中,最终得到序列路径规划集合x,遍历染色体组M中的每一个染色体个体,得到总路径集合U={x1、x2、…、xm},其中m代表序列路径规划集合的编号;
步骤5:当小车完成任务之后,需要回到缓冲区等待下一次任务,执行步骤4将小车规划到缓冲区中,根据小车先后到达的时间顺序,将它们引导进入不同深度的区域;所述缓冲区的两个点连接着地图作为进出点;
步骤6:将每辆小车的运行距离的倒数之和设置为该染色体个体的适应度;判断是否进化次数达到人为设定的最小进化次数且适应度稳定不变或者进化次数到达人为设定的最大进化次数,若是,则跳出循环,选取当前染色体组中的适应度最高的个体的任务分配方式以及小车的路径规划作为输出逇路径规划方案;若否,则根据其适应度的大小比例,让染色体组Q中的所有染色体个体占有0到1之间的一块数段,随机数生成0到1之间的数,根据其所在数段,留下与其数段相对应的染色体,以此重复选择K次,其中K代表染色体组Q中的染色体总数,留下非重复的个体组成新的染色体组,从而淘汰掉适应度低下的个体,并且选取出适应度最大的优秀个体作为精英个体加入到染色体组中,组成迭代染色体组
Figure FDA0003904705160000021
其中σ为迭代次数;执行步骤3。
2.根据权利要求1所述的一种基于遗传算法的多智能车避撞路径规划的方法,其特征在于:所述步骤4的具体步骤如下:
步骤4.1:在染色体组M中随机选择一个染色体将其进行归并排序,得到一个任务序列,根据任务序列中最早执行的任务时间,在缓冲区内选择能够最早执行任务的车辆,将其由当前位置调至任务起始点;
步骤4.2:将步骤1中获取的地图生成的邻接矩阵,选择出与小车Cn所在的当前节点相连接的所有节点,形成下一节点集合Q={q1,q2,…,qd,…qα},其中n代表小车的编号,qd为编号为d的下一个节点;遍历集合Q中的所有节点,判断当前节点的小车Cn从该节点行驶到下一个节点qd的时间,以及小车行驶出下一个节点qd的时间是否在该节点的空闲时间窗的空闲时间范围之内;若是则代表小车能通过下一个节点qd,将该节点的空闲时间窗保存至候选时间窗组H1内,若否则代表小车不能通过该节点;
步骤4.3:获取历史数据库中当前节点的空闲时间窗和候选时间窗组内下一个节点qα的空闲时间窗被相同车辆占用的时间t1和t2,若历史数据库中不存在该数据则不发生碰撞,则继续查看候选时间窗组H1内的下一个候选时间窗;若历史数据库中存在该数据则将小车Cn在当前节点空闲时间窗和下一个节点qd的空闲时间窗的占用时间t3和t4与t1和t2进行比较,若产生了追击碰撞或相向碰撞则将下一个节点qα的空闲时间窗从候选时间窗组H1内删除;重复本步骤遍历候选时间窗组H1内的所有空闲时间窗,得到候选时间窗组H2;所述追击碰撞为t3>t1且t4<t2或者t3<t1且t4<t2则表示两个小车产生了追击碰撞,所述相向碰撞为t3<t2<t4且t2<t1则表明小车在反向行驶且会造成相向碰撞;
步骤4.4:在历史数据库中查询当前节点是否存在下一个空闲时间窗,若否则执行步骤4.5;若是,则说明当前节点在小车Cn占用时间到下一个该节点的空闲时间窗所处时间之间有其他小车经过当前节点,则小车Cn将判断与当前节点相连接的路径上且由当前时间至当前节点的下一个空闲时间窗开启时间内是否存在无车辆的空路径,若是则将该空闲时间窗储存至候选时间窗组H2内,小车Cn到达下一节点qd的时间设置为下一时间窗的开启时间,并且在下一节点qd的空闲时间窗内存入避让的路径;若否则说明无法避让,执行步骤4.5;
步骤4.5:将候选时间窗组H2内小车Cn在当前节点空闲时间窗到达下一节点空闲时间窗用时最短的节点添加到确定时间窗组中;并将该节点在候选时间窗组H2内删除;
步骤4.6:将小车移动到用时最短的下一节点,重复步骤4.2至步骤4.5,直到小车Cn的终止节点的时间窗被加入到确定时间窗组里,结束循环,得到了一个时间窗路径,以此时间窗路径为常规路径;
步骤4.7:按照步骤4.1中得到的当前染色体中任务的先后顺序,重复步骤4.2至步骤4.6遍历所有任务,得到序列路径规划集合x;
步骤4.8:遍历染色体组M中的每一个染色体个体,重复步骤4.1至4.7,将所有的序列路径规划集合储存至总路径集合U中,U={x1、x2、…、xm},其中m为序列路径规划集合的编号。
3.根据权利要求1所述的一种基于遗传算法的多智能车避撞路径规划的方法,其特征在于:所述步骤1中线状的双向行驶干道只能运行一辆小车通行,在干道上设有节点,节点表示收接货区域,小车可以在其区域停顿一段时间来交接货物;当节点是横纵两条干道交叉而得到的时候,节点则表示为十字路口,小车需要在该点停顿一段时间表示穿越过程。
CN201910333273.0A 2019-04-24 2019-04-24 一种基于遗传算法的多智能车避撞路径规划的方法 Active CN110108290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910333273.0A CN110108290B (zh) 2019-04-24 2019-04-24 一种基于遗传算法的多智能车避撞路径规划的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910333273.0A CN110108290B (zh) 2019-04-24 2019-04-24 一种基于遗传算法的多智能车避撞路径规划的方法

Publications (2)

Publication Number Publication Date
CN110108290A CN110108290A (zh) 2019-08-09
CN110108290B true CN110108290B (zh) 2023-01-31

Family

ID=67486456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910333273.0A Active CN110108290B (zh) 2019-04-24 2019-04-24 一种基于遗传算法的多智能车避撞路径规划的方法

Country Status (1)

Country Link
CN (1) CN110108290B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471417B (zh) * 2019-08-22 2021-08-24 东北大学 一种基于负载均衡的多agv避碰方法
CN113128919A (zh) * 2019-12-30 2021-07-16 北京宝沃汽车股份有限公司 车联网服务平台、车辆的物流服务处理方法、装置和系统
CN113592158B (zh) * 2021-07-13 2024-03-22 华中科技大学 多agv路径规划和多agv智能生产线中agv与机器联合调度方法
CN116954179B (zh) * 2023-09-20 2023-12-22 无锡付平物流设备有限公司 一种仓储用自动搬运小车的控制方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324982A (zh) * 2013-06-07 2013-09-25 银江股份有限公司 一种基于遗传算法的路径规划方法
CN108762268A (zh) * 2018-05-29 2018-11-06 苏州极客嘉智能科技有限公司 多agv无碰撞路径规划算法
US10140875B1 (en) * 2017-05-27 2018-11-27 Hefei University Of Technology Method and apparatus for joint optimization of multi-UAV task assignment and path planning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324982A (zh) * 2013-06-07 2013-09-25 银江股份有限公司 一种基于遗传算法的路径规划方法
US10140875B1 (en) * 2017-05-27 2018-11-27 Hefei University Of Technology Method and apparatus for joint optimization of multi-UAV task assignment and path planning
CN108762268A (zh) * 2018-05-29 2018-11-06 苏州极客嘉智能科技有限公司 多agv无碰撞路径规划算法

Also Published As

Publication number Publication date
CN110108290A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
CN110108290B (zh) 一种基于遗传算法的多智能车避撞路径规划的方法
CN105354648B (zh) Agv调度管理的建模及其优化方法
CN110334838B (zh) 基于蚁群算法和遗传算法的agv小车协同调度方法及系统
Ma et al. Distribution path robust optimization of electric vehicle with multiple distribution centers
CN106041931B (zh) 一种多障碍空间多agv机器人协作防碰撞路径优化方法
CN110530369A (zh) 基于时间窗的agv任务调度方法
Cheikh-Graiet et al. A Tabu Search based metaheuristic for dynamic carpooling optimization
CN110471418A (zh) 智能停车场中的agv调度方法
Shui et al. A clonal selection algorithm for urban bus vehicle scheduling
CN110515380A (zh) 基于转弯权重约束的最短路径规划方法
Kala et al. Planning of multiple autonomous vehicles using rrt
CN109934388A (zh) 一种用于智能拣选优化系统
Fan et al. Time window based path planning of multi-AGVs in logistics center
CN115375184A (zh) 园区物流自动驾驶多车调度方法、装置、设备及存储介质
Hani et al. Simulation based optimization of a train maintenance facility
Choi et al. Reservation-based cooperative traffic management at an intersection of multi-lane roads
Shi et al. Task allocation and path planning of many robots with motion uncertainty in a warehouse environment
Alaia et al. Optimization of the multi-depot & multi-vehicle pickup and delivery problem with time windows using genetic algorithm
Solichudin et al. Conflict-free dynamic route multi-agv using dijkstra Floyd-warshall hybrid algorithm with time windows
Li et al. Simulation analysis of robotic mobile fulfilment system based on cellular automata
CN116882883A (zh) 一种利用大数据的电网物资配送路径规划方法
CN115638804B (zh) 一种无死锁的无人车辆在线路径规划方法
Bang et al. Re-Routing Strategy of Connected and Automated Vehicles Considering Coordination at Intersections
Wang et al. Simulation of multi-agent based cybernetic transportation system
US20220274590A1 (en) Transport planning system, transport planning method and program

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