目标跟踪基础——2.匈牙利算法

一、基本概念

1.二分图

二分图是图论中的一种特殊模型。若能将无向图G=(V,E)的顶点V划分为两个交集为空的顶点集,并且任意边的两个端点都分属于两个集合,则称图G为一个为二分图。
二分图(Bipartite graph)是一类特殊的图,它可以被划分为两个部分,每个部分内的点互不相连。下图是典型的二分图,可以看到,在下面的二分图中,每条边的端点都分别处于点集X和Y中。。
在这里插入图片描述

2.匹配

图G的一个匹配是由一组没有公共端点的不是圈的边构成的集合。
这里,我们用一个图来表示下匹配的概念:
在这里插入图片描述
如图所示,其中的三条边即该图的一个匹配。所以,匹配的两个重点:1. 匹配是边的集合;2. 在该集合中,任意两条边不能有共同的顶点。

3. 最大匹配

选择这样的边数最大的子集称为图的最大匹配问题。最大匹配的边数称为最大匹配。

4.匈牙利算法

匈牙利算法(Hungarian algorithm),是图论中寻找最小(最大)匹配的算法。
对于一个二分图,匈牙利算法可以求得其最小匹配或最大匹配(求最大匹配只需要将边的权重取反)。匈牙利算法的流程如下:

准备过程:
1.将具有n条边的无向图邻接矩阵列出,得到n×n的矩阵;
2.将所有的行都减去该行的最小值;
3.将所有的列都减去该列的最小值。

循环过程:
1.使用最少的边数来覆盖矩阵中的0;
2.如果最少的边数等于n则循环结束;
3.将没被覆盖的区域都减去区域中的最小值,并将覆盖区域中两个边的交点处权重加上这个最小值。

最终选择:
对于循环过程中得到的矩阵输出,我们只需要在所有权值为0的边中选出它的匹配,这个匹配就是最小匹配。
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值