We design and implement two single-pass semi-streaming algorithms for the maximum weight $k$-disjoint matching ($k$-DM) problem. Given an integer $k$, the $k$-DM problem is to find $k$ pairwise edge-disjoint matchings such that the sum of the weights of the matchings is maximized. For $k \geq 2$, this problem is NP-hard. Our first algorithm is based on the primal-dual framework of a linear programming relaxation of the problem and is $\frac{1}{3+\varepsilon}$-approximate. We also develop an approximation preserving reduction from $k$-DM to the maximum weight $b$-matching problem. Leveraging this reduction and an existing semi-streaming $b$-matching algorithm, we design a $\frac{k}{(2+\varepsilon)(k+1)}$-approximate semi-streaming algorithm for $k$-DM. For any constant $\varepsilon > 0$, both of these algorithms require $O(nk \log_{1+\varepsilon}^2 n)$ bits of space. To the best of our knowledge, this is the first study of semi-streaming algorithms for the $k$-DM problem. We compare our two algorithms to state-of-the-art offline algorithms on 82 real-world and synthetic test problems. On the smaller instances, our streaming algorithms used significantly less memory (ranging from 6$\times$ to 114$\times$ less) and were faster in runtime than the offline algorithms. Our solutions were often within 5\% of the best weights from the offline algorithms. On a collection of six large graphs with a memory limit of 1 TB and with $k=8$, the offline algorithms terminated only on one graph (mycielskian20). The best offline algorithm on this instance required 640 GB of memory and 20 minutes to complete. In contrast, our slowest streaming algorithm for this instance took under four minutes and produced a matching that was 18\% better in weight, using only 1.4 GB of memory.
翻译:我们设计并实现了两种针对最大权值$k$不交匹配(k-DM)问题的单遍半流式算法。给定整数$k$,k-DM问题需找到$k$个两两边不交的匹配,使得各匹配权值之和最大化。对于$k \geq 2$,该问题为NP难问题。我们的第一种算法基于问题线性规划松弛的原始-对偶框架,其近似比为$\frac{1}{3+\varepsilon}$。我们还建立了从k-DM到最大权值b-匹配问题的保近似归约。利用该归约及现有的半流式b-匹配算法,我们设计了一种$\frac{k}{(2+\varepsilon)(k+1)}$-近似的半流式k-DM算法。对于任意常数$\varepsilon > 0$,这两种算法均需$O(nk \log_{1+\varepsilon}^2 n)$比特空间。据我们所知,这是首个针对k-DM问题的半流式算法研究。我们在82个真实与合成测试问题上将两种算法与最先进的离线算法进行了对比。在较小实例上,我们的流式算法相比离线算法显著减少内存使用(低6倍至114倍),且运行速度更快。我们的解权值通常不超过离线算法最优解的5%。在一组包含六个大规模图(内存限制1TB,k=8)的测试中,离线算法仅在一个图(mycielskian20)上成功终止。该实例的最佳离线算法需640GB内存及20分钟完成。相比之下,我们最慢的流式算法在该实例上耗时不足四分钟,仅使用1.4GB内存,产生的匹配权值反而高18%。