1.1 Chapter 1: Introduction What is the course all about? Problems, instances and algorithms Running time v.s. computational complexity General description.

Slides:



Advertisements
Similar presentations
Analysis of Algorithms
Advertisements

Problems and Their Classes
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
The Theory of NP-Completeness
1 NP-Complete Problems. 2 We discuss some hard problems:  how hard? (computational complexity)  what makes them hard?  any solutions? Definitions 
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
Hardness Results for Problems P: Class of “easy to solve” problems Absolute hardness results Relative hardness results –Reduction technique.
1 Optimization problems such as MAXSAT, MIN NODE COVER, MAX INDEPENDENT SET, MAX CLIQUE, MIN SET COVER, TSP, KNAPSACK, BINPACKING do not have a polynomial.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 21 Instructor: Paul Beame.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
The Theory of NP-Completeness
NP-Complete Problems Problems in Computer Science are classified into
Analysis of Algorithms CS 477/677
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
Chapter 11: Limitations of Algorithmic Power
Toward NP-Completeness: Introduction Almost all the algorithms we studies so far were bounded by some polynomial in the size of the input, so we call them.
Chapter 11 Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
NP-complete and NP-hard problems. Decision problems vs. optimization problems The problems we are trying to solve are basically of two kinds. In decision.
Hardness Results for Problems
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
The Theory of NP-Completeness 1. What is NP-completeness? Consider the circuit satisfiability problem Difficult to answer the decision problem in polynomial.
Chapter 11 Limitations of Algorithm Power. Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples:
CSCE350 Algorithms and Data Structure
A. Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd ed., Ch. 11 ©2012 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved.
Computational Complexity Polynomial time O(n k ) input size n, k constant Tractable problems solvable in polynomial time(Opposite Intractable) Ex: sorting,
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Complexity Classes (Ch. 34) The class P: class of problems that can be solved in time that is polynomial in the size of the input, n. if input size is.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 8: Complexity Theory.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
P and NP.
Polynomial-time reductions We have seen several reductions:
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
CSCI 3160 Design and Analysis of Algorithms Tutorial 10 Chengyu Lin.
Cliff Shaffer Computer Science Computational Complexity.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
§1.4 Algorithms and complexity For a given (optimization) problem, Questions: 1)how hard is the problem. 2)does there exist an efficient solution algorithm?
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
1 Chapter 34: NP-Completeness. 2 About this Tutorial What is NP ? How to check if a problem is in NP ? Cook-Levin Theorem Showing one of the most difficult.
CSE 589 Part V One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important. Bertrand Russell.
LIMITATIONS OF ALGORITHM POWER
CS6045: Advanced Algorithms NP Completeness. NP-Completeness Some problems are intractable: as they grow large, we are unable to solve them in reasonable.
Computability NP complete problems. Space complexity. Homework: [Post proposal]. Find PSPACE- Complete problems. Work on presentations.
CS 3813: Introduction to Formal Languages and Automata Chapter 14 An Introduction to Computational Complexity These class notes are based on material from.
NP-Completeness  For convenience, the theory of NP - Completeness is designed for decision problems (i.e. whose solution is either yes or no).  Abstractly,
Chapter 11 Introduction to Computational Complexity Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
NP Completeness Piyush Kumar. Today Reductions Proving Lower Bounds revisited Decision and Optimization Problems SAT and 3-SAT P Vs NP Dealing with NP-Complete.
Young CS 331 D&A of Algo. NP-Completeness1 NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and.
1 Ch 10 - NP-completeness Tractable and intractable problems Decision/Optimization problems Deterministic/NonDeterministic algorithms Classes P and NP.
Lecture. Today Problem set 9 out (due next Thursday) Topics: –Complexity Theory –Optimization versus Decision Problems –P and NP –Efficient Verification.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
1 P and NP. 2 Introduction The Traveling Salesperson problem and thousands of other problems are equally hard in the sense that if we had an efficient.
1 The Theory of NP-Completeness 2 Review: Finding lower bound by problem transformation Problem X reduces to problem Y (X  Y ) iff X can be solved by.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
CSE 332: NP Completeness, Part II Richard Anderson Spring 2016.
ICS 353: Design and Analysis of Algorithms NP-Complete Problems King Fahd University of Petroleum & Minerals Information & Computer Science Department.
Chapter 10 NP-Complete Problems.
Hard Problems Introduction to NP
Analysis and design of algorithm
Chapter 1: Introduction
ICS 353: Design and Analysis of Algorithms
Chapter 11 Limitations of Algorithm Power
NP-Complete Problems.
NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson, W.H. Freeman and Company, 1979.
CSC 380: Design and Analysis of Algorithms
Algorithms CSCI 235, Spring 2019 Lecture 36 P vs
Presentation transcript:

