公司动态

联系我们 Contact Us

电话:010-82488500

传真:010-82488501

E-mail:znj@bjrobot.com

您现在的位置:主页 > 新闻资讯 > 公司动态 >

深入探究ROBO-MAS:匈牙利算法的应用。

作者: bjrobot 时间:2020-12-02 来源:未知
摘要:这是一篇比较复杂、比较专业的技术文章。我们不仅有产品,同样也有知识。

科技探索,路途遥远而又漫长。

不断地学习,使你在这条路上坚持不懈走下去。
 

今天,我们继续深入探究ROBO-MAS机器人的奥妙,我们来了解一下能够让ROBO-MAS实现精准定位的另一个因素:匈牙利算法。

基于匈牙利算法,ROBO-MAS不仅可以实现定位,更能够实现路径的规划。

单纯的定位,只是让机器人最终走到指定位置,但是却不能避免机器人在从起点到指定位置这段路程中“走弯路”。

匈牙利算法,可以解决“走弯路”的问题,依据此算法,ROBO-MAS机器人可以在运行场地中,为自己规划一条从起点到终点的最佳路径。
 

匈牙利算法 · 简介

那究竟什么是匈牙利算法呢?让我们来了解一下。

匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法。美国数学家哈罗德·库恩于1955年提出该算法。此算法之所以被称作匈牙利算法,是因为算法很大一部分是基于以前匈牙利数学家Dénes Kőnig和Jenő Egerváry的工作之上创建起来的。

设G=(V,E)是一个无向图。如顶点集V可分割为两个互不相交的子集V1,V2,选择这样的子集中边数最大的子集称为图的最大匹配问题(maximal matching problem)。

如果一个匹配中,|V1|≤|V2|且匹配数|M|=|V1|,则称此匹配为完全匹配,也称作完备匹配。特别的当|V1|=|V2|称为完美匹配。
 

概念

在介绍匈牙利算法之前,我们必须要明白几个概念,这有助于我们对匈牙利算法的了解。

 

下面M是G的一个匹配。

 

若V={X1,X2,X4,YI,Y2,Y3,Y4},E={(X1,Y2),(X1,Y4),(X2,YI),(X2,Y3),(X3,Y2)},其中边{(X1,Y2),(X2,Y1)已经在匹配M上。

 

M-交错路:p是G的一条通路,如果p中的边为属于M中的边与不属于M但属于G中的边交替出现,则称p是一条M-交错路。如:路径(X3,Y2,X1,Y4),(Y1,X2,Y3)。

 

M-饱和点:对于υ∈V,如果v与M中的某条边关联,则称v是M-饱和点,否则称v是非M-饱和点。如X1,X2,Y1,Y2都属于M-饱和点,而其它点都属于非M-饱和点。

 

M-可增广路:p是一条M-交错路,如果p的起点和终点都是非M-饱和点,则称p为M-可增广路。

 

求最大匹配的一种显而易见的算法是:先找出全部匹配,然后保留匹配数最多的。但是这个算法的时间复杂度为边数的指数级函数。因此,需要寻求一种更加高效的算法。下面介绍用增广路求最大匹配的方法(称作匈牙利算法,匈牙利数学家Edmonds于1965年提出)。

 

增广路的定义(也称增广轨或交错轨):

若P是图G中一条连通两个未匹配顶点的路径,并且属于M的边和不属于M的边(即已匹配和待匹配的边)在P上交替出现,则称P为相对于M的一条增广路径。

 

由增广路的定义可以推出下述三个结论:

(1)P的路径个数必定为奇数,第一条边和最后一条边都不属于M。

(2)将M和P进行取反操作可以得到一个更大的匹配M'。

(3)M为G的最大匹配当且仅当不存在M的增广路径。

 

 

算法轮廓:

(1)置M为空

(2)找出一条增广路径P,通过异或操作获得更大的匹配M'代替M

(3)重复(2)操作直到找不出增广路径为止



匈牙利算法 · 复杂度

当然,我们看到了上面一系列的介绍和概念,就会发现,匈牙利算法,十分复杂,所以,我们接下来要了解的,就是匈牙利算法的复杂度。

时间复杂度邻接矩阵:最坏为θ(n3)邻接表:θ(nm)。

空间复杂度邻接矩阵:θ(n2)邻接表:θ(n+m)
 

ROBO-MAS · 路径规划

在了解了如此复杂的匈牙利算法之后,我们就要看一下,ROBO-MAS是如何利用匈牙利算法实现路径规划的。

 

基于全局匈牙利算法(全局路径最短)

具体实现:用户在上位机人机交互控制软件系统上指定机器人的位置后,软件内部的路径规划算法为各个机器人分配目标位置,进而控制机器人的行走速度和方向,机器人在行进过程中,依据算法的决策原则,每行进一步,都要进行一次规划路径和速度刷新,可实现动态实时检测群体的行进状态和位置,当群体受到干扰位置和速度发生改变后,控制算法可实时重新为群体进行最优路径规划,直至到达用户指定目标位置结束。

有了匈牙利算法和高频投影仪系统的支持,ROBO-MAS机器人就可以有序的完成各项群体协作任务了。

关于匈牙利算法的介绍就到这里了,如果你对人工智能感兴趣或者你也是一名从事于人工智能的研究者,希望我们的文章可以为您带来帮助。

获取更多关于产品和技术的文章,请关注我们。

电话邮箱

电话:010-82488500
传真:010-82488501
E-mail: znj@bjrobot.com

网站首页 产品中心 解决方案 联系我们

Copyright © 2006-2023 bjrobot 智能佳科技 京ICP备13001844号

在线客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息