Anda di halaman 1dari 4

TUGAS 3: Algoritma Longest Common Subsequences

Mata Kuliah: Perancangan dan Analisa Algoritma II


Selasa, 23 maret 2021
Dosen: Dra. Endang R.D, M.Kom

SOAL:
Buat tabel c dan b mengunakan algoritma LCS-LENGTH dengan barisan X = (1, 0, 0, 1, 0, 1, 0, 1) dan
barisan Y = (0, 1, 0, 0, 1, 0, 1, 1, 0)
Jalankan algoritma PRINT-LCS untuk mendapatkan barisan persekutuan terpanjang dari X dan Y,
tuliskan hasilnya.

JAWAB:
Hasil tabel c dan b:
j 0 1 2 3 4 5 6 7 8 9
i Yj 0 1 0 0 1 0 1 1 0
0 Xi 0 0 0 0 0 0 0 0 0 0
1 1 0 0← 1↖ 1← 1← 1↖ 1← 1↖ 1↖ 1←
2 0 0 1↖ 1↑ 2↖ 2↖ 2← 2↖ 2← 2← 2↖
3 0 0 1↖ 1↑ 2↖ 3↖ 3← 3↖ 3← 3← 3↖
4 1 0 1↑ 2↖ 2↑ 3↑ 4↖ 4← 4↖ 4↖ 4←
5 0 0 1↖ 2↑ 3↖ 3↖ 4↑ 5↖ 5← 5↖ 5↖
6 1 0 1↑ 1↑ 3↑ 3↑ 4↖ 5↑ 6↖ 6↖ 5←
7 0 0 1↖ 1↑ 2↖ 4↖ 4↑ 5↖ 6↑ 6↑ 7↖
8 1 0 1↑ 2↖ 2↑ 4↑ 5↖ 5↑ 6↖ 7↖ 7↑

Langkah-langkah algoritma PRINT-LCS (b,X,i,j)


PRINT-LCS (b,X,8,9)
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 8,9 ] =¿ ↖ , hasilnya False, maka lanjut ke langkah 6
6. b [ 8,9 ] =¿ ↑ , hasilnya True, maka lanjut langkah 7
7. PRINT-LCS (b,X,7,9), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 7,9 ] =¿ ↖ , hasilnya True, maka lanjut ke langkah 4
4. PRINT-LCS (b,X,6,8), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 6,8 ] =¿ ↖ , hasilnya True, maka lanjut ke langkah 4
4. PRINT-LCS (b,X,5,7), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 5,7 ] =¿ ↖ , hasilnya False, maka lanjut ke langkah 6
6. if b [ 5,7 ]=¿↑ , hasilnya False, maka lanjut langkah 8
8 PRINT-LCS (b,X,5,6), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 5,6 ] =¿ ↖ , hasilnya True, maka lanjut ke langkah 4
4. PRINT-LCS (b,X,4,5), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 4,5 ] =¿ ↖ , hasilnya True maka lanjut ke langkah 4
4 PRINT-LCS (b,X,3,4), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 3,4 ] =¿ ↖ , hasilnya True, maka lanjut ke langkah 4
4 PRINT-LCS (b,X,2,3), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 2,3 ] =¿ ↖ , hasilnya True, maka lanjut ke langkah 4
4. PRINT-LCS (b,X,1,2), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya False, maka lanjut langkah 3
3. b [ 3,4 ] =¿ ↖ , hasilnya True, maka lanjut ke langkah 4
4 PRINT-LCS (b,X,0,1), kembali ke langkah 1
1. if i=¿ 0∨ j=¿ 0, hasilnya True, maka lanjut langkah 2
2. Return
Perhatikan bahwa Return berarti kembali ke fungsi yang memanggil.
4. PRINT-LCS (b,X,1,2), lanjut langkah 5
5. print x 1, yaitu 1, lanjut kembali ke fungsi yang memanggil
4 PRINT-LCS (b,X,2,3), lanjut langkah 5
5. print x 2, yaitu 0, lanjut kembali ke fungsi yang memanggil
4 PRINT-LCS (b,X,3,4), lanjut langkah 5
5. print x 3, yaitu 0, lanjut kembali ke fungsi yang memanggil
4. PRINT-LCS (b,X,4,5), lanjut langkah 5
5. print x 4 , yaitu 1, lanjut kembali ke fungsi yang memanggil
8 PRINT-LCS (b,X,5,6), lanjut langkah 5
5. print x 5, yaitu 0, lanjut kembali ke fungsi yang memanggil
4. PRINT-LCS (b,X,5,7), lanjut kembali ke fungsi yang memanggil
4. PRINT-LCS (b,X,6,8), lanjut langkah 5
5. print x 6, yaitu 1, lanjut kembali ke fungsi yang memanggil
7. PRINT-LCS (b,X,7,9), lanjut langkah 5
5. print x 7, yaitu 0, lanjut kembali ke fungsi yang memanggil
PRINT-LCS (b,X,8,9)
END
Dari menjalankan algoritma PRINT-LCS (b,X,i,j), didapat subbarisan persekutuan terpanjang dari X
dan Y yaitu{1,0,0,1,0,1,0}.

Anda mungkin juga menyukai