Exact Exponential AlgorithmsFor a long time computer scientists have distinguished between fast and slow algo rithms. Fast (or good) algorithms are the algorithms that run in polynomial time, which means that the number of steps required for the algorithm to solve a problem is bounded by some polynomial in the length of the input. All other algorithms are slow (or bad). The running time of slow algorithms is usually exponential. This book is about bad algorithms. There are several reasons why we are interested in exponential time algorithms. Most of us believe that there are many natural problems which cannot be solved by polynomial time algorithms. The most famous and oldest family of hard problems is the family of NP complete problems. Most likely there are no polynomial time al gorithms solving these hard problems and in the worst case scenario the exponential running time is unavoidable. Every combinatorial problem is solvable in ?nite time by enumerating all possi ble solutions, i. e. by brute force search. But is brute force search always unavoid able? De?nitely not. Already in the nineteen sixties and seventies it was known that some NP complete problems can be solved signi?cantly faster than by brute force search. Three classic examples are the following algorithms for the TRAVELLING SALESMAN problem, MAXIMUM INDEPENDENT SET, and COLORING. |
Contents
1 | |
2 Branching | 13 |
3 Dynamic Programming | 31 |
4 InclusionExclusion | 50 |
5 Treewidth | 77 |
6 Measure Conquer | 101 |
7 Subset Convolution | 125 |
8 Local Search and SAT | 140 |
Other editions - View all
Common terms and phrases
algorithm computing algorithm msc algorithm solving algorithm to compute analysis branching algorithm branching rule branching vector brute-force search cardinality Chap clause CNF formula cops denote DOMINATING SET problem dynamic programming algorithm elements exact algorithms exponential space exponential time algorithms feedback vertex set Fomin graph coloring graph G Hamiltonian path homomorphisms input graph instance integer k-CNF k-partitions k-SAT Kratsch Lemma Let G lexicographical ordering lexicographically maximum independent set Measure & Conquer minimal separators MINIMUM DOMINATING SET MINIMUM SET COVER Möbius transform neighbors node Notes in Comput NP-complete NP-hard number of vertices obtained partition path decomposition pathwidth polynomial space algorithm potential maximal cliques recursively reduction rule satisfying assignment search tree SET COVER problem set of G SET problem solution solvable subproblem TRAVELLING SALESMAN problem tree decomposition treewidth truth assignment undirected graph upper bound vertex of G vertex subsets weight width worst-case running