This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: Algorithms Lecture 29: NPHard Problems [ Fa’10 ] 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 NPHard Problems 29.1 ‘Efficient’ Problems A generallyaccepted 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 couldn’t. there are several socalled NPhard problems, which most people believe cannot be solved in polynomial time, even though nobody can prove a superpolynomial lower bound. Circuit satisfiability is a good example of a problem that we don’t 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 flipflops). 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 depthfirstsearch, since we can compute the output of a kinput 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) , 24–30, 1965), Jack Edmonds (Paths, trees, and flowers. Canadian Journal of Mathematics 17:449–467, 1965), and Michael Rabin (Mathematical theory of automata. Proceedings of the 19th ACM Symposium in Applied Mathematics , 153–175, 1966), although similar notions were considered more than a decade earlier by Kurt Gödel and John von Neumann. © Copyright 2011 Jeff Erickson. Released under a Creative Commons AttributionNonCommercialShareAlike 3.0 License ( http://creativecommons.org/licenses/byncsa/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
 Smith
 Computational complexity theory, independent set, NPHard problems

Click to edit the document details