42
A deterministic near- linear time algorithm for finding minimum cuts in planar graphs Thank you, Steve, for presenting it for us!!! Parinya Chalermsook Jittat Fakcharoenphol Danupon Nanongkai Kasetsart University, Thailand

A deterministic near-linear time algorithm for finding minimum cuts in planar graphs Thank you, Steve, for presenting it for us!!! Parinya Chalermsook

Embed Size (px)

Citation preview

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

Minimum cuts To find a cut (S, V-S) such that the

weights of edges that cross the cut is minimized

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

Basic framework Find some cut S; use it to separate

the graph.

G

S

G1

G2

Basic framework 3 cases.

G

S

G1

G2Find them recursively

Do some work for this case

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?

Planar graphs: duality duality

Primal graph G

Planar graphs: duality duality

Dual graph G* of G

Planar graphs: duality Faces in G correspond to nodes in

G*

A cycle in G corresponds to a cut in G*

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

How can this help?

Some edge

Some shortest path

Some shortest path

Avoid dealing with this cut

Still, other cases to deal with

Some edge

Some shortest path

Some shortest path

This can occurs

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

The partitioning cut S The problem reduces

to finding an edge separator in a tree.

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

Thanks again, Steve!

Thank you...