Pseudo-polynomial time algorithm (The concept and the terminology are important) - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Pseudo-polynomial time algorithm (The concept and the terminology are important)

Description:

... such that the difference between any two consecutive numbers in the subsequence is ... The machine can process only one job at a time, and job aj must run ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 20
Provided by: csCit
Category:

less

Transcript and Presenter's Notes

Title: Pseudo-polynomial time algorithm (The concept and the terminology are important)


1
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) (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 Ai of a1, a2,
    , ai 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(ai))true.

2
Example
j
i 0 1 2 3 4 5 6 7 8 9 10 11 12 13
1 T T F F F F F F F F F F F F
2 T T F F F F F F F T T F F F
3 T T F F F T T F F T T F F F
4 T T F T T T T F T T T F T T
5 T T F T T T T F T T T T T T
Figure 4.8 Table of t(i,j) for the instance of
PARTITION for which Aa1,a2,a3,a4,a5, s(a1)1,
s(a2)9, s(a3)5, s(a4)3, and s(a5)8. The
answer for this instance is "yes", since
t(5,13)T, reflecting the fact that
s(a1)s(a2)s(a4)1326/2.
3
Backtracking
  • in WB
  • if ( t(n, W) false) then stop
  • While (igt 0 ) do
  • if (t(i, W) true)
  • if (t(i-1, W) true) then ii-1
  • else
  • WW-s(ai) print ai
    ii-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(ai)2n100000 . (binary number of n1 bits ).
  • So B is at least O(2n). The input size is O(n2)
    if there some ai with S(ai)2n.
  • 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
(No Transcript)
7
(No Transcript)
8
(No Transcript)
9
(No Transcript)
10
(No Transcript)
11
  • Change-making problem
  • Given an amount n and unlimited quantities of
    coins of each of the denominations
  • d1, d2, , dm,
  • 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-dk)1.
  • k1, 2, , m.

12
  • Change-making problem
  • Initial values d(0)0, d(i)?.
  • equation d(i) min d(i-dk)1
  • k1, 2, , m
    i-dk0
  • d12 and d25. i7.
  • 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)2d(0).
    Print out 2 and goto d(0). Whenever reach d(0),
    we stop. ) for i3, 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 i0,
    d(i,s) ? for i1, 2, , d(0, v)?
  • d(k, v) will give the length of the shortest
    path. A backtracking process can give the path.

14
  • i z, u, x, v, y
  • 0 0 ? ? ? ?
  • 1 ? 6z 7z ? ?
  • ? ? 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
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 ss1s2sn. 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 a1, a2, , an to
    process on that machine. Each job aj has an
    integer processing time tj, a profit pj and an
    integer deadline dj. The machine can process only
    one job at a time, and job aj must run
    uninterruptedly for tj consecutive time units. If
    job aj is completed by its deadline dj, you
    receive a profit pj, 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. )
Write a Comment
User Comments (0)
About PowerShow.com