graph - Why do we look for the shortest augmenting path in the Hopcroft-Karp algorithm? -


in hopcroft-karp algorithm maximum bipartite matching, why shortest augmenting path in breadth first search? because breadth first search finds shortest path? i'm confused why it's important augmenting path shortest.

finding 1 augmenting path theta(|e|)-time operation. idea behind hopcroft–karp (most augmenting-path algorithms, really, if 1 squints bit) more each theta(|e|)-time iteration.

why shortest augmenting paths? h–k looks several augmenting paths @ once, must vertex-disjoint useful simultaneously. vertex-disjointness creates packing problem, greedy solution pack "densest" (best value space ratio) things first, i.e., shortest augmenting paths. in practice, greedy algorithms work (see, example, analyses of set cover, or h–k on random graphs).

the real answer, though, h–k provably better theta(|e| |v|). formal analysis of h–k uses length of shortest augmenting path measure progress of algorithm, , using maximal set of these paths, h–k increases quantity. when shortest augmenting paths reach length √|v|, it's impossible pack more √|v| of them (vertex disjoint), algorithm has @ √|v| edges go, , total number of iterations o(√|v|), o(|e| √|v|)-step running time.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -