This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Algorithms Lecture 21: NP-Hard Problems The wonderful thing about standards is that there are so many of them to choose from. Real Admiral Grace Murray Hopper If a problem has no solution, it may not be a problem, but a fact not to be solved, but to be coped with over time. Shimon Peres 21 NP-Hard Problems 21.1 Efficient Problems A generally-accepted minimum requirement for an algorithm to be considered efficient is that its running time is polynomial: O ( n c ) for some constant c , where n is the size of the input. 1 Researchers recognized early on that not all problems can be solved this quickly, but we had a hard time figuring out exactly which ones could and which ones couldnt. there are several so-called NP-hard problems, which most people believe cannot be solved in polynomial time, even though nobody can prove a super-polynomial lower bound. Circuit satisfiability is a good example of a problem that we dont know how to solve in polynomial time. In this problem, the input is a boolean circuit : a collection of A ND, OR, and NOT gates connected by wires. We will assume that there are no loops in the circuit (so no delay lines or flip-flops). The input to the circuit is a set of m boolean (T RUE / F ALSE) values x 1 ,..., x m . The output is a single boolean value. Given specific input values, we can calculate the output of the circuit in polynomial (actually, linear ) time using depth-first-search, since we can compute the output of a k-input gate in O ( k ) time. x y x y x y x y x x An And gate, an Or gate, and a Not gate. x 1 x 2 x 3 x 4 x 5 A boolean circuit. inputs enter from the left, and the output leaves to the right. The circuit satisfiability problem asks, given a circuit, whether there is an input that makes the circuit output T RUE, or conversely, whether the circuit always outputs F ALSE. Nobody knows how to solve this problem faster than just trying all 2 m possible inputs to the circuit, but this requires exponential time. On the other hand, nobody has ever proved that this is the best we can do; maybe theres a clever algorithm that nobody has discovered yet! 1 This notion of efficiency was independently formalized by Alan Cobham (The intrinsic computational difficulty of functions. Logic, Methodology, and Philosophy of Science (Proc. Int. Congress) , 2430, 1965), Jack Edmonds (Paths, trees, and flowers. Canadian Journal of Mathematics 17:449467, 1965), and Michael Rabin (Mathematical theory of automata. Proceedings of the 19th ACM Symposium in Applied Mathematics , 153175, 1966), although similar notions were considered more than a decade earlier by Kurt Gdel and John von Neumann....
View Full Document
This note was uploaded on 12/15/2009 for the course 942 cs taught by Professor A during the Spring '09 term at University of Illinois at Urbana–Champaign.
- Spring '09