A unified algorithmic framework for Max-Flow computations (Toward the design of a combinatorial optimization programming environment)