• Tidak ada hasil yang ditemukan

Design and Analysis of Algorithms

N/A
N/A
Protected

Academic year: 2024

Membagikan "Design and Analysis of Algorithms"

Copied!
7
0
0

Teks penuh

(1)

Design and Analysis of Algorithms

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

จุฬาลงกรณมหาวิทยาลัย 2542

http://www.cp.eng.chula.ac.th/faculty/spj

คําเตือน

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

Dynamic Programming

Longest Common Subsequence

Outline

• Definition

• Optimal Substructure

• Recurrence of solution

• Example

• Analysis

(2)

http://www.cp.eng.chula.ac.th/faculty/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>

– ...

http://www.cp.eng.chula.ac.th/faculty/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 >

– ...

Longest Common Subsequence

• Input : two sequences, X = < x 1 , x 2 ,…, x m >

and Y = < y 1 , y 2 ,…, y n >

• 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>

Optimal Structure of an LCS

a a X i

Y j

x i

y j

LCS( X i , Y j ) = LCS( X i-1 , Y j-1 ) + x i x i = y j

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

(3)

http://www.cp.eng.chula.ac.th/faculty/spj

Optimal Structure of an LCS

a b X i

Y j

x i

y j LCS( X i , Y j ) = LCS( X i-1 , Y j )

x i ≠ y j

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

http://www.cp.eng.chula.ac.th/faculty/spj

Optimal Structure of an LCS

a b X i

Y j

x i

y j LCS( X i , Y j ) = LCS( X i , Y j-1 )

x i ≠ y j

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

Recurrence of Solution

X i Y j

x i

y j

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0

0

(4)

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0 0

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0 0 0

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0

0 0 0 0 1

(5)

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 1

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

1 0 0 1 1

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

1 0 0

1 1 1

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

1 0 0 1

1 1 1

(6)

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

1 0 0 1

1 1 1

1

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

1 0 0 1

1 1 1

1 2

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0

1 0 0 1

1 1 1

1 2

1 1 2 2 2

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0 0 0

1

1 1 1

1 2

1 1 1 2 2 2

1 1 2 2 3

(7)

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

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

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

0 if i=0 or j=0

if i, j > 0 and x i = y j if i, j > 0 and x i ≠ y j B

0 0 0 0 0

0 0 0 0 0 0 0 0 0

1

1 1 1

1 2

1 1 1 2 2 2 1 1 2 2 3 1 2 2 2 3

http://www.cp.eng.chula.ac.th/faculty/spj

LCS : Example

y j D C A B

A B C B D x i

j 0 1 2 3 4 5

i

0 1 2 3 4 5

B 0 0 0 0 0

0 0 0 0 0 0 0 0 0

1

1 1 1

1 2

1 1 1 2 2 2 1 1 2 2 3 1 2 2 2 3

LCS : Analysis

Θ ( mn )

0 0

0

0 0 0 0

j 0 1 2 ... m

i

0 1 2 n

...

x x .... x

x x .... x

x x .... x

Referensi

Dokumen terkait

Definition 1.2 (Levitin) Brute force adalah pendekatan yang langsung/lem- peng untuk menyelesaikan suatu masalah, biasanya secara langusng sesuai de- ngan pernyataan masalah

Algoritma yang termasuk kelompok ini adalah algoritma yang memecahkan persoalan besar den- gan mentransformasikannya menjadi beberapa persoalan yang lebih kecil yang berukuran

Buat relasi rekursi dengan kondisi awal yang sesuai, untuk jumlah operasi dasar..

• Terdapat beberapa strategi greedy yang heuristik yang dapat digunakan untuk me- milih objek yang akan dimasukkan ke dalam knapsack:.. Greedy

Salah satu contoh ma- salah TSP adalah menemukan tour terpendek dari sebuah himpunan n kota yang harus dikunjungi tepat sekali dan balik kembali ke kota awal keberangkatan2. Model

Visit https://www.tutorialsduniya.com for Notes, books, programs, question papers with solutions etc.. Visit https://www.tutorialsduniya.com for Notes, books, programs, question papers

Visit https://www.tutorialsduniya.com for Notes, books, programs, question papers with solutions etc.. Visit https://www.tutorialsduniya.com for Notes, books, programs, question papers