Push-relabel maximum flow algorithm