A deterministic near-linear time algorithm for finding minimum cuts in planar graphs
Thank you, Steve, for presenting it for us!!!
Parinya ChalermsookJittat FakcharoenpholDanupon Nanongkai
Kasetsart University, Thailand
Previous results The best-known result for general
graphs is given by Karger [K00], and it was the best known for planar graphs.
His algorithm runs in O(m log3n), which is O(n log3n) in planar graphs.
Previous results Karger’s algorithm is a randomized
algorithm The best-known deterministic
algorithm runs in O(mn+ n2log n) given by Nagamochi and Ibaraki
Our algorithm a deterministic algorithm for
planar graphs which runs in O(n log2n)
a divide and conquer algorithm
Talk outline Review of useful properties of
planar graphs The main tool: Weihe’s max-flow
algorithm Partitioning cut S. Given the partitioning cut S, how to
find the minimum cut that cross S? How to find the partition?
Talk outline Review of useful properties of planar graphs
The main tool: Weihe’s max-flow algorithm Partitioning cut S. Given the partitioning cut S, how to find the
minimum cut that cross S? How to find the partition?
Duality of weighted graphs The weight of each primal edge
becomes the weight of the corresponding dual edge.
We usually refer to the weights of dual edges as edge lengths. So that we can talk about the length
of paths or cycles in the dual graph.
Minimum cuts and shortest simple cycles Also from duality, a cut in G
corresponds to a set of cycles in G*. Easy to show that a minimum cut
in G correspond to some simple cycle in G*. Thus, a minimum cut corresponds to
a shortest simple cycle in G*
Our algorithm essentially uses this equivalence.
It uses shortest paths in the dual graph to help finding the minimum cut in the primal.
Minimum cuts and shortest simple cycles
A shortest path and a shortest simple cycles Can consider only those which intersect
each other once.
a cycle
some shortest path
A shortest path and a shortest simple cycles Can consider only those which intersect
each other once.
another cycle as short
some shortest path
Talk outline Review of useful properties of planar graphs
The main tool: Weihe’s max-flow algorithm
Partitioning cut S. Given the partitioning cut S, how to find the
minimum cut that cross S? How to find the partition?
Minimum (s,t) cuts
The minimum cut that separates s and t. Weihe’s max-flow algorithm finds it in
planar graph in O(n log n) time
ts
Key idea Use Weihe’s algorithm as a
subroutine.
Thus, to find the mincut that crosses S, we need to identify the pair of nodes (s,t) which are on different sides of the mincut.
We use shortest paths in the dual graph to do this.
Talk outline Review of useful properties of planar graphs The main tool: Weihe’s max-flow algorithm
Partitioning cut S. Given the partitioning cut S, how to find the
minimum cut that cross S? How to find the partition?
In the dual graph S corresponds to some cycle If some part of S is a shortest path:
SSome shortestpath
G
Some mincut
In the dual graph S corresponds to some cycle If some part of S is a shortest path:
SSome shortestpath
G
Some mincut
Can look at this one instead.
The structure of S Simplified version Described as a cycle in the dual
graph
Some edge
Some shortest path
Some shortest path
Talk outline Review of useful properties of planar graphs The main tool: Weihe’s max-flow algorithm Partitioning cut S.
Given the partitioning cut S, how to find the minimum cut that cross S ?
How to find the partition?
Main lemma Any shortest cycle
that crosses S cannot contain both face F1 and face F2 simultaneously.
F1
F2
What is F1 and F2? In the primal
graph F1 and F2 correspond to some pair of nodes.
The mincut we want is the min (F1,F2)-cut.
One application of Weihe’s algorithm finds this mincut.
F1
F2
Running time Assume that S can be found in linear
time. Weihe’s algorithm takes O(nlogn) time Running time recurrence:
T(n) = T(n1) + T(n-n1) +O(n log n) If the graph is divided equally, O(logn)
levels of recursions are needed. Our algorithm runs in O(nlog2n) time.
Talk outline Review of useful properties of planar graphs The main tool: Weihe’s max-flow algorithm Partitioning cut S. Given the partitioning cut S, how to find the
minimum cut that cross S ?
How to find the partition?
How to find the partition? Using duality again. Using idea similar to one in Lipton-
Tarjan’s separator theorem.
Another duality: spanning trees
Any spanning tree T in G
A set of edges in G*, corresponding to T’s non-tree edges, forms also a spanning tree in G*.
The partitioning cut S Take any shortest
path tree T* in G* starting from some node r.
Can be found in linear time using an algorithm by Henzinger, Klein, Rao and Subramanian [HKRS94].
r
The partitioning cut S Any non-tree
edge induces a fundamental cycle with the required property.
Which one yields balanced partitioning?
r
The partitioning cut S The non-tree edge that
we want to find is some tree edge e in the primal spanning tree.
Furthermore, the number of faces inside the induced cycle is the number of tree nodes that e separates in the primal graph.
r
Details, details, details. . . To be able to find a separator in a
tree, we need the degrees of the nodes to be bounded.
Thus, we first triangulate the primal graph.
Details, details, details. . . As a result of the triangulation:
With slight modifications, other thing works out.
Some path along some face
Some shortest path
Some shortest path