1 Pseudo-polynomial time algorithm (The concept and the terminology are important) Partition Problem: Input: Finite set A=(a 1, a 2, …, a n } and a size.

Slides:



Advertisements
Similar presentations
Greedy Algorithms Greed is good. (Some of the time)
Advertisements

Polynomial-time reductions We have seen several reductions:
What is Intractable? Some problems seem too hard to solve efficiently. Question 1: Does an efficient algorithm exist?  An O(a ) algorithm, where a > 1,
1 NP-completeness Lecture 2: Jan P The class of problems that can be solved in polynomial time. e.g. gcd, shortest path, prime, etc. There are many.
NP-Complete Problems Polynomial time vs exponential time
The Theory of NP-Completeness
© The McGraw-Hill Companies, Inc., Chapter 8 The Theory of NP-Completeness.
Parallel Scheduling of Complex DAGs under Uncertainty Grzegorz Malewicz.
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
Computability and Complexity 13-1 Computability and Complexity Andrei Bulatov The Class NP.
1 Pseudo-polynomial time algorithm (The concept and the terminology are important) Partition Problem: Input: Finite set A=(a 1, a 2, …, a n } and a size.
1 Vertex Cover Problem Given a graph G=(V, E), find V' ⊆ V such that for each edge (u, v) ∈ E at least one of u and v belongs to V’ and |V’| is minimized.
The Theory of NP-Completeness
1 Assignment 4. This one is cancelled since there is a solution on website. I new assignment will be given on Nov. 28. (Due on Friday of Week 14. Drop.
1 More On Dynamic programming Algorithms Shortest path with edge constraint: Let G=(V, E) be a directed graph with weighted edges. Let s and v be two vertices.
1 Pseudo-polynomial time algorithm (The concept and the terminology are important) Partition Problem: Input: Finite set A=(a 1, a 2, …, a n } and a size.
88- 1 Chapter 8 The Theory of NP-Completeness P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class.
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
1 NP-Complete Problems Polynomial time vs exponential time –Polynomial O(n k ), where n is the input size (e.g., number of nodes in a graph, the length.
Pseudo-polynomial time algorithm (The concept and the terminology are important) Partition Problem: Input: Finite set A=(a1, a2, …, an} and a size s(a)
Chapter 11: Limitations of Algorithmic Power
NP-Complete Problems (Fun part)
Complexity Issues Mark Allen Weiss: Data Structures and Algorithm Analysis in Java Lydia Sinapova, Simpson College.
Approximation Algorithms Motivation and Definitions TSP Vertex Cover Scheduling.
1 NP-Complete Problems (Fun part) Polynomial time vs exponential time –Polynomial O(n k ), where n is the input size (e.g., number of nodes in a graph,
10/31/02CSE Greedy Algorithms CSE Algorithms Greedy Algorithms.
Assignment 4. (Due on Dec 2. 2:30 p.m.) This time, Prof. Yao and I can explain the questions, but we will NOT tell you how to solve the problems. Question.
10/31/02CSE Greedy Algorithms CSE Algorithms Greedy Algorithms.
Dynamic Programming – Part 2 Introduction to Algorithms Dynamic Programming – Part 2 CSE 680 Prof. Roger Crawfis.
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.
MCS312: NP-completeness and Approximation Algorithms
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.
Design Techniques for Approximation Algorithms and Approximation Classes.
Theory of Computing Lecture 15 MAS 714 Hartmut Klauck.
The Complexity of Optimization Problems. Summary -Complexity of algorithms and problems -Complexity classes: P and NP -Reducibility -Karp reducibility.
TECH Computer Science NP-Complete Problems Problems  Abstract Problems  Decision Problem, Optimal value, Optimal solution  Encodings  //Data Structure.
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.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
Princeton University COS 423 Theory of Algorithms Spring 2001 Kevin Wayne Approximation Algorithms These lecture slides are adapted from CLRS.
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
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.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
CS 3343: Analysis of Algorithms Lecture 18: More Examples on Dynamic Programming.
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.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
LIMITATIONS OF ALGORITHM POWER
Algorithms for hard problems Introduction Juris Viksna, 2015.
Lecture. Today Problem set 9 out (due next Thursday) Topics: –Complexity Theory –Optimization versus Decision Problems –P and NP –Efficient Verification.
CSE 421 Algorithms Richard Anderson Lecture 27 NP-Completeness Proofs.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
Introduction to NP Instructor: Neelima Gupta 1.
COSC 3101A - Design and Analysis of Algorithms 14 NP-Completeness.
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.
Hard Problems Some problems are hard to solve.  No polynomial time algorithm is known.  E.g., NP-hard problems such as machine scheduling, bin packing,
Young CS 530 Ad. Algo. D&A NP-Completeness1 NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey.
The NP class. NP-completeness
All-pairs Shortest paths Transitive Closure
Greedy Technique.
Richard Anderson Lecture 26 NP-Completeness
Richard Anderson Lecture 26 NP-Completeness
Design and Analysis of Algorithm
JinJu Lee & Beatrice Seifert CSE 5311 Fall 2005 Week 10 (Nov 1 & 3)
Pseudo-polynomial time algorithm (The concept and the terminology are important) Partition Problem: Input: Finite set A=(a1, a2, …, an} and a size s(a)
Presentation transcript:

1 Pseudo-polynomial time algorithm (The concept and the terminology are important) Partition Problem: Input: Finite set A=(a 1, a 2, …, a n } and a size s(a) (integer) for each a  A. Question: Is there a subset A’  A such that  a  A’ s(a) =  a  A –A’ s(a)? Theorem: Partition problem is NP-complete (Karp, 1972). An dynamic algorithm: For i  n and j  0.5  a  A s(a), define t(i, j) to be true if and only if there is a subset A i of {a 1, a 2, …, a i } such that  a  Ai s(a)=j. Formula: T(i,j)=true if and only if t(i-1, j)=true or t(i-1, j-s(a i ))=true.

2 Example i TTFFFFFFFFFFFF 2TTFFFFFFFTTFFF 3TTFFFTTFFTTFFF 4TTFTTTTFTTTFTT 5TTFTTTTFTTTTTT Figure 4.8 Table of t(i,j) for the instance of PARTITION for which A={a 1,a 2,a 3,a 4,a 5 }, s(a 1 )=1, s(a 2 )=9, s(a 3 )=5, s(a 4 )=3, and s(a 5 )=8. The answer for this instance is "yes", since t(5,13)=T, reflecting the fact that s(a 1 )+s(a 2 )+s(a 4 )=13=26/2. j

3 Backtracking i=n; W=B; if ( t(n, W)== false) then stop; While (i> 0 ) do { if (t(i, W) == true) { if (t(i-1, W)== true) then i=i-1; else { W=W-s(a i ); print “a i ” i=i-1; } }

4 Time complexity The algorithm takes at most O(nB) time to fill in the table, where (Each cell needs constant time to compute). Do we have a polynomial time algorithm to solve the Partition Problem and thus all NP-complete problems? –No. –O(nB) is not polynomial in terms of the input size. S(a i )=2 n =10000…0. (binary number of n+1 bits ). So B is at least O(2 n ). The input size is O(n 2 ) if there some a i with S(a i )=2 n. B is not polynomial in terms of n (input size) in general. However, if any upper bound is imposed on B, (e.g., B is Polynomial), the problem can be solved in polynomial time for this special case. (This is called pseudo-polynomial.)

5 0-1 version

6

7

8

9

10

11 Change-making problem: Given an amount n and unlimited quantities of coins of each of the denominations d 1, d 2, …, d m, find the smallest number of coins that add up to n or indicate that the problem does not have a solution. Solution: Let d(i) be the minimum number of coins used for amount i. Initial values: d(0)=0, d(i)= . equation: d(i) = min d(i-d k )+1. k=1, 2, …, m.

12 Change-making problem: Initial values: d(0)=0, d(i)= . equation: d(i) = min d(i-d k )+1 k=1, 2, …, m & i-d k ≥0 d 1 =2 and d 2 =5. i=7. i= 0, 1, 2, 3, 4, 5, 6, 7 d(i): 0, , 1, , 2, 1, 3, 2. Backtracking: $5, $2. (how do you get d(7)=2? d(7)=d(2)+5. Print $5 and goto d(2). How do you get d(2)? D(2)=2+d(0). Print out $2 and goto d(0). Whenever reach d(0), we stop. ) for i=3, since d(3)= , there is no solution.

13 More On Dynamic programming Algorithms Shortest path with edge constraint: Let G=(V, E) be a directed graph with weighted edges. Let s and v be two vertices in V. Find a shortest path from s to u with exactly k edges. Here k  n-1 is part of the input. Solution: Define d(i, v) be the length of the shortest path from s to v with exactly i edges. d(i, v)=min {c(w, v)+d(i-1, w)} w  V. Initial values: d(i, s)=0, for i=0, d(i,s)=  for i=1, 2, …, d(0, v)=  ; d(k, v) will give the length of the shortest path. A backtracking process can give the path.

z uv xy i z, u, x, v, y 0 0     1  6z 7z   2   14u 4x 2u 3 4y 2v  9y 23x.

15 Exercise: Let T be a rooted binary tree, where each internal node in the tree has two children and every node (except the root) in T has a parent. Each leaf in the tree is assigned a letter in  ={A, C, G, T}. Figure 1 gives an example. Consider an edge e in T. Assume that every end of e is assigned a letter. The cost of e is 0 if the two letters are identical and the cost is 1 if the two letters are not identical. The problem here is to assign a letter in  to each internal node of T such that the cost of the tree is minimized, where the cost of the tree is the total cost of all edges in the tree. Design a polynomial-time dynamic programming algorithm to solve the problem.

16 A A C Figure 1 A

17 Assignment 4. (Due on Friday of Week 13. Drop it in Mail Box 71 or 72) This time, Sze Man Yuen and I can explain the questions, but we will NOT tell you how to solve the problems. Question 1. (30 points) Give a polynomial time algorithm to find the longest monotonically increasing subsequence of a sequence of n numbers. Your algorithm should use linear space. (10 points for linear space) (Assume that each integer appears once in the input sequence of n numbers) Example: Consider sequence 1,8, 2,9, 3,10, 4, 5. Both subsequences 1, 2, 3, 4, 5 and 1, 8, 9, 10 are monotonically increasing subsequences. However, 1,2,3, 4, 5 is the longest.

18 Assignment 4. Question 2. (30 points) Given an integer d and a sequence of integers s=s 1 s 2 …s n. Design a polynomial time algorithm to find the longest monotonically increasing subsequence of s such that the difference between any two consecutive numbers in the subsequence is at least d. Example: Consider the input sequence 1,7,8, 2,9, 3,10, 4, 5. The subsequence 1, 2, 3, 4, 5 is a monotonically increasing subsequence such that the difference between any two consecutive numbers in the subsequence is at least 1. 1, 3, 5 is a monotonically increasing subsequence such that the difference between any two consecutive numbers in the subsequence is at least 2.

19 Assignment 4. Question 3. (40 points). Suppose you have one machine and a set of n jobs a 1, a 2, …, a n to process on that machine. Each job a j has an integer processing time t j, a profit p j and an integer deadline d j. The machine can process only one job at a time, and job a j must run uninterruptedly for t j consecutive time units. If job a j is completed by its deadline d j, you receive a profit p j, but if it is completed after its deadline, you receive a profit of 0. Give a dynamic programming algorithm to find the schedule that obtains the maximum amount of profit. What is the running time of your algorithm? (Let d be the biggest deadline, the running time can be related to d. )