0 前言
匈牙利算法和KM算法是解决二部图的最大(佳)匹配的算法,一般认为匈牙利算法是针对无权值情形,KM算法针对有权情形。在MOT任务中,权值可以认为成模型计算出的置信度。
在学习的过程中,有权值的问题大致有两种方式,一种是博客园博客(主要思路参考,这个讲得很好),另一种是从矩阵的角度去做B站,分上中下(但这种不常见)。
\space
1 匈牙利算法
先说明一个概念:增广路径
- 增广路径是指,在二部图中由一个未匹配的顶点开始,经过若干个匹配顶点,最后到达对面集合的一个未匹配顶点的路径,即这条路径将两个不同集合的两个未匹配顶点通过一系列匹配顶点相连。
直接通过例子说明:
tips: 匈牙利算法的找到的匹配结果并不一定是唯一结果,而且也可能会存在不能一一匹配的情形。
2 KM算法
KM算法本质是加权的二部图最佳匹配,基于匈牙利算法。所谓最佳匹配就是匹配后目标函数(一般是匹配边的权值之和)最大或最小的问题。如果权值是模型预测出的置信度,那么应该是最大化问题。
例子: