, Volume 33, Issue 6, pp 383-403

Implementing Goldberg's max-flow-algorithm — A computational investigation

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access

Abstract

In this paper we review Goldberg's algorithm for solving max-flow-problems on networks and we discuss several ideas for implementing and enhancing this approach. We present computational results for these implementations and we compare our best Goldberg-codes with implementations of Dinic's and Karzanov's method presented in literature.

Our results show that the implementations of Goldberg's algorithm outperform the other codes significantly. Here the essential breakthrough is obtained by the use of a modification of Goldberg's basic labeling scheme by which the number of labeling steps is reduced drastically.

Zusammenfassung

Wir diskutieren einige Strategien und Datenstrukturen für eine effiziente Implementierung des Preflow-Push-Algorithmus von Goldberg zur Bestimmung maximaler Flüsse in Netzwerken. Wir berichten über numerische Erfahrungen mit diesen Implementierungen und Vergleichtests mit publizierten Codes zur Lösung des Max-Flow-Problems, die auf der Basis der Algorithmen von Dinic und Karzanov entwickelt wurden.

Unsere Ergebnisse zeigen, dafß die Goldberg-Codes wesentlich weniger Rechenzeit benötigen. Der entscheidende Durchbruch wird dabei durch eine neue Modifikation der Markierungsmethode von Goldberg erzielt, durch die die Anzahl der Markierungsschritte drastisch reduziert wird.