Articles, Blog , , , , , 2 Comments

The Hopcroft-Karp algorithm goes like this. We first initialize the matching to the empty set, then we repeat the following. First, we build an alternating level graph rooted at the unmatched vertices on the left part of the partition using breadth-first search. Let’s pause for a moment here and see how this works in an

Read More

Articles, Blog , , , , , 6 Comments

Now we turn to the concept of a vertex cover, which will play a role analogous to the one played by the concept of minimum cut in our discussion of maximum flows. Given a graph, G, we say that S is a vertex cover if every edge is incident on a vertex in S. Thus

Read More

Articles, Blog , , , , , 0 Comments

We turn now to the key part of the analysis where we show that each phase of the Dinic algorithm takes V times E time. As with Edmonds-Karp, we will use a level graph. In this case, however, the algorithm actually builds the graph, whereas in Edmonds-Karp we simply used it for the analysis. The

Read More

Articles, Blog , , , , , 0 Comments

This idea that we should prefer heavier flows brings us to the scaling algorithm. One idea is to find the heaviest possible flow. We could do this by starting with an empty graph and then adding an edge with the largest remaining residual capacity until there was an ST path. But this would be unnecessarily

Read More

Articles, Blog , , , , , 0 Comments

We start the search for a deeper understanding, with the idea of the augmenting path. Recall that in our original treatment of the max flow problem, we were given a flow over some graph, and we defined the residual network, which captured the ways in which we were allowed to modify this flow. This included

Read More