首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于Multi-Paxos的无人车物流任务分配方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:南京邮电大学

摘要:本发明公开了基于Multi‑Paxos的无人车物流任务分配方法,具体包括以下步骤:步骤一:构建两层次物流物理模型和三阶段任务状态模型,形成同城物流运输的具体场景;步骤二:无人车利用Multi‑paxos选举算法对任务进行竞选;步骤三:无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列。本发明利用Multi‑Paxos选举算法进行任务分配,分支限界法进行任务点序列的确定,在控制去中心化物流运输系统场景上,更加适用于当今例如外卖等的同城物流模式,实现更加高效的动态无人车任务分配,创造更短的平均任务完成时间和更加稳健的调度系统。

主权项:1.基于Multi-Paxos的无人车物流任务分配方法,其特征在于:具体包括以下步骤:步骤一:构建两层次物流物理模型和三阶段任务状态模型,形成同城物流运输的具体场景;其中,物流物理模型构建及信息初始化的具体步骤如下:基于地理区域依据实际需要划分多个单元,每个单元内设置一个集中站和多台无人小车;集中站主要负责小车的能量供给和维护,跨单元任务的中转和暂存,所属单元的信息收集、总结和递交;无人小车只负责任务的竞选,任务点序列确定和执行;步骤1.1:集中站信息初始化Concentratorid,i,n,Nmax,其中Concentrator.id是集中站地理位置信息,Concentrator.i是未处理的进站跨单元任务数,Concentrator.n是集中站暂放的包括Concentrator.i的任务数,Concentrator.Nmax为集中站最大负荷存储量;当Concentrator.n接近Concentrator.Nmax时向监视平台发送预警信息;步骤1.2:由每个集中站负责该区域订单的收集以及该单元订单库即任务库的生成变动和管理;任务库MissionBasenum,t,n,list[].其中MissionBase.num是任务库编号,MissionBase.t是任务库所限时间线,MissionBase.n是任务库中任务数,MissionBase.list[]是任务库中依据任务发布时间排序并且从其他单元运转来的跨单元任务包同样遵守该规则的任务序列;任务库根据时间段进行更替,当MissionBase.n=0时,MissionBase.t以时间间隔MissionBase.TInterval进行后移,直至MissionBase.t大于等于当前时;只有在MissionBase.t之前发布的任务才能进入任务库被分配,也即只有前一个时间段的任务全部被分配执行,后一个时间段的任务才能进入被分配就绪状态;在进站任务流较大时段,MissionBase.t可能早于当前时间;在进站任务流较小时段,MissionBase.t可能迟于当前时间,则进库任务会实时更新;步骤1.3:无人小车任务初始化AGVnum,type,id,f,situation,n.其中AGV.num是小车编号,AGV.type是小车种类,AGV.id是小车地理位置信息,AGV.f是小车剩余燃料量,AGV.situation是小车当前状态,AGV.n是小车执行的任务包数;当AGV.type=1时,无人车为一般型,正常参与任务分配;当AGV.type=2和AGV.type=3时,无人车分别为急速型和超大负荷型,分别只运输标有加急件和重大件标识的任务包,由于该两种任务包相对于一般任务包的比例极小,且其分别的时效性和体积质量较大的特点,两种车型均采用一次一任务包的规则;当小车没有竞争任务包处于空闲状态时,AGV.situation=0;当小车在执行任务包时,AGV.situation=1;当小车正在竞争任务包时,AGV.situation=2;当小车处于维护无法工作状态时,AGV.situation=3,小车只有在所竞选得的任务消耗总和逼近AGV.f或者已竞选完任务库中的任务包的情况下,才会去执行任务;步骤1.4:不同单元间跨单元任务则采用一辆或多辆大型无人车轮询各单元集中站的方式进行运输;其中,三阶段任务状态模型构建以及任务信息初始化的具体步骤如下:步骤2.1:任务信息初始化Missionnum,,type,t,src,dst,src’,dst’,f,situation,step,chosen,其中Mission.num为任务编号,Mission.type为任务种类,Mission.t为任务发起时间,Mission.src和Mission.dst分别为任务的真实源地址和目的地址,Mission.src’和Mission.dst’分别为任务在源单元内时或目的单元内时的单元内源地址和目的地址,在单元间运输时则是源单元集中站地址和目的单元集中站地址,Mission.f为任务单元内运输时预估消耗小车能量,Mission.stiuation为任务包所处状态,Mission.step为任务包运输所属阶段,Mission.chosen为被分配无人小车编号;任务包对应无人车类型分为三种类型,Mission.type=1时,为一般型,需进入任务库参与分配;Mission.type=2和Mission.type=3是分别为加急型和超大型,不参与分配,直接进入各自的序列,依据Mission.t分配给空闲的所属车型的无人车;步骤2.2:三阶段模型的构建:针对跨单元的任务,当Mission.step=1时,任务包处在源单元内,Mission.src’=Mission.src,Mission.dst’=源单元集中站;当Mission.step=2时,任务包处在单元间运输;当Mission.step=3时,任务包处在目的单元内,Mission.src’=目的单元集中站,Mission.dst’=Mission.dst;针对非跨单元任务,Mission.step=0一直恒定;Mission.step,Mission.src’,Mission.dst’分别由源单元和目的单元集中站进行更改;Mission.situation=1为任务包在源地址未被获取,Mission.situation=2为任务包正在运输状态,Mission.situation=3为任务包已到达目的地址;步骤二:无人车利用Multi-paxos选举算法对任务进行竞选;其中,无人车利用Multi-paxos对任务进行竞选的具体步骤如下:步骤3.1:当一辆无人车执行完所选的所有任务后,AGV.f低于最低限度值则进入维护状态,否则进入空闲状态;在空闲状态下更新任务库,若任务库为空,则继续监听,否则进入竞选任务包状态;依据Mission.t为优先权对Mission.fAGV.f的逾早发布的任务进行选择;步骤3.2:对任务库中的某一个任务的竞选过程进行时间轴纵向分析,即单个paxos过程,具体包括:步骤3.2.1:欲选择该任务的无人小车Proposer,向该单元内超过半数的其他无人小车的多数派小车和集中站发送提议Proposal请求PrepareMission.num,Proposer.num,Proposal.n.其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号;步骤3.2.2:接到Prepare请求的Acceptor,若该Proposal.n小于其之前收到的关于该任务的其他Prepare请求的编号,则直接丢弃该次请求不予理会;若大于,则承诺将不会接收提议编号比该Proposal.n小的任何请求,并返回承诺应答,若之前没接受过提议则直接接收,并返回承诺应答;承诺应答PromisedMission.num{,Preci.num,Preci.f},其中Mission.num为任务的编号,Preci.num为上一个承诺的Proposal的小车编号,Preci.f为上一个承诺的Proposal的小车剩余燃料量;若小车之前没有接收过任何承诺,则{,Preci.num,Preci.f}省略;步骤3.2.3:Proposer得到了该单元内超过半数的小车的Promised回应后,再向多数派小车和集中站发送请采纳请求,此次的多数派小车集合可以和步骤3.2.1中的多数派小车集合不相等;请采纳请求AcceptMission.num,Proposer.num,Proposal.n,winner.num,winner.f,其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号,而 Precik.f、Preci.num来源于步骤3.2.2中多个返回的承诺应答;若没有得到超过半数小车的Promised回应,则该次Proposal失败,小车再次发起Proposal,并将Proposal.n在原来基础上加1,但是Proposal.n不能超过最大投票数NPmax,即小车发起Proposal的次数是有限的;步骤3.2.4:Acceptor收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则修改保存该任务信息:并返回已采纳回应AcceptedMission.num,Proposal.n,当接受的请采纳请求的Proposal.n==NPmax时,则chosen.num即为最终该任务被分配的小车;如若出现Acceptor在采纳了某Proposal之后timeoff时间内仍未有采纳的Proposal,则此时的chosen.num即为最终该任务被分配的小车;步骤3.2.5:已确定了最终该任务分配的小车向集中站发送confirmMission.num,chosen.num确定信息,其中Mission.num为任务的编号,chosen.num即为最终该任务被分配的小车;集中站对编号为Mission.num的任务第一次收到的确认信息内容进行修改更新任务库;步骤3.3:将步骤3.2描述的利用朴素paxos选举算法对单个任务分配的过程作为一个instance,则任务库中每一个任务都是相互独立,互不干扰,可以同步进行的instance,使同一个时刻可以有多个任务在被竞选,无人小车间以及和集中站之间的通讯通过任务编号Mission.num作为instance.num进行标识,防止不同任务instance的冲突;其中,无人小车的竞选任务操作是建立在本地任务库的基础上进行的,需要确保各小车的本地任务库在竞选时实时同步更新,保证实时准确得知任务库内任务的添加情况,仅做添加操作,任务的删除在对应的instance结束时即完成删除操作,基于Multi-paxos的任务库同步更新的具体步骤如下:步骤4.1:任务库的更新单独作为一个利用paxos实现的特殊instance*栈与步骤3中的instance有所不同,是对任务添加的一致性操作,每一次一致性操作过程即为一个instance,具体实现过程如下:步骤4.1.1:该instance主要由出现故障时可临时使用代理小车的集中站作为Proposer,无人小车均为Acceptor,集中站向全体小车发出Prepareinstance.num,Proposal.n提议请求,其中instance.num为instance*区别于步骤3中instance的编号,Proposal.n为该次提议的编号;instance.num在前一轮instance.num的基础上加1,只有前一轮instance完成才能进行下一轮instance;步骤4.1.2:收到Prepare的无人小车,若Proposal.n小于之前在该instance内收到的某个Proposal.n,则丢弃不予理会;若大于等于,则接受并返回Promisedinstance.num,Proposal.n承诺应答;步骤4.1.3:集中站得到了超过该单元内半数小车的Promised回应后,再向多数派小车发送请采纳请求Acceptinstance.num,Proposal.n,addMission...,其中addMission...表示增加某个任务的操作;可一次发送多个添加删除操作请求;当收到的Promised回应不超过半数时,再次发起Prepare提议请求,Proposal.n在原先基础上加一,Proposal.n增长无上限;但是Proposal.n过大则向管理员发出报警,集中站与多辆无人小车失去联系;步骤4.1.4:无人小车收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则对Accept请求内容对任务库进行更新,并返回已采纳回应Acceptedinstance.num,Proposal.n;步骤4.2:为防止部分通信信息的丢失,引入学习机制,即无人小车在竞选每个任务前学习任务库,具体步骤如下:步骤4.2.1:无人小车向集中站或者周围的无人小车发起学习请求Learnlatest.num,deficiency.num{,deficiency1.num...},其中latest.num为该小车instance*栈中最大的instance.num,deficiency.num为本应连续的instance.num中缺失的instance.num,而且可能有多个;步骤4.2.2:收到学习请求learn的集中站,寻找比latest.num大的instance.num;以及缺失的deficiency.num,返回应答信息Response{instance.num,operation...},{instance.num,operation...}...,其中instance.num与operation即该instance确定的操作序列共同组成一个对应对;步骤三:无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列;其中,无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列的具体步骤如下:步骤5.1:下届函数的确定:步骤5.1.1:根的下届函数:构建代价矩阵R,rij为第i地点到第j地点的路径距离,当i=j时rij=∞;然后进行归约,则 L为代价矩阵的约数,ti为第i行的约数0≤i<n,kj为第j行的约数0≤j<n;步骤5.1.2:非叶状态下届函数:根据其双亲节点的代价矩阵A计算而来;即1令生成A';2再对A'实施归约得到B,此时归约的矩阵约数为LB,则 步骤5.1.3:叶节点的下届函数:页状态节点S的为沿着该条路径遍历的路径长度;步骤5.2:上届函数uX=∞;步骤5.3:LC分支限界法的步骤如下:步骤5.3.1:生成根节点,此时小车在暂停处,从暂停地点出发,接着将所有编号地点生成孩子节点,依次进入优先权队列,其下届函数值即为优先权;步骤5.3.2:从优先权队列中优先权最高的出列成为E-结点,并一次生成其孩子结点,依次进入优先权队列;步骤5.3.3:重复步骤5.3.2操作,直到状态空间树达到第n+1层叶子结点处,此时已生成一条路径;步骤5.3.4:判断此时优先权队列根结点优先权是否高于该叶子结点的优先权若高于则重复步骤5.3.2、步骤5.3.3,生成新序列并得到其叶子节点的优先权若则ans指针指向该叶子结点;步骤5.3.5:重复操作步骤5.3.4直到优先权队列根结点优先权低于叶子结点的优先权则ans指针指向该叶子结点,最小代价序列即为根结点至该叶子结点的序列;步骤5.4:孩子结点选择范围:某状态结点至根节点路径上所选择的地点所组成的集合是M,则孩子结点集合来自两个方面: 最终确定任务执行序列。

