Instructor: Shengyu Zhang - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Instructor: Shengyu Zhang

Description:

... (j) = length of the longest path ending at j. Length here: number of ... Any path ending at j must go through an edge (i,j) from some i. Where is the best i? ... – PowerPoint PPT presentation

Number of Views:11
Avg rating:3.0/5.0
Slides: 23
Provided by: cseCu
Category:

less

Transcript and Presenter's Notes

Title: Instructor: Shengyu Zhang


1
CSC3160 Design and Analysis of Algorithms
Week 6 Dynamic Programming (2)
  • Instructor Shengyu Zhang

2
Problem 2 longest increasing subsequence
3
Problem 1 longest increasing subsequence
  • A sequence of numbers a1, a2, , an
  • Eg 5, 2, 8, 6, 3, 6, 9, 7
  • A subsequence a subset of these numbers taken in
    order
  • ai_1, ai_2, , ai_j, where 1 i1 lt i2 lt lt ij
    n
  • An increasing subsequence a subsequence in which
    the numbers are strictly increasing
  • Eg 5, 2, 8, 6, 3, 6, 9, 7
  • Problem Find a longest increasing subsequence.

4
A good algorithm
  • Consider the following graph where
  • V a1, , an
  • E (ai,aj) i lt j and ai lt aj
  • longest increasing subsequence
  • ? longest path
  • Give me an algorithm ? 3 minutes.

5
Attempt
  • Consider the solution.
  • Suppose it ends at j.
  • The path must come from some edge (i,j) as the
    last step.
  • If we do this recursively
  • L(j) maxi (i,j) ?E L(i)1
  • L(j) length of the longest path ending at j
  • Length of nodes on the path.
  • Simple recursion exponential.

6
Again
  • We observe that subproblems are used over and
    over again.
  • So we record the answers to them.
  • And use them for later computation.

7
Algorithm
  • for j 1, 2, . . . , n
  • L(j) 1 maxL(i) (i, j)?E
  • return maxj L(j)
  • Run this algorithm on the given example (3 min)
  • 5, 2, 8, 6, 3, 6, 9, 7
  • Whats L(j) j 1, , 8? 3 minutes.
  • 1 1 2 2 2 3 4 4

8
Correctness
  • L(j) length of the longest path ending at j
  • Length here number of nodes on the path
  • L(j) 1 maxL(i) (i, j)?E
  • Any path ending at j must go through an edge
    (i,j) from some i
  • Where is the best i?
  • Its taken care of by the max operation.
  • By induction, property proved.

9
Complexity
  • Obtaining the graph -O(n2)
  • for j 1, 2, . . . , n
  • L(j) 1 maxL(i) (i, j) ? E -O(N(j))
  • return maxj L(j)
  • Total O(n2) SjO(N(j)) O(n2)

10
Whats the strategy used?
  • We break the problem into smaller ones.
  • We find an order of the problems s.t. easy
    problems appear ahead of hard ones.
  • We solve the problems in the order of their
    difficulty, and write down answers along the way.
  • When we need to compute a hard problem, we use
    the answers to the easy problems to help.

11
Questions to think about
  • Weve learned two problems using dynamic
    programming.
  • Chain matrix multiplication solve problem(i,j)
    from j-i 1 to n-1
  • Longest increasing subsequence solve problem(i)
    from i1 to n.
  • Question Why different?
  • What happens if we compute chain matrix
    multiplication by solving problem(i) from i1 to
    n?
  • What happens if we compute longest increasing
    subsequence by solving problem(i,j) from j-i 1
    to n-1?

12
In general
  • Think about whether you can use algorithm method
    A,B,C on problem X,Y,Z
  • Thatll help you to understand both the
    algorithms and the problems.

13
Problem 3 Edut dstamnce
14
Definition and applications
  • Edut dstamnce
  • ? Edit distance
  • E(x,y) the minimal number of single-character
    edits needed to transform x to y.
  • edit deletion, insertion, substitution
  • x and y dont need to have the same length
  • Applications
  • Misspelling correction
  • Similarity search (for information retrieval,
    plagiarism catching, DNA variation)

15
What are subproblem now?
  • It turns out that the edit distance between
    prefixes is a good one.
  • We want to know E(x1xi, y1yj). Suppose we
    already know
  • E(x1xi-1, y1yj-1) d1
  • E(x1xi-1, y1yj) d2
  • E(x1xi, y1yj-1) d3
  • Express E(x1xi, y1yj) as a function of d1, d2,
    d3 and comparison of (xi,yj). 5 minutes.

16
Answer
  • E(x1xi-1, y1yj-1) d1
  • E(x1xi-1, y1yj) d2
  • E(x1xi, y1yj-1) d3
  • E(x1xi, y1yj) min diff(xi,yj)d1, 1d2,
    1d3
  • Two cases
  • xi?yj
  • xiyj

17
If xi?yj
  • To finally match the last character, we need to
    do at least one of the following three
  • Delete xi
  • Delete yj
  • Substitute yj for xi
  • Each costs 1.
  • It reduces to three subproblems
  • Delete xi E(x1xi-1, y1yj)
  • Delete yj E(x1xi, y1yj-1)
  • Substitute yj for xi E(x1xi-1, y1yj-1)
  • Also see the next slide for this case
  • We pick whichever is the best, so
  • E(x1xi, y1yj) min 1d1, 1d2, 1d3 in case
    of xi?yj

18
If xiyj
  • If we dont delete xi or yj simply E(x1xi-1,
    y1yj-1) d1.
  • Otherwise
  • If we delete xi it reduces to E(x1xi-1, y1yj).
  • If we delete yj it reduces to E(x1xi, y1yj-1).
  • Each costs 1.
  • So E(x1xi, y1yj) min d1, 1d2, 1d3 in case
    of xi?yj

19
Now the algorithm
The initialization part corresponds to
E(empty_string, y1yj) j. (The best way is
simply insert y1yj one by one.) And similarly
E(x1xi, empty_string) i.
  • for i 0, 1, 2, ... , m
  • E(i,0) i
  • for j 1, 2, ... , n
  • E(0, j) j
  • for i 1, 2, ... , m
  • for j 1, 2, ... , n
  • E(i, j) minE(i -1, j)1, E(i, j-1)1,
    E(i-1,j-1)diff(i,j)
  • return E(m, n)
  • Diff(i,j) 1 if i?j 0 otherwise

20
Running it on (polynomial, exponential)
E(i, j) min E(i -1, j)1, E(i, j-1)1,
E(i-1,j-1)diff(i,j)
21
Complexity
  • for i 0, 1, 2, ... , m
  • E(i,0) i
  • for j 1, 2, ... , n
  • E(0, j) j
  • for i 1, 2, ... , m
  • for j 1, 2, ... , n
  • E(i, j) minE(i -1, j)1, E(i, j-1)1,
    E(i-1,j-1)diff(i,j)
  • return E(m, n)
  • O(1) time for each square, so clearly O(mn) in
    total.

22
Questions?
Write a Comment
User Comments (0)
About PowerShow.com