Algorithmic Game Theory and Internet Computing Vijay V. Vazirani Georgia Tech Dispelling an Old Myth about an Ancient Algorithm
Central to the Theory of Algorithms Kuhn, 1955: Primal-dual paradigm Edmonds, 1965: Definition of P Valiant, 1979: Definition of #P Jerrum, Valiant & Vazirani, 1986: Equivalance of random generation and approximate counting
Matching in game theory and economics Gale & Shapley, 1962: Stable marriage Shapley & Shubik, 1971: Matching markets
Matching in game theory and economics Gale & Shapley, 1962: Stable marriage Shapley & Shubik, 1971: Matching markets Mehta, Saberi, Vazirani & Vazirani, 2005: Adwords market
U V
U V
U V
U V
U V
U V
U V
Maximum matching algorithm
O(n) iterations, O(m)/iteration, so O(mn) algorithm.
Shortest augmenting paths
Disjoint. Therefore aug paths w.r.t. M. Maximal set. M
Shortest augmenting paths phase
Hopcroft & Karp, 1973:
Micali & Vazirani, 1980:
In G =(U, V, E) w.r.t. current matching M define level(v): length of shortest alternating path from an unmatched U vertex to v. Find, via an alternating BFS, starting from all unmatched vertices in U. At search level i: level i vertices find level i+1 vertices.
U V
0 U
0 1 U V
0 2 1 U U V
U U V V Set of predecessors
U U U V V
U U U V V
U U U V V
U U U V V V 5
U U U V V V 5
U U U V V V 5
U U U V V V 5
U U U V V V 5
U U U V V V 5
U U U V V V 5
General Graphs
G =(V, E). W.r.t. matching M define: evenlevel(v): length of min even alternating path from an unmatched vertex to v. oddlevel(v): length of min odd alternating path from an unmatched vertex to v. minlevel(v): smaller of e(v) and o(v) maxlevel(v): larger of e(v) and o(v)
Qualitative difference BFS honesty: Minimum length alternating paths in bipartite graphs are BFS honest.
Qualitative difference BFS honesty: Minimum length alternating paths in bipartite graphs are BFS honest. Not so in non-bipartite graphs!
Qualitative difference BFS honesty: Not so in non-bipartite graphs! Because shortest f to u path has v on it at opposite parity.
Central issue Need to find longer and longer alternating paths to v in order to find min alternating paths to other vertices.
Central issue Need to find longer and longer alternating paths to v in order to find min alternating paths to other vertices. Should require exponential time!
Saving grace Incredible structure of minimum length alternating paths. Will give a purely graph-theoretic definition of blossoms from this perspective.
Will mark predecessors
bridge base
WANT Find “blossom” by identifying “base” i.e., highest bottleneck w.r.t. predecessors.
WANT Find “blossom” by identifying “base” i.e., highest bottleneck w.r.t. predecessors. If a nested blossom is encountered on the way, should skip to its base.
New algorithmic procedure: Double Depth First Search
In a layered graph, assume bridge (a,b) a and b: special vertices on highest layer (layers correspond to minlevels) Edges can skip layers (nested blossoms) Accomplish WANT. In time: O(no. of edges above “base”)
WANT Find “blossom” by identifying “base” i.e., highest bottleneck w.r.t. predecessors. If a nested blossom is encountered on the way, should skip to its base. If no bottleneck, then reach 2 unmatched vertices – min aug path found!
GOT MORE …
WANT Find “blossom” by identifying “base” i.e., highest bottleneck w.r.t. predecessors. If a nested blossom encountered on the way, should skip to its base. If no bottleneck, then reach 2 unmatched vertices – min aug path found!
WANT Find “blossom” by identifying “base” i.e., highest bottleneck w.r.t. predecessors. If a nested blossom encountered on the way, should skip to its base – mark blossom so this can be done efficiently. If no bottleneck, then reach 2 unmatched vertices – min aug path found!
Let tenacity(v) = t. Consider the highest vertex of tenacity > t on each minlevel(v) and maxlevel(v) path.
Let tenacity(v) = t. Consider the highest vertex of tenacity > t on each minlevel(v) and maxlevel(v) path.
Let tenacity(v) = t. Consider the highest vertex of tenacity > t on each minlevel(v) and maxlevel(v) path.
The base of a vertex Theorem: Let v be a vertex of tenacity t. Consider the highest vertex of tenacity > t on each minlevel(v) and maxlevel(v) path. There is a ! such vertex. Denoted: base(v)
Blossom Let tenacity(b) > t.
Support of a bridge Let (u, v) = bridge of tenacity t support(u, v) = vertices of tenacity t found in DDFS from (u, v). Bridge (u, v) is responsible for assigning maxlevels to these vertices.
Main ideas in algorithm DDFS Precise synchronization of events
At search level i: MIN: level i vertices reach, via alternating BFS, all vertices having minlevel of i+1. MAX: Run DDFS on each bridge of tenacity 2i+1 to find maxlevels of all vertices of tenacity 2i+1. Algorithm: intertwined BSF & DDFS
At search level i: MIN: level i vertices reach, via alternating BFS, all vertices having minlevel of i+1. MAX: Run DDFS on each bridge of tenacity 2i+1 to find maxlevels of all vertices of tenacity 2i+1. Algorithm: intertwined BSF & DDFS
tenacity(bridge) = 13 Will do DDFS at search level 6.
After DDFS at search level 6.
At search level i: MIN: level i vertices reach, via alternating BFS, all vertices having minlevel of i+1. MAX: Run DDFS on each bridge of tenacity 2i+1 to find maxlevels of all vertices of tenacity 2i+1. Algorithm: intertwined BSF & DDFS
Are we done?
Must show: Every vertex having tenacity 2i+1 lies in the support of a bridge of tenacity 2i+1
The agents that assign levels minlevel: props maxlevel: bridges
WANT Find “blossom” by identifying “base” i.e., highest bottleneck w.r.t. predecessors. If a nested blossom encountered on the way, should skip to its base – mark blossom so this can be done efficiently. If no bottleneck, then reach 2 unmatched vertices – min aug path found!
Computing base*(v) Using set-union algorithm of Tarjan, Gabow & Tarjan, 1985: Linear time on RAM. Open: Path compression suffices (by charging edges of blossoms)
GOT MORE …
Q: How will next path be found in “half-eaten” blossom?
Q: How will next path be found in “half-eaten” blossom? A: Since base*(v) is removed, no part of “half-eaten” blossom lies on a disjoint min augmenting path!
Single thought?!