Two Dimension Measures: A New Algorithimic Method for Solving NP- Hard Problems Yang Liu
Two Dimension Measures: A New Algorithimic Method for Solving
NP-Hard Problems
Yang Liu
Outlines
Why Exact AlgorithmsWhy Fpt-algorithmsAlgorithmic techniques: branching search
tree and two dimension braching search tree
Previous worksFuture research
Why NP-Hard Problems
Abundant aplications
Methods of tackling NP-hard problems:
1. Exact algorithms.
2. parameterized algorithms
3. Approximation algorithms
4. Heuristics
Why Exact Algorithms
OptimalCorrect and meaningful for decision
problemsSubroutine for other methodsLimitation of the improvements of
processors
Practical Examples (1)
The Rectlinear Steiner Tree problem Inputs of size up to 1000 Solved in 38 CPU hours.
Practical Examples (2)
The TSP problem (http://www.tsp.gatech.edu/sweden/)
German 15,112 towns
In 2001 22.6 cpu years
Sweden 24,978
Towns
In 2004 72,5000 km
Circuit 33,810 In 2005 66,048,945 units, 15.7 cpu years
Circuit 85,900 In 2006 136 cpu years
Outlines
Why Exact AlgorithmsWhy Fpt-algorithmsAlgorithmic technique: branching search
tree and two dimensional braching search tree
Previous worksProposed future research
Why FPT-algorithms
Still hard to design practical exact algorithms in general
An application may have a parameter k, small compared with input size n.
This parameter can give a better bound on time complexity, like O(f(k)nc).
Practical Fpt-algorithms (1)
Type check: checking the compatibility of type declarations.
Parameter k: the maximum nesting depth of the type declarations.
Normally K<=6 Practical fpt-algorithm of time O(2kn)
Practical Fpt-algorithms (2)
Individual halotyping problemParamters k1 and k2
K1<=n, but normally k1<=10
Usually k2<=19
Practical fpt-algorithm of complexity O(nk22k2+mlogm+mk1)
Outlines
Why Exact AlgorithmsWhy Fpt-algorithmsAlgorithmic techniques: branching search
tree and two dimension braching search tree
Previous worksProposed future research
Algorithmic Techniques
Kernelization, greedy localization, iterative compression, coloring coding, divide cand conquer, divide and coloring, branching search tree
Dynamic programming, prunning the search tree, preprocess the data, local search, measure and conquer
Branching Search Tree
m
m2m1mp
m’m
mmmm
p
mf
xx
mfmfmf
p
)(
1
)()()()()(
1
1
m: measure
f(m): number of subproblems (poly-time solvable)
Time Complexity of Branching Search Tree
Complexity: O(cmpoly(n))=O*(cm).
O*(cn) refers to O(cnpoly(n)).
Example: Exact Algorithm
Finding Minimum Vertex Cover CPick an edge xy, let measure m=#vertices
m=n
m1=n-1 mp=n-2x in C
x not in C
y in C
mmfxx
mfmfmf
62.1)(1
)2()1()(21
Example: fpt-Algorithm
Finding a vertex cover C of k vertices.Pick an edge xy, let measure m=#vertices needs to
be in C
m
m1=m-1 mp=m-1x in C
x not in C
y in C
mmfxx
mfmfmf
2)(1
)1()1()(11
Weakness of Branching Search Tree
Only takes one measureFinding a feedback vertex set fvs of k
verticesChoose a cycle and one vertex must be in
fvs.
)()()1()1()( * kpOkfkfkpfkf
Two Dimensional Braching Search Tree
Challenges:Finding two measures p,qhow to bound f(p,q)Boundary conditions: new combinatorial
properties
Acheivements:faster algorithms for some problems.
Outlines
Why Exact AlgorithmsWhy Fpt-algorithmsAlgorithmic technique: branching search
tree and two dimensional braching search tree
Previous worksProposed future research
3D Matching & 3-Set Packing
a1
a2
an
b1
b2
bn
c1
c2
cn
Symbols: ai, bi, ci
a3 b3c3
.
.
.
.
.
.
.
.
.
triples
Set U of symbols, triple t=<a1,a2,a3>
t1=<a1,a2,a3> and t2=<b1,b2,b3> conflicts if ai=bi for some i
A matching: set of mutually non-conflicting triples.
The maximum matching problem In the Karp’s list of NP-complete
problems Generalization of graph matching
3D Matching & Packing
Finding a matching of k triples
Reference Random Determ
Downey et al. O*((3k)!(3k)9k+1)
Chen et al. O*((5.7k)k)
Koutis O*(10.883k) >O*(320003k)
Fellows et al. >O*(1263k)
Kneis O*(2.523k) O*(163k)
Chen et al. O*(2.523k) O*(12.83k)
Our result O*(2.323k) O*(2.773k)
3D Matching & Packing
For the k-packing problem, most algorithms in the table above apply.
Our algorithm has complexity O*(4.613k)
Remark: Koutis gave a randomized algorithm of time O*(23k) for both k-matching and k-packing problems
Multiway Cut
Multiway Cutterminals
Multiway Cutterminals separator
Multiway Cut
Applications: distributed computing, VLSI, computer vision and more
Finding a separator of k vertices
An algorithm of time O*(4k)
the previous best algorithm of time )4(3* kO
Feedback Vertex Set(undirected graphs)
Feedback Vertex Set (undirected graphs)
Feedback vertex set Remaining graph is a forest
Finding an FVS of k vertices (undirected graphs)
Reference Complexity
Bodlaender, Fellows O*(17(k4)!)
Dowey and Fellows O*((2k+1)k)
Raman et al. O*(max{12k,(4logk)k})
Kanj et al. O*((2logk+2loglogk+18)k)
Raman et al. O*((12logk/loglogk+6)k)
Guo et al. O*(37.7k)
Dehne et al. O*(10.6k)
Our results O*(5k)
Feedback Vertex Set(directed graphs)
Feedback Vertex Set(directed graphs)
Feedback vertex set Remaining graph is a DAG
Finding an FVS of k vertices (directed graphs)Question: fpt or not? Had been an open problem for over 15
years
We developed an algorithm of time O*(4kk!) with our new approach
Finding an FVS of k vertices (undirected graphs)
Reference Complexity
Bodlaender, Fellows O*(17(k4)!)
Dowey and Fellows O*((2k+1)k)
Raman et al. O*(max{12k,(4logk)k})
Kanj et al. O*((2logk+2loglogk+18)k)
Raman et al. O*((12logk/loglogk+6)k)
Guo et al. O*(37.7k)
Dehne et al. O*(10.6k)
Our results O*(5k)
Finding an FVS of k vertices (directed graphs)
Question: fpt or not? Had been open for over 15 years
We developed an algorithm of time O*(4kk!)
Accepted by STOC 2008, JACM
Max Leaf(undirected graphs)
Finding a Spanning tree With at least k leaves
• Equivalent to the minimum connected dominating set problem• Applications: design of communication networks, circuit layouts, and distributed systems.
Finding a spanning tree with k leaves
Reference Complexity
Bodlaender O*((17k4)!)
Downey and Fellows O*((2k)4k)
Fellows et al. O*(14.23k)
Bonsma et al. O*(9.49k)
Bonsma and Zickfeld O*(6.75k)
Our result O*(4k)
Out-branchingOut-branching: a rooted tree
such that there is a unique path
from the root to a leaf.
Finding an out-branching with k leavesMore difficult
Graph minor theory on digraphs is not
mature enough to solve this problemProperties are harder to prove for
digraphs than for undirected graphs
Shown to be fpt only recently
Finding an out-branching with k leaves for SCC and DAG for SCC and for DAG for digraphs for digraphs
Our results: O*(4k)
Remark: Kenis et al. developed similar algorithm.
)2( )log(* 2 kkOO
)2( )log(* 2 kkOO )2( )log(* kkOO
)2( )log(* 3 kkOO
)2( )log(* kkOO
Max Leaf
Finding a spanning tree of maximum leaves
Equal to minimum connected dominating set
Applications: design of communication networks, circuit layouts, and distributed systems.
Max Leaf on Digraphs
Out-branching: a rooted tree such that there is a unique path from the root to a leaf.
Max Leaf: finding an out-branching with maximum leaves
Approximable within )( nO
Finding an out-branching with k leaves
More difficult
Graph minor theory on digraphs is not
mature enough to solve this problemSome property is harder to prove for
digraphs than for undirected graphs
Shown to be fpt 15 years later
Finding an out-branching with k leaves
for SCC and DAG for SCC and for
DAG for digraphs for digraphs
Our results: O*(4k)
)2( )log(* 2 kkOO
)2( )log(* 2 kkOO )2( )log(* kkOO
)2( )log(* 3 kkOO
)2( )log(* kkOO
Outlines
Why Exact AlgorithmsWhy Fpt-algorithmsAlgorithmic technique: branching search
tree and two dimensional braching search tree
Previous worksProposed future research
Multiway Cut
Can we improve the algorithm of O*(4k)?Is there any faster or simpler randomized
algorithm?Is there any algebraic algorithms for this
problem?Is the multi-cut problem fpt?
Feedback Vertex Set
Can we improve the current best algorithms?
Is there randomized algorithm better than O*(4k)?
Is there a deterministic algorithm of O*(4k) for the problem on undirected graphs?
Is there O*(ck) for the problem on digraphs?
Is there any algebraic algorithm?
Max Leaf
Is there any better algorithm?Is there any better algorithm for the
problem on undirected graphs?Is there any faster or simple randomized
algorithm?Is there any algebraic algorithm?
Two Dimension Measures: Further Study
Algorithms by this technique has complexity around O*(4k)
Can we do better? How?
Can we apply this or similar technique to design exact algorithms?
Conclusion
Two dimension measures branching search tree is powerful in design fpt-algorithms.
Need improvement on this technique to design algorithms faster than O*(4k).
Generalize this technique to design exact algorithms.
Questions?
Thank You!