def fordFulkerson(net): flow = Network(net.n) residual = net.substract(flow) minc, path = findExtendingPath(residual) while minc: flow.append(minc, path) residual = net.substract(flow) minc, path = findExtendingPath(residual) return flow
def edmondsKarp(net): flow = Network(net.n) residual = net.substract(flow) minc, path = findShortestExtendingPath(residual) while minc: flow.append(minc, path) residual = net.substract(flow) minc, path = findShortestExtendingPath(residual) return flow