This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: IE170: Algorithms in Systems Engineering: Lecture 32 Jeff Linderoth Department of Industrial and Systems Engineering Lehigh University April 23, 2007 Jeff Linderoth (Lehigh University) IE170:Lecture 32 Lecture Notes 1 / 48 This Time A whirlwind tour of computational complexity You are not responsible for this material on the final, but it is stuff that I thought you might like to know. It is also covered in Chapter 34 of your textbook. Jeff Linderoth (Lehigh University) IE170:Lecture 32 Lecture Notes 2 / 48 Ingredients of Complexity Computational Complexity The ingredients that we need to build a theory of computational complexity for problem classification are the following 1 A class C of problems to which the theory applies 2 A (nonempty) subclass E ⊆ C of “easy” problems 3 A (nonempty) subclass H ⊆ C of “hard” problems 4 A relation “not more difficult than” between pairs of problems Our goal is just to put some definitions around this machinery Thm: Q ∈ E ,P Q ⇒ P ∈ E Thm: P ∈ H ,P Q ⇒ Q ∈ H Jeff Linderoth (Lehigh University) IE170:Lecture 32 Lecture Notes 3 / 48 Ingredient #1: Problems Decision Problems Ingredient #1 — Problem Class C The theory we develop applies only to decision problems Problems that have a “yesno” answer. Opt: max { c T x  x ∈ S } Decision: ∃ x ∈ S such that c T x ≥ k ? Example: Hamiltonian Circuit Instance: Graph G = ( V,E ) Question: Does G contain a Hamiltonian Circuit? Example: Traveling Salesperson Instance: Graph G = ( V,E ) , Integer K Question: Does G contain a Hamiltonian Circuit of length ≤ K ? Jeff Linderoth (Lehigh University) IE170:Lecture 32 Lecture Notes 4 / 48 Ingredient #1: Problems Decision Problems Ingredients #2 and #3 To define “easy” and “hard”, we need to make a few definitions so we can define the running time of an algorithm. The running time of an algorithm depends on size of the input. ( Duh. ) A time complexity function specifies, as a function of the problem size, the largest 1 amount of time needed by an algorithm to solve any problem instance. How do we measure problem size? The length of the amount of information necessary to represent the problem in a reasonable encoding scheme. Example: TSP, N,c ij Example: Knapsack: N,a j ,c j ,b 1 Here is our “worst case” Jeff Linderoth (Lehigh University) IE170:Lecture 32 Lecture Notes 5 / 48 Ingredient #1: Problems Decision Problems What is Reasonable? Don’t be stupid (pad the input data with unnecessary information) Represent numbers in binary notation. That’s how computers do it anyway An integer 2 n ≤ x < 2 n +1 can be represented by a vector ( δ ,δ 1 ,...,δ n ) , where x = ∑ n i =0 δ i 2 i It requires a logarithmic number of bits to represent x ∈ Z We always assume that numbers are rational , so they can be encoded with two integers....
View
Full Document
 Spring '07
 Ralphs
 Systems Engineering, Computational complexity theory, Lehigh University, Jeff Linderoth

Click to edit the document details