CN108470238B - 基于图论km匹配算法的agv自动调度方法 - Google Patents

基于图论km匹配算法的agv自动调度方法 Download PDF

Info

Publication number
CN108470238B
CN108470238B CN201810151571.3A CN201810151571A CN108470238B CN 108470238 B CN108470238 B CN 108470238B CN 201810151571 A CN201810151571 A CN 201810151571A CN 108470238 B CN108470238 B CN 108470238B
Authority
CN
China
Prior art keywords
agv
scheduling
vehicle
task
charging
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
CN201810151571.3A
Other languages
English (en)
Other versions
CN108470238A (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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN201810151571.3A priority Critical patent/CN108470238B/zh
Publication of CN108470238A publication Critical patent/CN108470238A/zh
Application granted granted Critical
Publication of CN108470238B publication Critical patent/CN108470238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Manufacturing & Machinery (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明属于车辆调度技术领域,具体为一种基于图论KM匹配算法进行AGV自动调度的方法。对于车辆调度,将任务和车辆都抽象化为一个点,借用图论知识进行完全匹配,以提供一个有效的决策方案。在现有的AGV调度方面,存在着难以产生有效调度和调度效果不够理想的状况,当AGV和任务数量庞大时,算法的运算效率不够,以至于不能时时接收外界信息并产生结果。此外对于很多调度算法其调度结果运转周期效率往往不够高。本发明采用改进KM匹配算法,经过模拟测试,可以提供一种更高效的调度决策。

Description

基于图论KM匹配算法的AGV自动调度方法
技术领域
本发明属于车辆调度技术领域,具体涉及一种基于图论KM匹配算法进行AGV自动调度的方法。
背景技术
随着信息科学和网络技术的飞速发展,自动化越来越成为人类生活中不可或缺的一部分。而在物流产业方面,人们更是需要自动化车辆来完成一些特定任务,自动调度系统便应运而生。
二十一世纪,制造业将进入一个新阶段,敏捷制造将成为企业的主导模式,能否抓住市场机遇开发出新产品将是企业赢得竞争的主要手段,要减小生产成本对生产批量的依赖,就要发展敏捷制造装备。由于机器人具有自主规划、可编程、可协调作业和基于传感器控制等特点,它将成为可重组的敏捷制造生产装备及系统的重要组成部分,为传统制造企业向敏捷制造企业跨越发展提供重要的技术支持。自动导向小车((Automated GuidedVehicle,简称AGV)是移动机器人的一种,是现代制造企业物流系统中的重要设备,主要用来储运各类物料,为系统柔性化、集成化、高效运行提供了重要保证。
在产品生产的整个过程中,仅有5%的时间用于加工和制造,剩余的95%都用于储存、装卸、等待加工和运输。在美国,直接劳动成本所占比例不足生产成本的10%,且这一比例还在不断下降,而储存、运输所占的费用却占生产成本的40%。因此,目前世界各工业强国普遍把改造物流结构、降低物流成本作为企业在竞争中取胜的重要措施。自动导引小车AGV适应性好、柔性程度高、可靠性好、可实现生产和搬运功能的集成化和自动化,在各国的许多行业都得到广泛的应用。
发明内容
本发明目的在于为克服现有的AGV调度难以产生有效调度和调度效果不够理想的状况,提供一种完善性强、鲁棒性高的AGV自动调度方法。
本发明提供的AGV自动调度方法,是基于一种图论KM匹配算法的,首先,针对各种实际情况需要先进行数据转化,取一个时间窗口将传来的任务信息和AGV信息抽象成一个点;并对于特殊情况如车辆故障,出现在奇怪区域等进行排查报告。
本发明提供的基于图论KM匹配算法的AGV自动调度方法,首先需要构建充电调度模型,该充电调度模型如下:设有3个充电站、数个AGV,当AGV电量过低时调度AGV到充电站去进行充电;充电站用换电池方法进行充电,由于充电站数目有限,且不同充电站AGV充电方式有差异,需要合理安排AGV去充电站的数目和时间。
本发明方法在调度车辆充电时,需要考虑以下几个因素:(1)每辆车到达充电站的时间;(2)不同充电站的充电时间;(3)充电站已经在排队的车辆数目;(4)AGV当前电量。于是调度的内容包括车辆充电的次序和去哪个充电站充电,具体如下:
关于车辆充电的次序的调度,首先,对AGV进行分类,对AGV当前电量在60%以下,进行充电调度,对AGV当前电量在40%以下的,进行标记,这两个百分比值都可以调节;然后,将这些AGV筛选出来,按电量从低到高排序,并按照此顺序派去进行充电;其中,当前电量在40%以下的,充电最为优先,若无法充电,则暂时停靠原位或直接到充电站排队;对于40%-60%则看充电站空闲情况,进行预估型的充电,估计40%-60%电量的车有多少、将要进入40%的车辆有多少,然后派去充电。
例如,有六辆车电量分别为50%,70%,30%,60%,40%,45%。那么筛选出来形成列表30%,40%,45%,50%,60%。对于30%,40%会优先派去充电,派完之后再看充电站空闲情况,假若现在有30%和40%这两辆车,那么45%也会被派去充电,若充电站有排队,但是40%-60%车很多,那么40%车也会派去充电,不过会进行排队等待。
关于充电站的调度,具体做法是:在每个充电站形成一个列表,这个列表包含将要派去的AGV预计花费时间,并相应生成一个最后完成时间。随后,是每次派车去的时候,更新三个充电站的列表,修改这个列表中AGV到达序列,使得这个最后完成时间最小。在维护这一张表的时候进行如下操作。
(1)将某一AGV插入到表中,并调整整个列表使得该表完成时间最短,记录最短时间;
(2)比较同一AGV在不同充电站的最短时间,选取最短完成时间的充电站更新列表。
本发明涉及的图论KM匹配算法,即基础算法,其思想如下:
对于一个图,将其划分为A、B两组;对于A、B两组,本组内成员之间没有连线,但一组的某个成员与另一组的所有成员之间都有连线,也即二分图,如附图1所示。两组中,一组用灰色圆点表示,另一组用黑色圆点表示,将这个图跟实际项目进行对应。不妨将黑色圆点视为一个任务,灰色原圆点视为AGV车辆。这样黑点与灰点之间的连线可赋予一个权值,这个权值即对应于该车辆完成该任务的时间花费,也即采用时间矩阵中的值。
在该模型下,问题就变为求一个完全匹配且权值和最小的问题,这个问题与求权值和最大是一个对偶问题。因为用一个较大值减去每个边上的权值,求最大变化为了求最小,因此两者算法对应。现在描述求这个最大权值和的算法,为方便说明,示例图取如附图2所示:
黑色点对应任务,灰色点对应AGV,从左到右依次记为1,2,3。边上的值对应为权值(记为weight(i,j)),然后给每个圆点赋予一个顶标值。在开始阶段将黑色圆点的顶标值(记为lx(i))记录与这个圆点所连边中的最大权值。如左图则从左至右依次为:20,27,30。然后将灰色圆点的顶标值(记为ly(j))全部赋值为0。然后开始从黑色圆点遍历计算一下过程:
(1)依次选取一个黑色顶点i;
(2)遍历灰色顶点,对每个没有匹配的顶点j计算是否有lx(i)+ly(j)=weight(i,j),若是则将两个边标记为一个匹配组(也即AGV j发车给任务i),同时回到第1步选下一个点。
若不是,前往下一个灰色点;
(3)若在步骤(2)中没有一个灰色点匹配上则进行松弛操作,操作过程为:计算黑色顶点i与未标记匹配的灰色顶点j中,定标和与边权差的最小值。即:slack={lx(i)+ly(j)-weight(i,j)}j∈灰色未匹配点;
(4)对所有已匹配的黑点减去slack值,所有已标记灰色点加上slack值。
显然,经过以上步骤在图中黑点大于灰点个数时必然可以选出一组匹配。但其本身并不是最优的,如图中数据则选出匹配(1,3)(2,1)(3,2),其本质上为一种贪心算法,每次都选最近的车辆即可。但该算法具有启发性,例如对于slack的计算可以使得该图中匹配更加合理。下面说明对其的改动以及对于项目做的调整。
因为要求是选取AGV发车给对应任务,并要求在任务开始时间之前到达。这意味着在图中并不是所有线都存在,对于无法到达该任务的AGV其连线权值可设为-1,标记其为不可到达。于是对应的图如附图3所示。
显然原算法并不可行,例如黑色点2只能匹配灰色点3。但在上述算法中灰点3会被黑点1抢去,这样黑点2反而没有车了。所以对应算法改为:
(1)依次选取一个黑色顶点i。
(2)遍历灰色顶点,对每个没有匹配的顶点j,计算是否有lx(i)+ly(j)=weight(i,j),若有,则将两个边标记为一个匹配组(也即AGV j发车给任务i),同时回到第1步选下一个黑点。若不是,前往下一个灰色点。
(3)若在步骤(2)中没有一个灰色点匹配上,则开始遍历已标记的灰色顶点,同样计算是否有lx(i)+ly(j)=weight(i,j),若有,则回溯到该灰色顶点匹配的黑色顶点上,重新计算步骤(2),若计算返回这个已匹配顶点有新的顶点,则修改匹配结果。若没有,则进入步骤(4)。这过程类似于深度优先搜索。
(4)若在步骤(3)中没有一个灰色点匹配上,则进行松弛操作,操作过程为:计算所有已标记黑色顶点i与未标记匹配的灰色顶点j中,定标和与边权差的最小值,即:slack={lx(i)+ly(j)-weight(i,j)}i∈黑色已匹配点j∈灰色未匹配点。
(5)对所有已匹配的黑点减去slack值,所有已标记灰色点加上slack值。
这是本发明的核心调度算法。
下面通过例子给出演算过程:
黑1运算完之后得到匹配(黑1,灰3)。然后进入黑2,满足条件的灰3已被标记。回溯找不到新的匹配,于是进行松弛操作得到最小松弛为5。修改顶标得到lx(1)=15,lx(2)=22,lx(3)=30,ly(1)=0,ly(2)=0,ly(3)=5.这样再运行一遍可发现有匹配(黑1,灰1),这样便可以修改产生对应匹配(黑2,灰3)。对于黑3,满足条件的灰1已匹配。回溯也找不到新的匹配进行松弛操作得到最小松弛为10,于是修改定标得到匹配(黑3,灰2)。算法结束产生调度匹配。
此外,如果任务可能是分组聚集的,即任务分两部分,每部分都只有对应的一部分车可以抵达。相当于在地图上某一个区域有一堆任务,对应于附图4所示:
这样在两个区域不连通,在算法中就需要对松弛量再进行更改,即对于松弛量的选取第(3)步中,深度优先搜索过的点进松弛量计算,计算方法按步骤(4)中方法进行。
此外,对于重车预调度,只要将预计花费时间加入到边权值中也可产生,所以该算法包含了重车预调度的处理。
另外,对于一些特殊情形,对调度算法要作一些调整,例如:
1、延误车辆
根据核心算法,实际上无法处理一种特殊情况。即延误类任务的调度,延误的任务因为已经晚于应完成时间,所以没有任务车辆可以完成该任务。而该情况也较为频繁出现,反映在图中即该任务(黑点)没有AGV(灰点)与之相连,这样算法自然给不出匹配结果。所以需要别的算法来处理延误车调度。
其一,为贪心算法:遍历所有任务看是否有任务延迟,若有,则选一个最近的车辆发车。
其二,为用上面说过的基础算法:先将所有延误任务选出,只按照时间矩阵的值给予边权值,而不考虑能否按时抵达,再用基础算法(可稍作修改)选出一个最小权值的AGV并发车,这时,在基础算法中,在数据转化成图论模型时将所有能抵达AGV都考虑在内,即图中边权不再为-1。这样局部更优化一些。
贪心算法是必要的,需用于处理延误调度,并主要针对order延误的任务,其优先级要求较高。修改过基础调度算法也需要用,主要针对一般延误的任务,将其综合考虑调度使用。
2、桥吊下空车调度
根据要求,在桥吊下刚卸下货物的空车可以调度到同一组中卸船桥吊下接一个任务。其主要情况如下:
假设灰色为装船任务开始时间,黑色为卸船任务开始时间。对于一个刚装完船的AGV,其结束时间未定,所以不能先给其指派旁边的卸船任务。但是当其结束后,旁边的卸船任务可能早已有匹配,亦或是下一个任务时间比较远,这时候上述算法并不会安排AGV去接这个任务。所以需要特殊处理:若该桥吊目前在做卸船任务且离该AGV不会越过太多桥吊,则将该AGV空车调度至该桥吊下做接下来的卸船任务。
3、空车调度
随着任务的进行车辆可能会聚集,也会停到不合适的地方,所以设计了一定的空车调度。空车调度是基于统计处理的,统计为按区域计算,记录的数值为一个区域内将来任务的数量,以及目前在此处的AGV数量。此外加上每一辆车到达任务的时间作为判据,根据差值,如果绝大部分时间较长超过一定比例,则认为该车偏远,需要进行空车调度到一个任务多的区域。空车调度可将偏远车辆复用,有效提高AGV效率,不用再调度偏远车辆作为急需。
发车逻辑控制:
上面算法部分实际只给出了匹配的结果,在算法运行时观察觉得这样调度较好,但实际发车可能是另一种情况。目前设计为发车逻辑控制,拿到上面产生的匹配结果后,决定现在时刻是否发车。发车的基本思路是:最晚发车,使其抵达时与任务开始时间越近越好,AGV的等待时间就稍微长一点。
目前根据产生的不同匹配结果,给予不同的调度:
(1)空车,有匹配任务,当前位置可停。标准发车,提前5s发车;
(2)空车,有匹配任务,当前位置不可停。提前15s发车,若未到,则拉去附近的PB暂停;
(3)重车,有匹配任务。重车预调度,提前15s给出指示;
(4)空车,无匹配任务,即可发车。
整个过程由上述各个部分联合处理,最后交由发车逻辑提将其转化为一个合理的调度方案。
该模型已在洋山港四期AGV自动调度中运行,周转率在每小时2.5到3左右。相对于传统人工码头以及预期的周转率每小时5仍有很大差异。但是相对于其他自动码头的调度效率如青岛码头,效率约在1,2左右已有很大提升。而且原始算法无法完成大规模调度,当AGV超过一定数量时,算法运行效率大幅度下降以至于无法完成任务。而该算法在50辆车左右时效率不会有太大影响,效果稳定。
本发明克服了现有的AGV调度难以产生有效调度和调度效果不够理想的状况,完善性强、鲁棒性高,可广泛适用于各种车辆运输调度。
附图说明
图1为图论模型示例。
图2为KM算法图例。
图3为本专利使用算法图例。
图4为分组聚集图例。
图5为桥吊下调度图例。
具体实施方式
Windows,linux平台,程序为java语言实现,数据传输用json格式。一下为一些实验数据结果。
首先用json传入任务状况,AGV状况和充电站状况。而时间以矩阵形式保存,为了便于动态更新存放在内存中以便于修改。所以算法要先将任务和AGV数据的格式进行转化:在我们的实验中使用寄送。
AGVID现在位置锁死状态运行状态位置电量。
801 PB314 0 FREE null PB314 34
802 PB316 0 FREE null PB316 84
803 PB308 0 FREE null PB308 84
804 PB291 1 DISPATCH null PB291 84
805 38CW054 1 DISPATCH null 38CW054 34
806 PB318 0 FREE null PB318 84
807 38CW042 1 DISPATCH null 38CW042 84
808 PB299 0 FREE null PB299 84
809 PB301 0 FREE null PB301 84
810 PB303 0 FREE null PB303 84
811 PB305 0 FREE null PB305 84
812 PB307 0 FREE null PB307 84
813 PB309 0 FREE null PB309 84
814 PB311 0 FREE null PB311 84
843 PB369 0 FREE null PB369 34
将任务在桥吊上形成列表,该数据转化主要是方便为后面算法提供一个优先级顺序服务:如
123 5 50 null null 0 true null null null
ID 优先级 需要完成时间 秒数表示 是否已经派车 类型 起始位置
35090538 5 2017-06-06 13:00:13 1496725213 true LOAD 38CW026 38CW026
35090539 6 2017-06-06 13:00:33 1496725233 true LOAD 38CW026 38CW026
0 null null 0 true null null null
35090545 10 2017-06-06 12:59:14 1496725154 true LOAD 38CW026 38CW026
35090546 11 2017-06-06 12:59:34 1496725174 false LOAD 38CW026 38CW026
35090547 12 2017-06-06 12:59:54 1496725194 false LOAD 38CW026 38CW026
第一行表示桥吊名称,上行道口数为5,下行道口数也为5。
然后算法按顺序进行,对于没有电的车先进行充电调度,然后锁定这些要去充电的AGV。
根据AGV充电模型,可有如下实例模型。
AGV BES1(15) BES2(10) BES3(10)
1 10 30 30
2 20 15 15
3 50 10 10
4 15 20 20
假设有三个要充电的AGV,上表是AGV到充电站的花费时间。假设BES2、BES3为同一个充电站的不同交换区,括号内数字为充电时间,那么一开始AGV1会排到BES1,这样整个充电站列表中最后完成充电时间是25。然后看AGV2,若AGV2去BES1因为AGV1已排到所以实际AGV2会在25开始充电、并在40时完成,所以AGV2会排到BES2,这样最后完成时间还是25。再看AGV3,若AGV3去BES2则AGV3会比AGV2先到,那么AGV2会排队,这样整体的充电时间会变成30,所以AGV3会去BES3,这样整体充电时间还是25。最后看AGV4,若AGV4去BES1那么整体的充电时间会变成40(25开始充电),去BES2会变成35(25开始充电),去BES3会变成30(20开始充电)。所以AGV4会去BES3,然后修改BES3充电的AGV列表,为后面的车做好准备。
再看桥吊下是否有桥吊间移动的调度,在这里并没有。然后再进行延误任务的调度处理,从时间上也可以看出有三个任务已经延误了。
[2017-06-06 13:30:10][INFO][agvdispatch:82][pool-1-thread-347]-BATTERYMATCH
BES数量:1BES1电池数:15AGV最大数:1AGV现有数:0
801 34
824 34
833 34
838 34
841 34
843 34
844 34
850 34
851 34
855 34
[2017-06-06 13:30:10] [INFO] [agvdispatch:94] [pool-1-thread-347]-STS桥吊组调度
[2017-06-06 13:30:10] [INFO] [agvdispatch:94] [pool-1-thread-347]-DelayDispatch
35090538 2017-06-06 13:00:13 38CW026 38CW026
35090539 2017-06-06 13:00:33 38CW026 38CW026
35090545 2017-06-06 12:59:14 38CW026 38CW026
然后其余车辆进入核心调度算法进行计算。
最后产生匹配与调度结果:
Match Result 2017-06-06 13:30:10
802 PB316 task:35090538 38CW026 40 2017-06-06 13:00:13 40 false
803 PB308 task:35090539 38CW026 40 2017-06-06 13:00:33 40 false
806 PB318 task:35090545 38CW026 40 2017-06-06 12:59:14 40 false
Dispatch Result
801 -1 -1 BES1 3
802 35090538 -1 null 1
803 35090539 -1 null 1
806 35090545 -1 null 1
其中MatchResult表示比配结果第一个为车辆ID802在PB316,匹配任务35090538,任务需求位置38CW026。预计花费时间40秒,任务要求完成时间为2017-06-06 13:00:1340。最后将该信息包装为发车信息即为Dispatch信息,以json列表的形式返回。
关于已有的算法部分,目前没有特定前例于是无法完成详细对比。不过该算法目前在洋山港四期运行,效果优良,根据统计有如下效率表。
1、靠泊时间02月04日14:30,离泊时间02月05日19:00。
2、每一个unit代表一关装或卸
桥吊号 作业关数 自然箱 计划要求(MPH) 效率(UNIT/H) 效率(MPH)
119 480 499 20 23.08 22.20
120 361 528 20 28.72 19.63
121 462 564 20 26.93 22.06
122 434 542 20 24.42 19.55
123 409 544 20 26.58 19.99
124 343 424 20 27.23 22.03
125 99 171 20 29.97 17.35
总计 2588 3272 20 26.20 20.72

Claims (6)

1.一种基于图论KM匹配算法的AGV自动调度方法,针对各种实际情况进行数据转化,取一个时间窗口将传来的任务信息和AGV信息抽象成一个点;
图论KM匹配算法中的充电调度模型如下:设有3个充电站、数个AGV,当AGV电量过低时调度AGV到充电站去进行充电;充电站用换电池方法进行充电,由于充电站数目有限,且不同充电站AGV充电方式有差异,需要合理安排AGV去充电站的数目和时间;
在调度车辆充电时,需要考虑以下因素:(1)每辆车到达充电站的时间;(2)不同充电站的充电时间;(3)充电站已经在排队的车辆数目;(4)AGV当前电量;于是调度的内容包括车辆充电的次序和去哪个充电站充电:
关于车辆充电的次序的调度,首先,对AGV进行分类,对AGV当前电量在60%以下,进行充电调度,对AGV当前电量在40%以下的,进行标记,这两个百分比值都可以调节;然后,将这些AGV筛选出来,按电量从低到高排序,并按照此顺序派去进行充电;其中,当前电量在40%以下的,充电最为优先,若无法充电,则暂时停靠原位或直接到充电站排队;对于40%-60%则看充电站空闲情况,进行预估型的充电,估计40%-60%电量的车有多少、将要进入40%的车辆有多少,然后派去充电;
关于充电站的调度,在每个充电站形成一个列表,这个列表包含将要派去的AGV预计花费时间,并相应生成一个最后完成时间;随后,是每次派车去的时候,更新三个充电站的列表,修改这个列表中AGV到达序列,使得这个最后完成时间最小;在维护这一张表的时候进行如下操作:
(1)将某一AGV插入到表中,并调整整个列表使得该表完成时间最短,记录最短时间;
(2)比较同一AGV在不同充电站的最短时间,选取最短完成时间的充电站更新列表:
对于一个图,将其划分为A、B两组;对于A、B两组,本组内成员之间没有连线,但一组的某个成员与另一组的所有成员之间都有连线,也即二分图;两组中,一组用灰色圆点表示,另一组用黑色圆点表示,将这个图跟实际项目进行对应;将黑色圆点视为一个任务,灰色原圆点视为AGV车辆;这样黑点与灰点之间的连线可赋予一个权值,这个权值即对应于该车辆完成该任务的时间花费,也即采用时间矩阵中的值;
在该模型下,问题就变为求一个完全匹配且权值和最小的问题,这个问题与求权值和最大是一个对偶问题;求最大权值和算法的具体步骤为:
黑色点对应任务,灰色点对应AGV,从左到右依次记为1,2,3,…,边上的值对应为权值,记为weight(i,j),然后给每个圆点赋予一个顶标值;在开始阶段将黑色圆点的顶标值,记为lx(i);记录与这个圆点所连边中的最大权值;然后将灰色圆点的顶标值,记为ly(j),全部赋值为0;然后开始从黑色圆点遍历计算一下过程:
(1)依次选取一个黑色顶点i;
(2)遍历灰色顶点,对每个没有匹配的顶点j,计算是否有lx(i)+ly(j)=weight(i,j),若是,则将两个边标记为一个匹配组,也即AGV j发车给任务i,同时回到第1步选下一个黑点;若不是,前往下一个灰色点;
(3)若在第(2)步中没有一个灰色点匹配上,则开始遍历已标记的灰色顶点,同样计算是否有lx(i)+ly(j)=weight(i,j),若是,则回溯到该灰色顶点匹配的黑色顶点上,重新计算步骤(2),若计算返回这个已匹配顶点有新的顶点,则修改匹配结果;若不是,则进入步骤(4);
(4)若在第(3)步中,没有一个灰色点匹配上,则进行松弛操作,操作过程为:计算所有已标记黑色顶点i与未标记匹配的灰色顶点j中,定标和与边权差的最小值,即:slack=*lx(i)+ly(j)-weight(i,j)+i∈黑色已匹配点j∈灰色未匹配点;
(5)对所有已匹配的黑点减去slack值,所有已标记灰色点加上slack值。
2.根据权利要求1所述的基于图论KM匹配算法的AGV自动调度方法,对于任务是分组聚集的,即任务分两部分,每部分都只有对应的一部分车可以抵达,相当于在地图上某一个区域有一堆任务,这样在两个区域不连通,此时,在算法中对松弛量进行更改,即对于松弛量的选取第(3)步中,深度优先搜索过的点进松弛量计算,计算方法按步骤(4)中方法进行。
3.根据权利要求1所述的基于图论KM匹配算法的AGV自动调度方法,其特征在于,对于延误车辆情况即延误类任务的调度,延误的任务因为已经晚于应完成时间,所以没有任务车辆可以完成该任务,反映在图中即该任务没有AGV与之相连,需要采用下述算法来处理延误车调度:
其一,为贪心算法:遍历所有任务看是否有任务延迟,若有延迟,则选一个最近的车辆发车;
其二,先将所有延误任务选出,只按照时间矩阵的值给予边权值,而不考虑能否按时抵达,再用基础算法选出一个最小权值的AGV并发车;
这里的贪心算法主要针对order延误的任务;修改过基础调度算法主要针对一般延误的任务,将其综合考虑调度使用。
4.根据权利要求1所述的基于图论KM匹配算法的AGV自动调度方法,其特征在于,对于桥吊下空车调度,根据要求,在桥吊下刚卸下货物的空车可以调度到同一组中卸船桥吊下接一个任务;则作如下处理:
若该桥吊目前在做卸船任务且离该AGV不会越过太多桥吊,则将该AGV空车调度至该桥吊下做接下来的卸船任务。
5.根据权利要求1所述的基于图论KM匹配算法的AGV自动调度方法,其特征在于,对于空车调度,主要针对随着任务的进行车辆可能会聚集,停到不合适地方的情形;空车调度是基于统计处理的,统计为按区域计算,记录的数值为一个区域内将来任务的数量,以及目前在此处的AGV数量;此外加上每一辆车到达任务的时间作为判据,根据差值,如果绝大部分时间较长超过一定比例,则认为该车偏远,需要进行空车调度到一个任务多的区域。
6.根据权利要求1-5之一所述的基于图论KM匹配算法的AGV自动调度方法,其特征在于,在产生匹配结果后,进一步进行发车逻辑控制,即根据产生的不同匹配结果,给予不同的调度:
(1)空车,有匹配任务,当前位置可停;标准发车,提前5s发车;
(2)空车,有匹配任务,当前位置不可停;提前15s发车,若未到,则拉去附近的PB暂停;
(3)重车,有匹配任务,重车预调度,提前15s给出指示;
(4)空车,无匹配任务,即可发车。
CN201810151571.3A 2018-02-14 2018-02-14 基于图论km匹配算法的agv自动调度方法 Active CN108470238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810151571.3A CN108470238B (zh) 2018-02-14 2018-02-14 基于图论km匹配算法的agv自动调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810151571.3A CN108470238B (zh) 2018-02-14 2018-02-14 基于图论km匹配算法的agv自动调度方法

Publications (2)

Publication Number Publication Date
CN108470238A CN108470238A (zh) 2018-08-31
CN108470238B true CN108470238B (zh) 2021-08-20

Family

ID=63266342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810151571.3A Active CN108470238B (zh) 2018-02-14 2018-02-14 基于图论km匹配算法的agv自动调度方法

Country Status (1)

Country Link
CN (1) CN108470238B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11584252B2 (en) * 2019-08-14 2023-02-21 Honda Motor Co., Ltd. Systems and methods for chaining data between electric vehicles and electric vehicle stations
CN112498131B (zh) * 2019-09-16 2023-06-30 北京京东乾石科技有限公司 自动导引运输车的智能充电方法、装置、电子设备及介质
CN112529237B (zh) * 2019-09-19 2024-06-18 北京京东乾石科技有限公司 调度系统设置方法及装置、调度方法及装置、介质、设备
CN112214024B (zh) * 2020-10-20 2022-11-25 浙江迈睿机器人有限公司 一种agv任务分配方法、物流分拣方法及系统
CN112232711B (zh) * 2020-11-11 2022-10-21 北京理工大学 一种针对侦察任务的多同构无人车分布式任务分配方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103489082A (zh) * 2013-05-27 2014-01-01 浙江工业大学 一种基于gis富网络属性路网的大规模分类配送方法
US20150206267A1 (en) * 2014-01-22 2015-07-23 Jahan Khanna Systems and methods for providing a transportation marketplace
US20150221048A1 (en) * 2014-02-06 2015-08-06 Frederic Zenhausern Method and system for matching a gear and travel storage for processing a transaction in an on-demand service system
CN105046356B (zh) * 2015-07-13 2019-01-29 武汉大学 一种电动汽车续航里程优化装置及方法
CN105322559B (zh) * 2015-11-11 2017-07-28 重庆大学 一种基于v2g技术的电动汽车配电调度控制方法
CN107203190B (zh) * 2017-05-18 2019-12-13 广州智能装备研究院有限公司 一种基于复杂路径的惯性导航agv调度方法及系统

Also Published As

Publication number Publication date
CN108470238A (zh) 2018-08-31

Similar Documents

Publication Publication Date Title
CN108470238B (zh) 基于图论km匹配算法的agv自动调度方法
CN114023094B (zh) 一种码头车辆调度系统、方法、设备和介质
CN111612234B (zh) 一种集装箱码头水平运输可视化系统
US20120226624A1 (en) Optimization system of smart logistics network
CN111882215B (zh) 一种含有agv的个性化定制柔性作业车间调度方法
CN111091238A (zh) 一种自动化集装箱码头agv智能化调度方法
CN113919543B (zh) 一种基于5g物联网的agv调度路径优化方法
CN110414895A (zh) 车辆调度系统及方法
CN108985497B (zh) 一种智能运输车数量及充电桩数量的规划方法及系统
CN112036756A (zh) 一种双负载多agv调度方法
Hu et al. Multi-AGV dispatching and routing problem based on a three-stage decomposition method
CN110942203A (zh) 一种自动化集装箱码头agv路径优化方法
CN116605574B (zh) 大规模机器人拣选系统参数配置和协同调度平台
CN111563672A (zh) 一种多载agv数量配置方法
CN116090799A (zh) 一种针对复杂散粮作业的码头生产调度方法及系统
Song et al. Novel AGV resilient scheduling for automated container terminals considering charging strategy
CN113065816A (zh) 一种自动生成运输任务的无人调度运输控制方法及系统
CN113743739B (zh) 一种基于混合整数规划、组合优化算法的agv调度方法
Zhong et al. Real-time multi-resource jointed scheduling of container terminals with uncertainties using a reinforcement learning approach
CN111222785A (zh) 精密铜管制造物流系统和执行方法
Han et al. An Improved Artificial Bee Colony Algorithm to Port L-AGV Scheduling Problems
Zakrzewski et al. Changes in logistics processes caused by the implementation of automation in transport
JP7302536B2 (ja) 倉庫設備の制御システム及び制御方法
Sadeghian et al. Integrated scheduling of quay cranes and automated lifting vehicles in automated container terminal with unlimited buffer space
CN113869819A (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