1.1 Chapter 1: Introduction What is the course all about? Problems, instances and algorithms Running time v.s. computational complexity General description of the theory of NP-completeness Problem samples

1.2 What is this Course About? Particular Topics:  NP-completeness  NP-hardness  Heuristics  PSPACE-completeness  The polynomial hierarchy, etc. Generally:  Computational complexity  Intractability “The inherent computational complexity of problems”

1.3 Problems, Instances and Algorithms A problem is a general question to be answered that consists of:  Some number of parameters (a generic instance)  A statement of what properties a solution possesses (page 4) A problem instance is a collection of specific values for all of a problems parameters. An algorithm is a general, step-by-step procedure for solving a specific problem, e.g., a computer program. An algorithm is said to solve a problem if that algorithm can be applied to any instance of the problem and is guaranteed to always produce a solution for that instance.

1.4 The Traveling Salesman Optimization Problem TRAVELING SALESMAN OPTIMIZATION INSTANCE: Set C of m cities, distance d(c i, c j )  Z + for each pair of cities c i, c j  C. GOAL: Find a tour of C (i.e., a permutation of C) having minimum total length. A specific instance of the TSP optimization problem: C = {c 1, c 2, c 3, c 4 } D(c 1,c 2 ) = 10 D(c 1,c 3 ) = 5 D(c 1,c 4 ) = 9 D(c 2,c 3 ) = 6 D(c 2,c 4 ) = 9 D(c 3,c 4 ) = 3

1.5 TSP Optimization Instance One TSP instance: C = {c 1, c 2, c 3, c 4 } D(c 1,c 2 ) = 10 D(c 1,c 3 ) = 5 D(c 1,c 4 ) = 9 D(c 2,c 3 ) = 6 D(c 2,c 4 ) = 9 D(c 3,c 4 ) = 3

1.6 Problems, Instances and Algorithms Note that our definition of a problem is somewhat general, and contains many useless problems: INSTANCE: Positive integer B. QUESTION: Compute the largest prime number less than The question to be asked is usually in terms of the instance parameters. Let  denote a problem. Then the parameters for  define a multi- dimensional “data space” (or collection) of instances referred to as D .  Each point in this space represents one specific instance.

1.7 Optimization vs. Decision Problems Many problems of interest are optimization problems.  Minimization, maximization Although not as interesting on the surface, the theory will focus on decision problems, which are problems that have yes or no answers. A decision problem  consists of two parts:  A list of parameters (i.e., a generic instance); defines a set D  of instances.  A yes/no question asked in terms of the parameters; specifies a subset of yes instances Y  which is a subset of D . Why decision problems?  No loss of generality; results extend to optimization problems  As a matter of convenience; easier to transform/reduce decision problems than it is optimization problems  Simple formal counterpart – a formal language  Unreasonably large output does not affect running time or complexity.

1.8 The Traveling Salesman Decision Problem (TSP) TRAVELING SALESMAN INSTANCE: Set C of m cities, distance d(c i, c j )  Z + for each pair of cities c i, c j  C positive integer B. QUESTION: Is there a tour of C having length B or less, I.e., a permutation of C such that: *See the books appendix for a list of over 300 well know/studies problems.

1.9 TSP Instance One TSP instance: C = {c 1, c 2, c 3, c 4 } D(c 1,c 2 ) = 10 D(c 1,c 3 ) = 5 D(c 1,c 4 ) = 9 D(c 2,c 3 ) = 6 D(c 2,c 4 ) = 9 D(c 3,c 4 ) = 3 B = 27 The instance description, such as on the previous page, is sometimes referred to as a generic instance.

1.10 Running Time v.s. Complexity We will distinguish between the running time of a specific algorithms v.s. the computational complexity of a particular problem. Example: Matrix Multiplication INSTANCE: Two n x n matrices A and B SOLUTION: One n x n matrix C = A x B Running times of specific algorithms:  Simple row/column algorithm- O(n 3 )  Strassen’s algorithm- O(n 2.81 )  Somebody else’s algorithm- O(n 2.43 ) Statement on the inherent computational complexity of matrix multiplication:  Any algorithm for matrix multiplication requires  (n 2 ) in the worst case, i.e, O(n 2 ) is the best any algorithm could possibly do (this is an information theoretic argument).

