Design and Analysis of Algorithms - - PDF document

design and analysis of algorithms
SMART_READER_LITE
LIVE PREVIEW

Design and Analysis of Algorithms - - PDF document

Design and Analysis of Algorithms


slide-1
SLIDE 1

Design and Analysis of Algorithms

ผศ. ดร. สมชาย ประสิทธิ์จูตระกูล ภาควิชาวิศวกรรมคอมพิวเตอร จุฬาลงกรณมหาวิทยาลัย 2542

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

คําเตือน

เนื้อหาอันรวมถึงขอความ ตัวเลข สัญลักษณ รูปภาพ และ คําบรรยาย อาจมีขอผิดพลาดแฝงอยู ผูจัดทําจะไมรับผิด ชอบตอความเสียหายทั้งทางดานผลการเรียน สุขภาพกาย และสุขภาพจิตใดๆ อันเนื่องมาจากการใชสื่อการเรียนนี้

Dynamic Programming

Longest Common Subsequence

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Outline

  • Definition
  • Optimal Substructure
  • Recurrence of solution
  • Example
  • Analysis

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Subsequence

  • X = < s, o, m, c, h, a, i >
  • subsequences of X

– < s, o, m, c, h, a, i > → < s, o, m > – < s, o, m, c, h, a, i > → <c, h, a, i> – < s, o, m, c, h, a, i > → <s, o, h, a, i> – ...

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Common Subsequence

  • X = < s, o, m, c, h, a, i >, Y = < c, h, u, a, n >
  • common subsequences of X and Y

– < s, o, m, c, h, a, i > → < c > < c, h, u, a, n > – < s, o, m, c, h, a, i > → <c, a> < c, h, u, a, n > – < s, o, m, c, h, a, i > → <c, h, a> < c, h, u, a, n > – ...

slide-2
SLIDE 2

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Longest Common Subsequence

  • Input : two sequences, X = < x1, x2,…, xm >

and Y = < y1, y2,…, yn >

  • Output : longest common subsequence of X and Y
  • X = <a, b, c, b, d, a, b>, Y = <b, d, c, a, b, a>
  • LCS( X, Y ) = <b, c, a, b>, <b, d, a, b>

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Optimal Structure of an LCS

a a Xi Yj xi yj LCS( Xi, Yj ) = LCS( Xi-1, Yj-1 ) + xi xi = yj c( i, j ) = c( i-1, j-1 ) + 1

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Optimal Structure of an LCS

a b Xi Yj xi yj LCS( Xi, Yj ) = LCS( Xi-1, Yj ) xi ≠ yj c( i, j ) = c( i-1, j)

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Optimal Structure of an LCS

a b Xi Yj xi yj LCS( Xi, Yj ) = LCS( Xi, Yj-1 ) xi ≠ yj c( i, j ) = c( i, j-1 )

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

Recurrence of Solution

Xi Yj xi yj c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 )) if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0

slide-3
SLIDE 3

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 0 0 1

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 0 0 1 1

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 1 0 0 1 1

slide-4
SLIDE 4

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 1 0 0 1 1 1

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 1 0 0 1 1 1 1

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 1 0 0 1 1 1 1 1

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 1 0 0 1 1 1 1 1 2

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 1 0 0 1 1 1 1 1 2 1 1 2 2 2

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 0 0 1 1 1 1 1 2 1 1 2 2 2 1 1 1 2 2 3

slide-5
SLIDE 5

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

c( i, j ) = 1+c( i-1, j-1 ) max(c( i-1, j ) c( i, j-1 ))

if i=0 or j=0 if i, j > 0 and xi= yj if i, j > 0 and xi≠ yj B 0 0 0 0 0 0 1 1 1 1 1 2 1 1 2 2 2 1 1 1 2 2 3 1 2 2 2 3

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Example

yj B A C D A B C B D xi

j 0 1 2 3 4 5 i

1 2 3 4 5

B 0 0 0 0 0 0 1 1 1 1 1 2 1 1 2 2 2 1 1 1 2 2 3 1 2 2 2 3

ht t p: / / www. cp. eng. chul a. ac. t h/ f acul t y/ spj

LCS : Analysis

Θ( mn ) 0 0

j 0 1 2 ... m i

1 2 n ... x x .... x x x .... x x x .... x