Abstract
We investigate the practical efficiency of various maximum flow algorithms by a great number of systematically-designed computational experiments, where we develop and summarize the techniques useful for solving the problem in practice. The methods implemented are depth-first search, breadth-first search, Dinic's, Karzanov's, three Indians' and Galil and Naamad's. We conclude that, among the implemented methods, Dinic's method and Karzanov's are the most efficient. In these two methods, Dinic's method is so simple that we can code it quite easily, and takes rather small memory storages. Karzanov's method is superior from the viewpoint of the complexity in the worst case.