Skip to main content
QUICK REVIEW

[论文解读] Efficient implementations of minimum-cost flow algorithms

Zoltán Király, Péter Kovács|arXiv (Cornell University)|Jul 26, 2012
Complexity and Algorithms in Graphs参考文献 49被引用 51
一句话总结

本文在 LEMON C++ 库中提出了最小费用最大流(MCF)算法的高效开源实现,首次将 Goldberg 的部分增广-重标号方法应用于费用缩放算法中。费用缩放和网络单纯形实现优于 LEDA 和 MCFZIB 等成熟求解器,且在大规模网络上与 CS2 竞争力相当,尤其在大规模网络上表现优异。

ABSTRACT

This paper presents efficient implementations of several algorithms for solving the minimum-cost network flow problem. Various practical heuristics and other important implementation aspects are also discussed. A novel result of this work is the application of Goldberg's recent partial augment-relabel method in the cost-scaling algorithm. The presented implementations are available as part of the LEMON open source C++ optimization library (\url{http://lemon.cs.elte.hu/}). The performance of these codes is compared to well-known and efficient minimum-cost flow solvers, namely CS2, RelaxIV, MCF, and the corresponding method of the LEDA library. According to thorough experimental analysis, the presented cost-scaling and network simplex implementations turned out to be more efficient than LEDA and MCF. Furthermore, the cost-scaling implementation is competitive with CS2. The RelaxIV algorithm is often much slower than the other codes, although it is quite efficient on particular problem instances.

研究动机与目标

  • 开发多种最小费用最大流算法的高效且稳健的开源实现,以支持实际部署。
  • 在多样化的大型网络实例(包括合成与真实世界问题)上评估这些实现的性能。
  • 将所提出的实现与知名求解器(如 CS2、LEDA、MCFZIB 和 RelaxIV)进行比较,以建立性能基准。
  • 探索新颖的实现技术,特别是将 Goldberg 的部分增广-重标号方法集成到费用缩放算法中。
  • 基于网络规模、密度和问题特征,提供选择最适配 MCF 算法的实用指导。

提出的方法

  • 实现了完整的 MCF 算法套件:SCC、MMCC、CAT、SSP、CAS、COS(三种变体)以及具有五种枢轴策略的 NS。
  • 将 Goldberg 的部分增广-重标号方法集成到费用缩放算法中,这是一种新颖的应用,通过加速流增广提升性能。
  • 采用先进的数据结构与启发式方法,包括高效的生成树表示和动态树结构,以优化网络单纯形和费用缩放算法的性能。
  • 将实现设计为 LEMON C++ 模板库的一部分,支持与其它图算法和优化算法的模块化集成。
  • 使用 NETGEN 和 GOTO 生成器以及真实世界实例,在大规模网络(最多数百万个节点/边)上进行了广泛的基准测试。
  • 在一致的实验条件下,使用公开可用的求解器(CS2、LEDA、MCFZIB、RelaxIV)进行标准化比较,以确保公平性和可复现性。

实验结果

研究问题

  • RQ1Goldberg 的部分增广-重标号方法如何提升费用缩放算法在最小费用最大流问题中的性能?
  • RQ2在不同网络规模和密度下,哪种 MCF 算法——费用缩放或网络单纯形——表现更优?
  • RQ3在实际应用中,所提出的 LEMON 实现与 CS2、LEDA、MCFZIB 和 RelaxIV 等成熟求解器相比表现如何?
  • RQ4循环取消和增广路径算法在各类问题实例中的性能特征是什么?
  • RQ5RelaxIV 在何种条件下表现优于或劣于其他求解器?其性能为何不稳定?

主要发现

  • 采用部分增广-重标号的费用缩放实现与 CS2 竞争力相当,且显著快于 LEDA 库的实现。
  • 网络单纯形实现大幅优于 MCFZIB,且在小到中等规模网络(最多数千个节点)上速度最快。
  • 在大规模网络(数百万个节点和弧)上,费用缩放算法由于具有更优的渐近时间复杂度,持续优于网络单纯形。
  • RelaxIV 表现出极不稳定的性能:在特定实例(如 NETGEN 问题)上非常快,但在其他实例上慢几个数量级,表明其鲁棒性差。
  • 循环取消和增广路径算法通常不如费用缩放和网络单纯形,但在流分裂极少时可能表现更优。
  • LEMON 中所提出的实现并非独立工具,而是更大规模开源库的一部分,可无缝集成到复杂的优化工作流中。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。