cheat sheets for hard problems
DESCRIPTION
A very high-level overview of the modern toolkit involved in solving NP-hard problems.TRANSCRIPT
Cheat Sheets for Hard Problems
Some problems tend to be harder than others.
NP
PNP
PNP
NP-complete
PNP
X
solveTSP{blahblah
blahblahblah
}
TSPX
solveTSP{blahblah
blahblahblah
}
TSPX
solveTSP{blahblah
blahblahblah
}
Independent Set
Independent Set
Clique
Independent Set
Clique
Independent SetClique
Independent SetClique
Independent SetClique
Independent SetClique
SolveIndSet { Return Clique( ); }G
TSPX
solveTSP{blahblah
blahblahblah
}
Did you say NP-complete?
Did you say NP-complete?
Travelling SalesmanSatisfiability
Integer Linear ProgrammingMinimum Vertex Cover
Maximum CliqueChromatic NumberIndependent Set
Max-Leaf Spanning TreeMinimum Degree Spanning Tree
Minimum Facility LocationMinimum Broadcast Time
Subset SumDominating Set
Steiner TreeLongest Path
Feedback Vertex SetEdge Dominating Set
3-Dimensional MatchingSet Packing
Minimum Unsplittable FlowMinimum Bandwidth
Minimum Multi-way cut....
Travelling SalesmanSatisfiability
Integer Linear ProgrammingMinimum Vertex Cover
Maximum CliqueChromatic NumberIndependent Set
Max-Leaf Spanning TreeMinimum Degree Spanning Tree
Minimum Facility LocationMinimum Broadcast Time
Subset SumDominating Set
Steiner TreeLongest Path
Feedback Vertex SetEdge Dominating Set
3-Dimensional MatchingSet Packing
Minimum Unsplittable FlowMinimum Bandwidth
Minimum Multi-way cut....
Heuristics
Heuristics
Formal analysis?
You have Polynomial Time.
You have Polynomial Time.WORK BACKWARDS!
Approximation & Randomized Algorithms
A no-compromise situation?
A no-compromise situation?
A no-compromise situation?Exploit additional structure in the input.
Parameterized & Exact Analysis
Parameterized & Exact Analysis
Chromatic Number is easy on Graphs.Interval
Parameterized & Exact Analysis
Chromatic Number is easy on Graphs.Planar*
Parameterized & Exact Analysis
Chromatic Number is easy on Graphs.Bipartite
Good solutions tend to involve a combination of several techniques.
Vertex Cover
Vertex Cover
Every edge has at least one end point in a vertex cover.
Vertex Cover
Every edge has at least one end point in a vertex cover.
Is there a Vertex Cover with at most k vertices?
A vertex with more than k neighbors.
Throw away all vertices with degree (k+1) or more.
(And decrease the budget appropriately.)
Throw away all vertices with degree (k+1) or more.
After all the high-degree vertices are gone...
(And decrease the budget appropriately.)
...any vertex can cover at most k edges.
...any vertex can cover at most k edges.
Suppose the current budget is (k-x).
...any vertex can cover at most k edges.
Suppose the current budget is (k-x).
If the number of edges in the graph exceeds k(k-x)...?
Lots of edges - no small vertex cover possible.
Few edges - brute force becomes feasible.
Lots of edges - no small vertex cover possible.
Few edges - brute force becomes feasible.
win/winsituation
Common Sense
Common Sense
Approximate
Common Sense
Approximate
Randomize
Common Sense
Approximate
Randomize
Exploit Input Structure
Common Sense
Approximate
Randomize
Exploit Input Structure
http://neeldhara.com/summer2013
Slides and Other Resources