全文数据:基于Multi-Paxos的无人车物流任务分配方法技术领域本发明属于无人物流和任务分配技术领域,具体涉及一种基于Multi-Paxos的无人车物流任务分配方法。背景技术随着电子商务行业的体量不断膨胀和人工成本的不断提高,配送作为物流运转的基础环节,由于其物流形式日渐多样,数据更新更加频繁,配给任务日益繁重,更有“送货上门”的服务要求的提高,智慧物流的日益盛行,中国物流已开启无人化时代。仓库全自动化智能调度技术在国内已经发展得相当成熟,然而无人智能实地配送技术还处于萌芽阶段。京东早在2016年就试行了城市无人车配送,然而至今仍没有普及,可见在实地配送技术发展仍有着巨大的阻碍。基于中心化调度任务分配的方法发展较早,也相对成熟,有众多基于例如蚁群算法、粒子群算法、聚类等的中心化调度算法,即有一个中央控制机器人,负责收集环境信息,并将众多任务进行划分,分配给不同的下级机器人去执行。然而这种中心化调度任务分配方法仅适用于静态场景当中,而且中央机器人一旦出现故障,整个系统将处于瘫痪状态。发明内容发明的目的是提供一种适用于动态场景且系统鲁棒性高的基于Multi-Paxos的无人车同城物流任务分配方法。为实现上述技术目的,本发明采用了如下技术方案:基于Multi-Paxos的无人车物流任务分配方法,具体包括以下步骤:步骤一:构建两层次物流物理模型和三阶段任务状态模型,形成同城物流运输的具体场景;步骤二:无人车利用Multi-paxos选举算法对任务进行竞选;步骤三:无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列。进一步地,前述的基于Multi-Paxos的无人车物流任务分配方法,其中:在步骤一中,物流物理模型构建及信息初始化的具体步骤如下:基于地理区域依据实际需要划分多个单元,每个单元内设置一个集中站和多台无人小车;集中站主要负责小车的能量供给和维护,跨单元任务的中转和暂存,所属单元的信息收集、总结和递交;无人小车只负责任务的竞选,任务点序列确定和执行;步骤1.1:集中站信息初始化Concentratorid,i,n,Nmax,其中Concentrator.id是集中站地理位置信息,Concentrator.i是未处理的进站跨单元任务数,Concentrator.n是集中站暂放的任务数包括Concentrator.i,Concentrator.Nmax为集中站最大负荷存储量;当Concentrator.n接近Concentrator.Nmax时向监视平台发送预警信息;步骤1.2:由每个集中站负责该区域订单的收集以及该单元订单库即任务库的生成变动和管理;任务库MissionBasenum,t,n,list[].其中MissionBase.num是任务库编号,MissionBase.t是任务库所限时间线,MissionBase.n是任务库中任务数,MissionBase.list[]是任务库中依据任务发布时间从其他单元运转来的跨单元任务包同样遵守该规则排序的任务序列;任务库根据时间段进行更替,当MissionBase.n=0时,MissionBase.t以时间间隔MissionBase.TInterval进行后移,直至MissionBase.t大于等于当前时;只有在MissionBase.t之前发布的任务才能进入任务库被分配,也即只有前一个时间段的任务全部被分配执行,后一个时间段的任务才能进入被分配就绪状态;在进站任务流较大时段,MissionBase.t可能早于当前时间;在进站任务流较小时段,MissionBase.t可能迟于当前时间,则进库任务会实时更新;步骤1.3:无人小车任务初始化AGVnum,type,id,f,situation,n.其中AGV.num是小车编号,AGV.type是小车种类,AGV.id是小车地理位置信息,AGV.f是小车剩余燃料量,AGV.situation是小车当前状态,AGV.n是小车执行的任务包数;当AGV.type=1时,无人车为一般型,正常参与任务分配;当AGV.type=2和AGV.type=3时,无人车分别为急速型和超大负荷型,分别只运输标有加急件和重大件标识的任务包,由于该两种任务包相对于一般任务包的比例极小,且其分别的时效性和体积质量较大的特点,两种车型均采用一次一任务包的规则;当小车没有竞争任务包处于空闲状态时,AGV.situation=0;当小车在执行任务包时,AGV.situation=1;当小车正在竞争任务包时,AGV.situation=2;当小车处于维护无法工作状态时,AGV.situation=3。小车只有在所竞选得的任务消耗总和逼近AGV.f或者已竞选完任务库中的任务包的情况下,才会去执行任务;步骤1.4:不同单元间跨单元任务则采用一辆或多辆大型无人车轮询各单元集中站的方式进行运输。进一步地,前述的基于Multi-Paxos的无人车物流任务分配方法,其中:在步骤一中,三阶段任务状态模型构建以及任务信息初始化的具体步骤如下:步骤2.1:任务信息初始化Missionnum,,type,t,src,dst,src’,dst’,f,situation,step,chosen,其中Mission.num为任务编号,Mission.type为任务种类,Mission.t为任务发起时间,Mission.src和Mission.dst分别为任务的真实源地址和目的地址,Mission.src’和Mission.dst’分别为任务在源单元内时或目的单元内时的单元内源地址和目的地址,在单元间运输时则是源单元集中站地址和目的单元集中站地址,Mission.f为任务单元内运输时预估消耗小车能量,Mission.stiuation为任务包所处状态,Mission.step为任务包运输所属阶段,Mission.chosen为被分配无人小车编号;任务包对应无人车类型分为三种类型,Mission.type=1时,为一般型,需进入任务库参与分配;Mission.type=2和Mission.type=3是分别为加急型和超大型,不参与分配,直接进入各自的序列,依据Mission.t分配给空闲的所属车型的无人车;步骤2.2:三阶段模型的构建:针对跨单元的任务,当Mission.step=1时,任务包处在源单元内,Mission.src’=Mission.src,Mission.dst’=源单元集中站;当Mission.step=2时,任务包处在单元间运输;当Mission.step=3时,任务包处在目的单元内,Mission.src’=目的单元集中站,Mission.dst’=Mission.dst;针对非跨单元任务,Mission.step=0一直恒定;Mission.step,Mission.src’,Mission.dst’分别由源单元和目的单元集中站进行更改;Mission.situation=1为任务包在源地址未被获取,Mission.situation=2为任务包正在运输状态,Mission.situation=3为任务包已到达目的地址。进一步地,前述的基于Multi-Paxos的无人车物流任务分配方法,其中:在步骤二中,无人车利用Multi-paxos对任务进行竞选的具体步骤如下:步骤3.1:当一辆无人车执行完所选的所有任务后,AGV.f低于最低限度值则进入维护状态,否则进入空闲状态;在空闲状态下更新任务库,若任务库为空,则继续监听,否则进入竞选任务包状态;依据Mission.t为优先权对Mission.fAGV.f的逾早发布的任务进行选择;步骤3.2:对任务库中的某一个任务的竞选过程进行时间轴纵向分析,即单个paxos过程,具体包括:步骤3.2.1:欲选择该任务的无人小车Proposer,向多数派小车该单元内超过半数的其他无人小车和集中站发送提议Proposal请求PrepareMission.num,Proposer.num,Proposal.n.其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号;步骤3.2.2:接到Prepare请求的Acceptor,若该Proposal.n小于其之前收到的关于该任务的其他Prepare请求的编号,则直接丢弃该次请求不予理会;若大于,则承诺将不会接收提议编号比该Proposal.n小的任何请求,并返回承诺应答。若之前没接受过提议则直接接收,并返回承诺应答;承诺应答PromisedMission.num,Preci.num,Preci.f,其中Mission.num为任务的编号,Preci.num为上一个Accept的Proposal的小车编号,Preci.f为上一个Accept的Proposal的小车剩余燃料量;若小车之前没有接收过任何Accept,则Promised内容为空;步骤3.2.3:Proposer得到了该单元内超过半数的小车的Promised回应后,再向多数派小车和集中站发送请采纳请求此次的多数派小车集合可以和Step1中的多数派小车不相等;请采纳请求AcceptMission.num,Proposer.num,Proposal.n,winner.num,winner.f,其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号,而Precik.f、Preci.num来源于Step2中多个返回的承诺应答;若没有得到超过半数小车的Promised回应,则该次Proposal失败,小车再次发起Proposal,并将Proposal.n在原来基础上加1,但是Proposal.n不能超过NPmax最大投票数,即小车发起Proposal的次数是有限的;步骤3.2.4:Acceptor收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则修改保存该任务信息:并返回已采纳回应AcceptedMission.num,Proposal.n,当接受的请采纳请求的Proposal.n==NPmax时,则chosen.num即为最终该任务被分配的小车;如若出现Acceptor在采纳了某Proposal之后timeoff时间内仍未有采纳的Proposal,则此时的chosen.num即为最终该任务被分配的小车;步骤3.2.5:已确定了最终该任务分配的小车向集中站发送confirmMission.num,chosen.num确定信息,其中Mission.num为任务的编号,chosen.num即为最终该任务被分配的小车;集中站对编号为Mission.num的任务第一次收到的确认信息内容进行修改更新任务库;步骤3.3:将步骤3.2描述的利用朴素paxos选举算法对单个任务分配的过程作为一个instance,则任务库中每一个任务都是相互独立,互不干扰,可以同步进行的instance,使同一个时刻可以有多个任务在被竞选,无人小车间以及和集中站之间的通讯通过任务编号Mission.num作为instance.num进行标识,防止不同任务instance的冲突。进一步地,前述的基于Multi-Paxos的无人车物流任务分配方法,其中:在步骤二中,无人小车的竞选任务操作是建立在本地任务库的基础上进行的,需要确保各小车的本地任务库在竞选时实时同步更新,保证实时准确得知任务库内任务的添加删减情况,基于Multi-paxos的任务库同步更新的具体步骤如下:步骤4.1:任务库的更新单独作为一个利用paxos实现的特殊instance*栈与步骤3中的instance有所不同放说明书,是对任务的增加删除操作的一致性操作,每一次一致性操作过程即为一个instance,具体实现过程如下:步骤4.1.1:该instance主要集中站出现故障时可临时使用代理小车作为Proposer,无人小车均为Acceptor。集中站向全体小车发出Prepareinstance.num,Proposal.n提议请求,其中instance.num为instance*区别于步骤3中instance的编号,Proposal.n为该次提议的编号;instance.num在前一轮instance.num的基础上加1,只有前一轮instance完成才能进行下一轮instance;步骤4.1.2:收到Prepare的无人小车,若Proposal.n小于之前在该instance内收到的某个Proposal.n,则丢弃不予理会;若大于等于,则接受并返回Promisedinstance.num,Proposal.n承诺应答;步骤4.1.3:集中站得到了超过该单元内超过半数的小车的Promised回应后,再向多数派小车发送请采纳请求Acceptinstance.num,Proposal.n,addMission...deleteMission.num{,...},其中addMission...表示增加某个任务的操作,deleteMission.num表示删除某个已分配任务的操作;可一次发送多个添加删除操作请求;当收到的Promised回应不超过半数时,再次发起Prepare提议请求,Proposal.n在原先基础上加一,Proposal.n增长无上限;但是Proposal.n过大则向管理员发出报警,集中站与多辆无人小车失去联系;步骤4.1.4:无人小车收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则对Accept请求内容对任务库进行更新,并返回已采纳回应Acceptedinstance.num,Proposal.n;步骤4.2:为防止部分通信信息的丢失,引入学习机制,即无人小车在竞选每个任务前学习任务库,具体步骤如下:步骤4.2.1:无人小车向集中站或者周围的无人小车发起学习请求Learnlatest.num,deficiency.num{,deficiency1.num...},其中latest.num为该小车instance*栈中最大的instance.num,deficiency.num为本应连续的instance.num中缺失的instance.num,而且可能有多个;步骤4.2.2:收到学习请求learn的集中站,寻找比latest.num大的instance.num;以及缺失的deficiency.num,返回应答信息Response{instance.num,operation...},{instance.num,operation...}...,其中instance.num与operation即该instance确定的操作序列共同组成一个对应对。进一步地,前述的基于Multi-Paxos的无人车物流任务分配方法,其中:在步骤三中,无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列的具体步骤如下:步骤5.1:下届函数的确定:步骤5.1.1:根的下届函数:构建代价矩阵R,rij为第i地点到第j地点的路径距离,当i=j时rij=∞;然后进行归约,则L为代价矩阵的约数,ti为第i行的约数0≤i<n,kj为第j行的约数0≤j<n;步骤5.1.2:非叶状态下届函数:根据其双亲节点的代价矩阵A计算而来;即1令生成A';2再对A'实施归约得到B,此时归约的矩阵约数为LB,则步骤5.1.3:叶节点的下届函数:页状态节点S的为沿着该条路径遍历的路径长度;步骤5.2:上届函数uX=∞;步骤5.3:LC分支限界法的步骤如下:步骤5.3.1:生成根节点,此时小车在暂停处,从暂停地点出发,接着将所有编号地点生成孩子节点,依次进入优先权队列,其下届函数值即为优先权;步骤5.3.2:从优先权队列中优先权最高的出列成为E-结点,并一次生成其孩子结点,依次进入优先权队列;步骤5.3.3:重复步骤5.3.2操作,直到状态空间树达到第n+1层叶子结点处,此时已生成一条路径;步骤5.3.4:判断此时优先权队列根结点优先权是否高于该叶子结点的优先权若高于则重复步骤5.3.2、步骤5.3.3,生成新序列并得到其叶子节点的优先权若则ans指针指向该叶子结点;步骤5.3.5:重复操作步骤5.3.4直到优先权队列根结点优先权低于叶子结点的优先权则ans指针指向该叶子结点,最小代价序列即为根结点至该叶子结点的序列;步骤5.4:孩子结点选择范围:某状态结点至根节点路径上所选择的地点所组成的集合是M,则孩子结点集合来自两个方面:最终确定任务执行序列。通过上述技术方案的实施,本发明的有益效果是:1适用于动态场景,能够实现与集中站通信量和通信负载的降低,并且避免中心化模型下“单点失效”问题,远距离通信质量不良等问题,最主要的是在单个小车出现失联或者当机的情况下,不影响整体系统运作并且很方便地进行修复后接入系统;2创建了一个去中心化的同城无人智慧物流架构;3本发明使用Multi-paxos选举算法,进行多无人车竞选式任务分配,提高系统鲁棒性,避免“单点失效”问题,减少通讯量和通讯负载,在满足灵活性的同时有满足了实时性;4引入了学习机制,从而极大地允许任何小车的当机以及任何通讯信息的失效后,信息恢复工作,提高容错率;5本发明利用Multi-Paxos选举算法进行任务分配,分支限界法进行任务点序列的确定,在控制去中心化物流运输系统场景上,更加适用于当今例如外卖等的同城物流模式,实现更加高效的动态无人车任务分配,创造更短的平均任务完成时间和更加稳健的调度系统。附图说明图1为本发明中Multi-Paxos选举任务分配算法的流程示意图。图2为本发明中任务库更新算法的流程示意图。图3为本发明中分支限界法确定任务执行序列的流程示意图。具体实施方法基于Multi-Paxos的无人车物流任务分配方法,具体包括以下步骤:步骤一:构建两层次物流物理模型和三阶段任务状态模型,形成同城物流运输的具体场景;其中,物流物理模型构建及信息初始化的具体步骤如下:基于地理区域依据实际需要划分多个单元,每个单元内设置一个集中站和多台无人小车;集中站主要负责小车的能量供给和维护,跨单元任务的中转和暂存,所属单元的信息收集、总结和递交;无人小车只负责任务的竞选,任务点序列确定和执行;步骤1.1:集中站信息初始化Concentratorid,i,n,Nmax,其中Concentrator.id是集中站地理位置信息,Concentrator.i是未处理的进站跨单元任务数,Concentrator.n是集中站暂放的任务数包括Concentrator.i,Concentrator.Nmax为集中站最大负荷存储量;当Concentrator.n接近Concentrator.Nmax时向监视平台发送预警信息;步骤1.2:由每个集中站负责该区域订单的收集以及该单元订单库即任务库的生成变动和管理;任务库MissionBasenum,t,n,list[].其中MissionBase.num是任务库编号,MissionBase.t是任务库所限时间线,MissionBase.n是任务库中任务数,MissionBase.list[]是任务库中依据任务发布时间从其他单元运转来的跨单元任务包同样遵守该规则排序的任务序列;任务库根据时间段进行更替,当MissionBase.n=0时,MissionBase.t以时间间隔MissionBase.TInterval进行后移,直至MissionBase.t大于等于当前时;只有在MissionBase.t之前发布的任务才能进入任务库被分配,也即只有前一个时间段的任务全部被分配执行,后一个时间段的任务才能进入被分配就绪状态;在进站任务流较大时段,MissionBase.t可能早于当前时间;在进站任务流较小时段,MissionBase.t可能迟于当前时间,则进库任务会实时更新;步骤1.3:无人小车任务初始化AGVnum,type,id,f,situation,n.其中AGV.num是小车编号,AGV.type是小车种类,AGV.id是小车地理位置信息,AGV.f是小车剩余燃料量,AGV.situation是小车当前状态,AGV.n是小车执行的任务包数;当AGV.type=1时,无人车为一般型,正常参与任务分配;当AGV.type=2和AGV.type=3时,无人车分别为急速型和超大负荷型,分别只运输标有加急件和重大件标识的任务包,由于该两种任务包相对于一般任务包的比例极小,且其分别的时效性和体积质量较大的特点,两种车型均采用一次一任务包的规则;当小车没有竞争任务包处于空闲状态时,AGV.situation=0;当小车在执行任务包时,AGV.situation=1;当小车正在竞争任务包时,AGV.situation=2;当小车处于维护无法工作状态时,AGV.situation=3。小车只有在所竞选得的任务消耗总和逼近AGV.f或者已竞选完任务库中的任务包的情况下,才会去执行任务;步骤1.4:不同单元间跨单元任务则采用一辆或多辆大型无人车轮询各单元集中站的方式进行运输。如若区域较大,轮询时长过长,为了缩短轮询时间,可采取将多个单元组合成片,每个片在基于单元集中站的基础上建造一个片集中站,用于跨片任务包的中转运输。依据实际情况还可继续多层嵌套,实现跨度较大任务包的运输,实现原理类似,下文仅实现描述片内任务包的分配;其中,三阶段任务状态模型构建以及任务信息初始化的具体步骤如下:步骤2.1:任务信息初始化Missionnum,,type,t,src,dst,src’,dst’,f,situation,step,chosen,其中Mission.num为任务编号,Mission.type为任务种类,Mission.t为任务发起时间,Mission.src和Mission.dst分别为任务的真实源地址和目的地址,Mission.src’和Mission.dst’分别为任务在源单元内时或目的单元内时的单元内源地址和目的地址,在单元间运输时则是源单元集中站地址和目的单元集中站地址,Mission.f为任务单元内运输时预估消耗小车能量,Mission.stiuation为任务包所处状态,Mission.step为任务包运输所属阶段,Mission.chosen为被分配无人小车编号;任务包对应无人车类型分为三种类型,Mission.type=1时,为一般型,需进入任务库参与分配;Mission.type=2和Mission.type=3是分别为加急型和超大型,不参与分配,直接进入各自的序列,依据Mission.t分配给空闲的所属车型的无人车;步骤2.2:三阶段模型的构建:针对跨单元的任务,当Mission.step=1时,任务包处在源单元内,Mission.src’=Mission.src,Mission.dst’=源单元集中站;当Mission.step=2时,任务包处在单元间运输;当Mission.step=3时,任务包处在目的单元内,Mission.src’=目的单元集中站,Mission.dst’=Mission.dst;针对非跨单元任务,Mission.step=0一直恒定;Mission.step,Mission.src’,Mission.dst’分别由源单元和目的单元集中站进行更改;Mission.situation=1为任务包在源地址未被获取,Mission.situation=2为任务包正在运输状态,Mission.situation=3为任务包已到达目的地址;步骤二:无人车利用Multi-paxos选举算法对任务进行竞选,每辆车根据自身的状况以及任务库中各任务的预估消耗指标,竞选低于上限值个任务,并以投票抢先和储能居多为优先原则,如图1所示,具体步骤如下:步骤3.1:当一辆无人车执行完所选的所有任务后,AGV.f低于最低限度值则进入维护状态,否则进入空闲状态;在空闲状态下更新任务库,若任务库为空,则继续监听,否则进入竞选任务包状态;依据Mission.t为优先权对Mission.fAGV.f的逾早发布的任务进行选择;步骤3.2:对任务库中的某一个任务的竞选过程进行时间轴纵向分析,即单个paxos过程,具体包括:步骤3.2.1:欲选择该任务的无人小车Proposer,向多数派小车该单元内超过半数的其他无人小车和集中站发送提议Proposal请求PrepareMission.num,Proposer.num,Proposal.n.其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号;步骤3.2.2:接到Prepare请求的Acceptor,若该Proposal.n小于其之前收到的关于该任务的其他Prepare请求的编号,则直接丢弃该次请求不予理会;若大于,则承诺将不会接收提议编号比该Proposal.n小的任何请求,并返回承诺应答。若之前没接受过提议则直接接收,并返回承诺应答;承诺应答PromisedMission.num{,Preci.num,Preci.f},其中Mission.num为任务的编号,Preci.num为上一个承诺的Proposal的小车编号,Preci.f为上一个承诺的Proposal的小车剩余燃料量;若小车之前没有接收过任何承诺,则{,Preci.num,Preci.f}省略;步骤3.2.3:Proposer得到了该单元内超过半数的小车的Promised回应后,再向多数派小车和集中站发送请采纳请求此次的多数派小车集合可以和步骤3.2.1中的多数派小车不相等;请采纳请求AcceptMission.num,Proposer.num,Proposal.n,winner.num,winner.f,其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号,而Precik.f、Preci.num来源于Step2中多个返回的承诺应答;若没有得到超过半数小车的Promised回应,则该次Proposal失败,小车再次发起Proposal,并将Proposal.n在原来基础上加1,但是Proposal.n不能超过NPmax最大投票数,即小车发起Proposal的次数是有限的;步骤3.2.4:Acceptor收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则修改保存该任务信息:并返回已采纳回应AcceptedMission.num,Proposal.n,当接受的请采纳请求的Proposal.n==NPmax时,则chosen.num即为最终该任务被分配的小车;如若出现Acceptor在采纳了某Proposal之后timeoff时间内仍未有采纳的Proposal,则此时的chosen.num即为最终该任务被分配的小车;步骤3.2.5:已确定了最终该任务分配的小车向集中站发送confirmMission.num,chosen.num确定信息,其中Mission.num为任务的编号,chosen.num即为最终该任务被分配的小车;集中站对编号为Mission.num的任务第一次收到的确认信息内容进行修改更新任务库;步骤3.3:将步骤3.2描述的利用朴素paxos选举算法对单个任务分配的过程作为一个instance,则任务库中每一个任务都是相互独立,互不干扰,可以同步进行的instance,使同一个时刻可以有多个任务在被竞选,无人小车间以及和集中站之间的通讯通过任务编号Mission.num作为instance.num进行标识,防止不同任务instance的冲突;其中,无人小车的竞选任务操作是建立在本地任务库的基础上进行的,需要确保各小车的本地任务库在竞选时实时同步更新,保证实时准确得知任务库内任务的添加情况,如图2所示,基于Multi-paxos的任务库同步更新的具体步骤如下:步骤4.1:任务库的更新单独作为一个利用paxos实现的特殊instance*栈与步骤3中的instance有所不同放说明书,是对任务的增加删除操作的一致性操作,每一次一致性操作过程即为一个instance,具体实现过程如下:步骤4.1.1:该instance主要集中站出现故障时可临时使用代理小车作为Proposer,无人小车均为Acceptor。集中站向全体小车发出Prepareinstance.num,Proposal.n提议请求,其中instance.num为instance*区别于步骤3中instance的编号,Proposal.n为该次提议的编号;instance.num在前一轮instance.num的基础上加1,只有前一轮instance完成才能进行下一轮instance;步骤4.1.2:收到Prepare的无人小车,若Proposal.n小于之前在该instance内收到的某个Proposal.n,则丢弃不予理会;若大于等于,则接受并返回Promisedinstance.num,Proposal.n承诺应答;步骤4.1.3:集中站得到了超过该单元内超过半数的小车的Promised回应后,再向多数派小车发送请采纳请求Acceptinstance.num,Proposal.n,addMission...,其中addMission...表示增加某个任务的操作;可一次发送多个添加操作请求;当收到的Promised回应不超过半数时,再次发起Prepare提议请求,Proposal.n在原先基础上加一,Proposal.n增长无上限;但是Proposal.n过大则向管理员发出报警,集中站与多辆无人小车失去联系;步骤4.1.4:无人小车收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则对Accept请求内容对任务库进行更新,并返回已采纳回应Acceptedinstance.num,Proposal.n;步骤4.2:为防止部分通信信息的丢失,引入学习机制,即无人小车在竞选每个任务前学习任务库,具体步骤如下:步骤4.2.1:无人小车向集中站或者周围的无人小车发起学习请求Learnlatest.num,deficiency.num{,deficiency1.num...},其中latest.num为该小车instance*栈中最大的instance.num,deficiency.num为本应连续的instance.num中缺失的instance.num,而且可能有多个;步骤4.2.2:收到学习请求learn的集中站,寻找比latest.num大的instance.num;以及缺失的deficiency.num,返回应答信息Response{instance.num,operation...},{instance.num,operation...}...,其中instance.num与operation即该instance确定的操作序列共同组成一个对应对;步骤三:无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列,基于实际地图中各任务的源地址和目的地址标出任务点,并根据地图中道路距离为边权值,计算出满足源地址任务点在前目的地址任务点在后的任务点序列;如图3所示,具体步骤如下:小车竞选得任务后,任务执行序列的确定是基于TSP问题的变形;每个任务都有一个键值对源地点,目的地点,并对每一个地点进行编号;任务执行序列的确定即对所得所有任务的源地点和目的点混杂排序,排在前面的地点先到达,得到一个最优的到达序列;要求排序中每一个任务的对应源地点必须在目的地点之前,同时与TSP问题不同的是在遍历了所有点之后无需再回到起点;由于每辆小车的根据车载能力限制所能获得的任务数有限,针对每辆小车在任务竞选完成后的任务序列的确定问题虽然是基于TSP旅行商这一NP难度问题的解决,采用所得结果精确的分支限界法即可满足实际需求;步骤5.1:下届函数的确定:步骤5.1.1:根的下届函数:构建代价矩阵R,rij为第i地点到第j地点的路径距离,当i=j时rij=∞;然后进行归约,则L为代价矩阵的约数,ti为第i行的约数0≤i<n,kj为第j行的约数0≤j<n;步骤5.1.2:非叶状态下届函数:根据其双亲节点的代价矩阵A计算而来;即3令生成A';4再对A'实施归约得到B,此时归约的矩阵约数为LB,则步骤5.1.3:叶节点的下届函数:页状态节点S的为沿着该条路径遍历的路径长度;步骤5.2:上届函数uX=∞;步骤5.3:LC分支限界法的步骤如下:步骤5.3.1:生成根节点,此时小车在暂停处,从暂停地点出发,接着将所有编号地点生成孩子节点,依次进入优先权队列,其下届函数值即为优先权;步骤5.3.2:从优先权队列中优先权最高的出列成为E-结点,并一次生成其孩子结点,依次进入优先权队列;步骤5.3.3:重复步骤5.3.2操作,直到状态空间树达到第n+1层叶子结点处,此时已生成一条路径;步骤5.3.4:判断此时优先权队列根结点优先权是否高于该叶子结点的优先权若高于则重复步骤5.3.2、步骤5.3.3,生成新序列并得到其叶子节点的优先权若则ans指针指向该叶子结点;步骤5.3.5:重复操作步骤5.3.4直到优先权队列根结点优先权低于叶子结点的优先权则ans指针指向该叶子结点,最小代价序列即为根结点至该叶子结点的序列;步骤5.4:孩子结点选择范围:某状态结点至根节点路径上所选择的地点所组成的集合是M,则孩子结点集合来自两个方面:最终确定任务执行序列。本发明的优点是:1适用于动态场景,能够实现与集中站通信量和通信负载的降低,并且避免中心化模型下“单点失效”问题,远距离通信质量不良等问题,最主要的是在单个小车出现失联或者当机的情况下,不影响整体系统运作并且很方便地进行修复后接入系统;2创建了一个去中心化的同城无人智慧物流架构;3本发明使用Multi-paxos选举算法,进行多无人车竞选式任务分配,提高系统鲁棒性,避免“单点失效”问题,减少通讯量和通讯负载,在满足灵活性的同时又满足了实时性;4引入了学习机制,从而极大地允许任何小车的当机以及任何通讯信息的失效后,信息恢复工作,提高容错率;5本发明利用Multi-Paxos选举算法进行任务分配,分支限界法进行任务点序列的确定,在控制去中心化物流运输系统场景上,更加适用于当今例如外卖等的同城物流模式,实现更加高效的动态无人车任务分配,创造更短的平均任务完成时间和更加稳健的调度系统。

