Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Algoritma Pencarian String (String Matching) Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir.

Presentasi serupa


Presentasi berjudul: "1 Algoritma Pencarian String (String Matching) Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir."— Transcript presentasi:

1 1 Algoritma Pencarian String (String Matching) Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir

2 2 Persoalan pencarian string Diberikan: 1.teks (text), yaitu (long) string yang panjangnya n karakter 2.pattern, yaitu string dengan panjang m karakter (m < n) yang akan dicari di dalam teks. Carilah (find atau locate) lokasi pertama di dalam teks yang bersesuaian dengan pattern.

3 3 Contoh 1: Pattern: hari Teks: kami pulang hari kamis  target Contoh 2: Pattern: not Teks: nobody noticed him  target Contoh 3: Pattern: apa Teks: Siapa yang menjemput Papa dari kota Balikpapan?

4 4 Algoritma Brute Force Contoh 4: Teks: nobody noticed him Pattern: not nobody noticed him s=0 not s=1 not s=2 not s=3 not s=4 not s=5 not s=6 not s=7 not

5 5 Contoh 5: Teks: Pattern: s= s= s= s= s= s= s= s= s=

6 6 Kompleksitas algoritma brute-force: Kompleksitas kasus terbaik adalah O(n). Kasus terbaik terjadi jika yaitu bila karakter pertama pattern P tidak pernah sama dengan karakter teks T yang dicocokkan Pada kasus ini, jumlah perbandingan yang dilakukan paling banyak n kali misalnya: Teks: String ini berakhir dengan zz Pattern: zz

7 7 Kasus terburuk: m(n – m + 1) = O(mn) Teks: aaaaaaaaaaaaaaaaaaaaaaaaaaaaab Pattern: aaaab

8 8 Algoritma Knuth-Morris-Pratt (KMP) Dikembangkan oleh D. E. Knuth, bersama- sama dengan J. H. Morris dan V. R. Pratt. Pada algoritma brute force, setiap kali ditemukan ketidakcocokan pattern dengan teks, maka pattern digeser satu karakter ke kanan.

9 9 Sedangkan pada algoritma KMP, kita memelihara informasi yang digunakan untuk melakukan jumlah pergeseran. Algoritma KMP menggunakan informasi tersebut untuk membuat pergeseran yang lebih jauh, tidak hanya satu karakter seperti pada algoritma brute force.

10 … Teks: bimbingan belajar atau bimbel Pattern: bimbel  j = … Teks: bimbingan belajar atau bimbel Pattern: bimbel  j = 2

11 11 Definisi: Misalkan A adalah alfabet dan x = x 1 x 2 …x k adalah string yang panjangnya k yang dibentuk dari karakter- karakter di dalam alfabet A. Awalan (prefix) dari x adalah upa-string (substring) u dengan u = x 1 x 2 …x j – 1, j  {1, 2, …, k } dengan kata lain, x diawali dengan u. Contoh 6. Misalkan x = abacab. Awalan dari x adalah:, a, ab, aba, abac, abaca

12 12 Akhiran (suffix) dari x adalah upa-string (substring) u dengan u = x j – b x j – b + 1 …x k, j  {1, 2, …, k} dengan kata lain, x di akhiri dengan v. Contoh 7. Misalkan x = abacab. Akhiran dari x adalah, b, ab, cab, acab, bacab Akhiran mempunyai panjang 0, ab mempunyai panjang 2, dan seterusnya.

13 13 Pinggiran (border) dari x adalah upa-string r sedemikian sehingga r = x 1 x 2 …x j – 1 dan u = x j – b x j – b + 1 …x j, j  {1, 2, …, k} dengan kata lain, pinggiran dari x adalah upa-string yang keduanya awalan dan juga akhiran sebenarnya dari x. Contoh 8. Misalkan x = abacab. Pinggiran dari x adalah:, ab

14 14 Fungsi Pinggiran (Border Function)

15 Contoh 7: T = ‘ ababbabaaba ’ dan P = ‘ ababaa ’ Iterasi 1: ababbabaaba ababaa upastring yang cocok = abab, panjangnya = 4 pinggiran terpanjangnya = ab, panjangnya = 2 = b(4) jumlah pergeseran = 4 – 2 = 2 Iterasi 2: ababbabaaba ’ ababaa  15 j P[j]P[j] ababaa b(j)b(j)001231

16 October 2003 Sanath Jayasena 7-16 Contoh 8: bacbababaabcba ababaca bacbababaabcba ababaca T P s s’s’ T P q k ababa aba PqPq PkPk Longest prefix of P q that is also a suffix of P 5 is P 3 ; so b[5]= 3

17 October 2003 Sanath Jayasena 7-17 Border Function i P [ i ]ababababca b[i]b[i]

18 18 Kompleksitas Waktu Algoritma KMP Menghitung fungsi pinggiran : O(m), Pencarian string : O(n) Kompleksitas waktu algoritma KMP adalah O(m+n).


Download ppt "1 Algoritma Pencarian String (String Matching) Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir."

Presentasi serupa


Iklan oleh Google