1.11 Running Time v.s. Complexity Example: Sorting INSTANCE: List of n integers. SOLUTION: The list of integers in non-decreasing order. Running times of specific algorithms:  Real dumb algorithm- O(n 3 )  Bubble sort- O(n 2 )  Merge sort- O(nlogn) Statement on the inherent computational complexity of sorting:  Any comparison-based sorting algorithm requires  (nlogn) operations in the worst case, i.e, O(nlogn) is the best any algorithm could possibly do. Is this just lower bound theory?  Yes, in a sense, but we are not concerned with specific running times, but rather polynomial v.s. exponential.

1.12 The Satisfiability Problem (SAT) SATISFIABILITY INSTANCE: Set U of variables and a collection C of clauses over U. QUESTION: Is there a satisfying truth assignment for C? Example #1: U = {u 1, u 2 } C = {{ u 1, u 2 }, { u 1, u 2 }} Answer is “yes” - satisfiable by make both variables T Example #2: U = {u 1, u 2 } C = {{ u 1, u 2 }, { u 1, u 2 }, { u 1 }} Answer is “no”

1.13 Satisfiability, Cont. What would be a simple algorithm for SAT?  Build a truth table  Running time would be (at least) O(n2 m )  m is the number of variables  n is the length of the expression  see pages 7 and 8 from the book Is a more efficient algorithm possible?  probably… How about one with polynomial running time?  Come see me if you find one!  A live white turkey and a Stanford job awaits…

1.14 General Points We are interested in the “border” between exponential and polynomial.  Given a problem, is there a polynomial time algorithm for it, or are all algorithms for it exponential in running time? We are not interested in what the specific polynomial or exponential is, “per se.”  Although the theory can be modified/refined to consider these. => Simplistically and inaccurately speaking, saying that a problem is “NP-complete” or “NP-hard” is essentially saying that there is no (deterministic) polynomial time algorithm for that problem.

1.15 General Points, Cont. Polynomial time does not necessarily imply practical.  O(n 1000 )  O(n 2 ) could be 10,000,000n 2 NP-complete/NP-hard/intractible does not necessarily imply that their aren’t useful, practical algorithms.  Our measures are worst-case, and average case may not be all that bad, e.g., quicksort is O(n 2 ) worst case, but O(nlogn) on average.  In theory, an algorithm could have worst-case running time O(2 n ) because of one case, and O(n 2 ) average  Simplex algorithm for linear programming  Branch-and-bound algorithm for knapsack problem.  isn’t all that bad.

1.16 General Points, Cont. Proving a problem is NP-complete or NP-hard is just the beginning:  Heuristic development and analysis (the problem doesn’t go away)  Special cases of the problem may be solvable in polynomial time  Sub-exponential time algorithms may exist.

1.17 General Description of the Theory We will describe a class of (decision) problems called NP. NP consists of those decision problems that can be solved in Non- deterministic Polynomial time  Holy cow! What is that, and how could it be possibly be important? Why decision problems?  Simplicity  Convenience  No loss of generality in doing so NP

1.18 General Description of the Theory We will define a subset of NP called P. P consists of those problems from NP that can (also) be solved in (deterministic) polynomial time  Why is deterministic in parenthasis? A very big, important question is P = NP?  i.e., can all problems in NP be solved in (deterministic) polynomial time? The answer to this question appears to be no, i.e., there exist problems in NP for which there is no known (deterministic) polynomial time algorithm. NP P

1.19 General Description of the Theory This last point will lead us to define another subset of problems in NP called NP-complete. The above diagram implies several relationships  P and NP-complete are proper subsets of NP  P and NP-complete do not intersect Note that none of these has been shown to be true, however, both are widely believed to be true. Henceforth, “polynomial time” will be used as short for “deterministic polynomial time.” NP P NP-complete

1.20 Facts about NP-complete Problems Suppose  is an NP-complete problem There are no known polynomial time algorithms for   All known algorithms require exponential time, e.g., exhaustive search If   P then P = NP  If any NP-complete problem can be solved in polynomial time, then so can all problems in NP. It is not known for certain whether  requires exponential time or not.  All NP-complete problems appear to require exponential time, but only because no polynomial time algorithm has been found for any of them. Give a problem , we would like to know if   P or   NP-complete. NP P NP-complete

1.21 Facts about NP-complete Problems The second observation suggests why showing an NP-complete problem is important: since NP contains many very practical problems that people have tried (and failed) to come up with polynomial time algorithms for, it is highly unlikely that any NP-complete problem can be solved in polynomial time.

1.22 More Sample Problems DIVISIBILITY BY 2 INSTANCE: Integer k. QUESTION: Is k even? CLIQUE INSTANCE: A Graph G = (V, E) and a positive integer J <= |V|. QUESTION: Does G contain a clique of size J or more? GRAPH K-COLORABILITY INSTANCE: A Graph G = (V, E) and a positive integer K <= |V|. QUESTION: Is the graph G K-colorable?