权利要求:1.基于Multi-Paxos的无人车物流任务分配方法,其特征在于:具体包括以下步骤:步骤一:构建两层次物流物理模型和三阶段任务状态模型,形成同城物流运输的具体场景;步骤二:无人车利用Multi-paxos选举算法对任务进行竞选;步骤三:无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列。2.根据权利要求1所述的基于Multi-Paxos的无人车物流任务分配方法,其特征在于:在步骤一中,物流物理模型构建及信息初始化的具体步骤如下:基于地理区域依据实际需要划分多个单元,每个单元内设置一个集中站和多台无人小车;集中站主要负责小车的能量供给和维护,跨单元任务的中转和暂存,所属单元的信息收集、总结和递交;无人小车只负责任务的竞选,任务点序列确定和执行;步骤1.1:集中站信息初始化Concentratorid,i,n,Nmax,其中Concentrator.id是集中站地理位置信息,Concentrator.i是未处理的进站跨单元任务数,Concentrator.n是集中站暂放的任务数包括Concentrator.i,Concentrator.Nmax为集中站最大负荷存储量;当Concentrator.n接近Concentrator.Nmax时向监视平台发送预警信息;步骤1.2:由每个集中站负责该区域订单的收集以及该单元订单库即任务库的生成变动和管理;任务库MissionBasenum,t,n,list[].其中MissionBase.num是任务库编号,MissionBase.t是任务库所限时间线,MissionBase.n是任务库中任务数,MissionBase.list[]是任务库中依据任务发布时间从其他单元运转来的跨单元任务包同样遵守该规则排序的任务序列;任务库根据时间段进行更替,当MissionBase.n=0时,MissionBase.t以时间间隔MissionBase.TInterval进行后移,直至MissionBase.t大于等于当前时;只有在MissionBase.t之前发布的任务才能进入任务库被分配,也即只有前一个时间段的任务全部被分配执行,后一个时间段的任务才能进入被分配就绪状态;在进站任务流较大时段,MissionBase.t可能早于当前时间;在进站任务流较小时段,MissionBase.t可能迟于当前时间,则进库任务会实时更新;步骤1.3:无人小车任务初始化AGVnum,type,id,f,situation,n.其中AGV.num是小车编号,AGV.type是小车种类,AGV.id是小车地理位置信息,AGV.f是小车剩余燃料量,AGV.situation是小车当前状态,AGV.n是小车执行的任务包数;当AGV.type=1时,无人车为一般型,正常参与任务分配;当AGV.type=2和AGV.type=3时,无人车分别为急速型和超大负荷型,分别只运输标有加急件和重大件标识的任务包,由于该两种任务包相对于一般任务包的比例极小,且其分别的时效性和体积质量较大的特点,两种车型均采用一次一任务包的规则;当小车没有竞争任务包处于空闲状态时,AGV.situation=0;当小车在执行任务包时,AGV.situation=1;当小车正在竞争任务包时,AGV.situation=2;当小车处于维护无法工作状态时,AGV.situation=3。小车只有在所竞选得的任务消耗总和逼近AGV.f或者已竞选完任务库中的任务包的情况下,才会去执行任务;步骤1.4:不同单元间跨单元任务则采用一辆或多辆大型无人车轮询各单元集中站的方式进行运输。3.根据权利要求1所述的基于Multi-Paxos的无人车物流任务分配方法,其特征在于:在步骤一中,三阶段任务状态模型构建以及任务信息初始化的具体步骤如下:步骤2.1:任务信息初始化Missionnum,,type,t,src,dst,src’,dst’,f,situation,step,chosen,其中Mission.num为任务编号,Mission.type为任务种类,Mission.t为任务发起时间,Mission.src和Mission.dst分别为任务的真实源地址和目的地址,Mission.src’和Mission.dst’分别为任务在源单元内时或目的单元内时的单元内源地址和目的地址,在单元间运输时则是源单元集中站地址和目的单元集中站地址,Mission.f为任务单元内运输时预估消耗小车能量,Mission.stiuation为任务包所处状态,Mission.step为任务包运输所属阶段,Mission.chosen为被分配无人小车编号;任务包对应无人车类型分为三种类型,Mission.type=1时,为一般型,需进入任务库参与分配;Mission.type=2和Mission.type=3是分别为加急型和超大型,不参与分配,直接进入各自的序列,依据Mission.t分配给空闲的所属车型的无人车;步骤2.2:三阶段模型的构建:针对跨单元的任务,当Mission.step=1时,任务包处在源单元内,Mission.src’=Mission.src,Mission.dst’=源单元集中站;当Mission.step=2时,任务包处在单元间运输;当Mission.step=3时,任务包处在目的单元内,Mission.src’=目的单元集中站,Mission.dst’=Mission.dst;针对非跨单元任务,Mission.step=0一直恒定;Mission.step,Mission.src’,Mission.dst’分别由源单元和目的单元集中站进行更改;Mission.situation=1为任务包在源地址未被获取,Mission.situation=2为任务包正在运输状态,Mission.situation=3为任务包已到达目的地址。4.根据权利要求1所述的基于Multi-Paxos的无人车物流任务分配方法,其特征在于:在步骤二中,无人车利用Multi-paxos对任务进行竞选的具体步骤如下:步骤3.1:当一辆无人车执行完所选的所有任务后,AGV.f低于最低限度值则进入维护状态,否则进入空闲状态;在空闲状态下更新任务库,若任务库为空,则继续监听,否则进入竞选任务包状态;依据Mission.t为优先权对Mission.fAGV.f的逾早发布的任务进行选择;步骤3.2:对任务库中的某一个任务的竞选过程进行时间轴纵向分析,即单个paxos过程,具体包括:步骤3.2.1:欲选择该任务的无人小车Proposer,向多数派小车该单元内超过半数的其他无人小车和集中站发送提议Proposal请求PrepareMission.num,Proposer.num,Proposal.n.其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号;步骤3.2.2:接到Prepare请求的Acceptor,若该Proposal.n小于其之前收到的关于该任务的其他Prepare请求的编号,则直接丢弃该次请求不予理会;若大于,则承诺将不会接收提议编号比该Proposal.n小的任何请求,并返回承诺应答。若之前没接受过提议则直接接收,并返回承诺应答;承诺应答PromisedMission.num{,Preci.num,Preci.f},其中Mission.num为任务的编号,Preci.num为上一个承诺的Proposal的小车编号,Preci.f为上一个承诺的Proposal的小车剩余燃料量;若小车之前没有接收过任何承诺,则{,Preci.num,Preci.f}省略;步骤3.2.3:Proposer得到了该单元内超过半数的小车的Promised回应后,再向多数派小车和集中站发送请采纳请求此次的多数派小车集合可以和步骤3.2.1中的多数派小车集合不相等;请采纳请求AcceptMission.num,Proposer.num,Proposal.n,winner.num,winner.f,其中Mission.num为任务的编号,Proposer.num为该Proposer的编号,Proposal.n为关于该任务Proposal的编号,而Precik.f、Preci.num来源于步骤3.2.2中多个返回的承诺应答;若没有得到超过半数小车的Promised回应,则该次Proposal失败,小车再次发起Proposal,并将Proposal.n在原来基础上加1,但是Proposal.n不能超过NPmax最大投票数,即小车发起Proposal的次数是有限的;步骤3.2.4:Acceptor收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则修改保存该任务信息:并返回已采纳回应AcceptedMission.num,Proposal.n,当接受的请采纳请求的Proposal.n==NPmax时,则chosen.num即为最终该任务被分配的小车;如若出现Acceptor在采纳了某Proposal之后timeoff时间内仍未有采纳的Proposal,则此时的chosen.num即为最终该任务被分配的小车;步骤3.2.5:已确定了最终该任务分配的小车向集中站发送confirmMission.num,chosen.num确定信息,其中Mission.num为任务的编号,chosen.num即为最终该任务被分配的小车;集中站对编号为Mission.num的任务第一次收到的确认信息内容进行修改更新任务库;步骤3.3:将步骤3.2描述的利用朴素paxos选举算法对单个任务分配的过程作为一个instance,则任务库中每一个任务都是相互独立,互不干扰,可以同步进行的instance,使同一个时刻可以有多个任务在被竞选,无人小车间以及和集中站之间的通讯通过任务编号Mission.num作为instance.num进行标识,防止不同任务instance的冲突。5.根据权利要求4所述的基于Multi-Paxos的无人车物流任务分配方法,其特征在于:在步骤二中,无人小车的竞选任务操作是建立在本地任务库的基础上进行的,需要确保各小车的本地任务库在竞选时实时同步更新,保证实时准确得知任务库内任务的添加情况仅做添加操作,任务的删除在对应的instance结束时即完成删除操作,基于Multi-paxos的任务库同步更新的具体步骤如下:步骤4.1:任务库的更新单独作为一个利用paxos实现的特殊instance*栈与步骤3中的instance有所不同,是对任务添加的一致性操作,每一次一致性操作过程即为一个instance,具体实现过程如下:步骤4.1.1:该instance主要由集中站出现故障时可临时使用代理小车作为Proposer,无人小车均为Acceptor。集中站向全体小车发出Prepareinstance.num,Proposal.n提议请求,其中instance.num为instance*区别于步骤3中instance的编号,Proposal.n为该次提议的编号;instance.num在前一轮instance.num的基础上加1,只有前一轮instance完成才能进行下一轮instance;步骤4.1.2:收到Prepare的无人小车,若Proposal.n小于之前在该instance内收到的某个Proposal.n,则丢弃不予理会;若大于等于,则接受并返回Promisedinstance.num,Proposal.n承诺应答;步骤4.1.3:集中站得到了超过该单元内半数小车的Promised回应后,再向多数派小车发送请采纳请求Acceptinstance.num,Proposal.n,addMission...,其中addMission...表示增加某个任务的操作;可一次发送多个添加删除操作请求;当收到的Promised回应不超过半数时,再次发起Prepare提议请求,Proposal.n在原先基础上加一,Proposal.n增长无上限;但是Proposal.n过大则向管理员发出报警,集中站与多辆无人小车失去联系;步骤4.1.4:无人小车收到请采纳请求后,如果Proposal.n不违反自己做过的承诺,则对Accept请求内容对任务库进行更新,并返回已采纳回应Acceptedinstance.num,Proposal.n;步骤4.2:为防止部分通信信息的丢失,引入学习机制,即无人小车在竞选每个任务前学习任务库,具体步骤如下:步骤4.2.1:无人小车向集中站或者周围的无人小车发起学习请求Learnlatest.num,deficiency.num{,deficiency1.num...},其中latest.num为该小车instance*栈中最大的instance.num,deficiency.num为本应连续的instance.num中缺失的instance.num,而且可能有多个;步骤4.2.2:收到学习请求learn的集中站,寻找比latest.num大的instance.num;以及缺失的deficiency.num,返回应答信息Response{instance.num,operation...},{instance.num,operation...}...,其中instance.num与operation即该instance确定的操作序列共同组成一个对应对。6.根据权利要求1所述的基于Multi-Paxos的无人车物流任务分配方法,其特征在于:在步骤三中,无人车基于TSP旅行商问题用分支限界算法确定获得的任务包序列的具体步骤如下:步骤5.1:下届函数的确定:步骤5.1.1:根的下届函数:构建代价矩阵R,rij为第i地点到第j地点的路径距离,当i=j时rij=∞;然后进行归约,则L为代价矩阵的约数,ti为第i行的约数0≤i<n,kj为第j行的约数0≤j<n;步骤5.1.2:非叶状态下届函数:根据其双亲节点的代价矩阵A计算而来;即1令生成A';2再对A'实施归约得到B,此时归约的矩阵约数为LB,则步骤5.1.3:叶节点的下届函数:页状态节点S的为沿着该条路径遍历的路径长度;步骤5.2:上届函数uX=∞;步骤5.3:LC分支限界法的步骤如下:步骤5.3.1:生成根节点,此时小车在暂停处,从暂停地点出发,接着将所有编号地点生成孩子节点,依次进入优先权队列,其下届函数值即为优先权;步骤5.3.2:从优先权队列中优先权最高的出列成为E-结点,并一次生成其孩子结点,依次进入优先权队列;步骤5.3.3:重复步骤5.3.2操作,直到状态空间树达到第n+1层叶子结点处,此时已生成一条路径;步骤5.3.4:判断此时优先权队列根结点优先权是否高于该叶子结点的优先权若高于则重复步骤5.3.2、步骤5.3.3,生成新序列并得到其叶子节点的优先权若则ans指针指向该叶子结点;步骤5.3.5:重复操作步骤5.3.4直到优先权队列根结点优先权低于叶子结点的优先权则ans指针指向该叶子结点,最小代价序列即为根结点至该叶子结点的序列;步骤5.4:孩子结点选择范围:某状态结点至根节点路径上所选择的地点所组成的集合是M,则孩子结点集合来自两个方面:最终确定任务执行序列。

百度查询: 南京邮电大学 基于Multi-Paxos的无人车物流任务分配方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。