We consider a dynamic situation in the weighted bipartite matching problem in which edge weights are repeatedly updated and each update occurs around a single vertex. Our objective is to maintain an optimal matching at any moment. A trivial approach is to compute an optimal matching from scratch each time an update occurs, but this seems inefficient. In this paper, we show that, if we simultaneously maintain a dual solution, then it suffices to perform Dijkstra's algorithm only once per update. As an application of our result, we provide a faster implementation of the envy-cycle procedure for finding an envy-free allocation of indivisible goods. Our algorithm runs in $\mathrm{O}(mn^2)$ time, while the known bound of the original one is $\mathrm{O}(mn^3)$, where $n$ and $m$ denote the numbers of agents and items, respectively.
翻译:我们认为,加权双边对齐问题是一个动态情况,即边权重反复更新,每次更新都围绕一个单一的顶点进行。我们的目标是随时保持最佳匹配。一个无关紧要的方法是每次更新时从零处计算最佳匹配,但这似乎效率低下。在本文中,我们显示,如果我们同时保持一个双重解决方案,那么只要一次更新就足以执行Dijkstra的算法。作为我们结果的应用,我们提供更快地执行嫉妒循环程序,以找到不可分割货物的无嫉妒分配。我们的算法运行在$\mathrm{O}(mn\2)美元的时间里,而已知的原始算法的约束是$\mathrm{O}(m}3)美元,其中美元和美元分别表示物剂和物品的数量。