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 29: NP-Hard Problems [ Fa10 ] 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 29 NP-Hard Problems 29.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 x y x y x y x An A ND gate, an O R gate, and a N OT 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 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. Copyright 2011 Jeff Erickson. Released under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License ( http://creativecommons.org/licenses/by-nc-sa/3.0/ ). Free distribution is strongly encouraged; commercial distribution is expressly forbidden. See http://www.cs.uiuc.edu/~jeffe/teaching/algorithms/ for the most recent revision....
View Full Document
- Spring '11