Algorithm 加权二部图最优匹配的快速算法

Algorithm 加权二部图最优匹配的快速算法,algorithm,optimization,graph-algorithm,Algorithm,Optimization,Graph Algorithm,我需要高效地解决分配问题(给定一个完整的加权二部图,选择一个具有最大总权重的完美匹配),从这里开始我一直在使用O(n^3)版本。然而,我读到的一篇论文在“稠密和稀疏线性分配问题的最短增广路径算法”中提到了一种“更有效的方法”,这在付费墙后面是可悲的。有没有我应该知道的更快的算法(要么是渐进的,要么只是使用更小的常数/更统一的内存访问或其他)?我使用的是浮点权重而不是整数权重,这对于匈牙利方法来说似乎并不重要,但对于更快的整数实现来说可能是个问题。任何相关链接都将不胜感激。有几篇论文提供了快速加权

我需要高效地解决分配问题(给定一个完整的加权二部图,选择一个具有最大总权重的完美匹配),从这里开始我一直在使用O(n^3)版本。然而,我读到的一篇论文在“稠密和稀疏线性分配问题的最短增广路径算法”中提到了一种“更有效的方法”,这在付费墙后面是可悲的。有没有我应该知道的更快的算法(要么是渐进的,要么只是使用更小的常数/更统一的内存访问或其他)?我使用的是浮点权重而不是整数权重,这对于匈牙利方法来说似乎并不重要,但对于更快的整数实现来说可能是个问题。任何相关链接都将不胜感激。

有几篇论文提供了快速加权算法 二部图

最近的一篇论文Ramshaw和Tarjan,2012“关于不平衡二部图中的最小成本分配”提出了一种称为FlowAssign和Refine的算法,该算法解决了最小成本、不平衡二部分配问题,并使用权重缩放来解决完美和不完美分配问题,但不是增量的,运行时复杂性为 O(平方米(n)*对数(n*C)) 其中m是图形中的边数(又称弧数), n是两个图中要匹配的最大节点数, C是一个大于或等于最大值的常数 边重和大于或等于1

权重缩放是算法能够实现的功能 与s相关的性能要好得多 其中s是匹配节点的数量

在20世纪90年代早期还可以找到其他快速解决方案。 1993年的一篇论文叫做“快速匹配:一种非常快速的算法” Lee和Orlin的“指派问题” 提出了一种算法,它们估计算法的运行时间 有效线性 以弧为单位的图形大小。

快速匹配算法作为一个整体解决分配问题 n个最短路径问题的序列。他们使用交替的方式 源节点和目标节点之间的最短路径 以及减少计算数量的启发式方法。 作者通过以下方法估计平均运行时复杂性: 经验结果与理论界的比较 算法。他们发现他们的算法与数字成线性关系 图边(也称为弧)的,但算法是 性能不如“正向反向拍卖” Bertsekas的算法,也使用 交替最短路径。供以后参考 没有打印在纸上,但可能在 “分配问题的反向拍卖算法”, 卡斯塔农,1992年, 离散数学和计算机科学的MACS系列

还有Berkeley分割算法 与人类绘制的边界相比,基准代码在评估分割结果时用于二部匹配。 他们使用Goldberg CSA软件包 据报告,其运行时与图形大小成线性关系 求解稀疏最小费用分配问题。 参考文献是 “分配问题的有效成本调整算法”,1993年 戈德伯格和肯尼迪 以及Cherkasky和Goldberg,“关于实现PushRelabel 最大流量问题的方法,“Proc。第四 整数规划和组合优化配置,第157页-
171,1995年5月。

你可以根据那篇文章下载代码:你试图解决的问题有多大?匈牙利算法可以通过优先级队列被加速到n^2*logn,但对于较小的队列,它可能无法获得回报。只有几百个顶点。这种加速将非常有用。你对此有参考吗?我猜@AntsAasma是指这个。我同意,链接有时会消失。在阅读论文后,我将很快添加更多关于该算法以及Ramshaw和Tarjan 2012 FlowAssign算法的内容。