二分图流中少量遍数下的匹配算法研究
1. 引言
在二分图中寻找最大基数匹配是一个经典问题,通常情况下该问题可在多项式时间内得到最优解。但当图以流的形式呈现时,情况变得复杂。
在流处理场景下,图 $G = (V, E)$ 无法进行随机访问,只能按顺序遍历每条边,即进行一次“遍数”操作。同时,随机访问内存有限,只能存储 $\Theta(n)$ 条边($n = |V|$),这就是半流模型。与传统的随机访问图不同,在流处理中,判断两个顶点是否相邻或获取某个顶点的邻接信息都需要进行一次遍数操作,这可能导致遍数过多,效率低下。
许多匹配算法依赖于寻找和消除增广路径来实现最大匹配。然而,在流处理场景下,无论是简单的广度优先搜索(BFS)和深度优先搜索(DFS),还是最小度启发式算法,都难以保证所需的遍数。
之前的研究中,McGregor 提出了一种随机近似方案,但对近似参数 $k$ 的依赖较强。Eggert 等人给出了确定性算法,从最初的 $O(k^8)$ 遍数改进到了 $O(k^5)$ 遍数。这些算法的基本思想是同时增长多个不相交的交替路径。
2. 主要结果
本文提出了一种新的近似方案,具有 $1 + 1/k$ 的近似保证,且实验表明所需的遍数比之前的算法少两个数量级。理论上,新算法的遍数上限为 $O(kn)$,虽然这个界限依赖于输入大小,原则上不如 $O(k^5)$,但实验结果显示,理论界限与实际性能并无明显关联。例如,当 $k = 9$ 时,新算法在顶点数最多为 $2 × 10^6$ 的实例中,遍数从未超过 94 次,而之前的算法则高达 32000 次以上。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



