Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Comparative Analysis Knuth Morris Pratt Algorithm with Boyer Moore Algorithm

Arojl
August 11, 2014

Comparative Analysis Knuth Morris Pratt Algorithm with Boyer Moore Algorithm

Comparative analysis word search on a word search games

Arojl

August 11, 2014
Tweet

Other Decks in Research

Transcript

  1. * • Sistem dapat menemukan semua kata yang tersembunyi di

    dalam puzzle yang tersusun secara random • Penelitian sebelumnya – Algoritma Knuth-Morris-Pratt (word search puzzle) – Perbandingan Algoritma Knuth-Morris-Pratt dan Algoritma Boyer-Moore
  2. Implementasi algoritma Boyer-Moore pada permainan word search puzzle tidak hanya

    untuk satu arah, disesuaikan dengan karakteristik pencarian pada permainan word search puzzle
  3. Algoritma Boyer-Moore lebih baik dari Algoritma Knuth-Morris-Pratt pada permainan word

    search puzzle pada panjang bidang papan permainan, panjang kata dan posisi kata TUJUAN
  4. •Algoritma Knuth-Morris-Pratt VS Algoritma Boyer-Moore •Bidang papan permainan memiliki bentuk

    matriks n x n •Ukuran panjang bidang papan permainan dinamis •Pengujian menggunakan beberapa pola kata dari beberapa panjang kalimat yaitu 3-10 karakter dan menggunakan 8 sampel dengan posisi random •Pengujian kata-kata diambil dari nama-nama hewan dalam Bahasa Indonesia.
  5. *

  6. PENCARIAN KATA PADA PERMAINAN 1. Kiri ke kanan, jika tidak

    ketemu ubah cara baca 2. Kanan ke kiri, jika tidak ketemu ubah cara baca 3. Atas ke bawah, jika tidak ketemu ubah cara baca 4. Bawah ke atas, jika tidak ketemu ubah cara baca 5. Secara diagonal dari kiri atas ke kanan bawah, jika tidak ketemu ubah cara baca 6. Secara diagonal dari kanan bawah ke kiri atas, jika tidak ketemu ubah cara baca 7. Secara diagonal dari kanan atas ke kiri bawah, jika tidak ketemu ubah cara baca 8. Secara diagonal dari kiri bawah ke kanan atas, , jika tidak ketemu ubah cara baca
  7. *

  8. •Fungsi bad-character shift dan good-suffix shift untuk pergeseran •Memiliki kompleksitas

    O(N/M) •Arah pencocokan dari kanan ke kiri ALGORITMA BOYER-MOOR
  9. * ALGORITMA KNUTH-MORRIS-PRATT(1) Hasil dari notasi Big-O hitung nilai pinggiran

    : O(1) + O(1) + O(1) + O(M) + O(1) + O(1) + O(1) + O(1) + O(1) = 7 + 1M kali = O(M) Pseudocode Hitung Pinggiran :
  10. * ALGORITMA KNUTH-MORRIS-PRATT(2) Hasil dari notasi Big-O hitung nilai pinggiran

    : O(M) + O(1) + O(1) + O(1) + O(N) + O(1) + O (1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) + O(1) = 10 + 1M kali + 1N kali = O (M+N) Pseudocode Pencarian Kata :
  11. * ALGORITMA BOYER-MOORE(1) Hasil dari notasi Big-O hitung nilai pinggiran

    : O(M) + O(M) + O(1) + O(1) + O(N) + O(1) + O(1) + O(1) + O(1) = 6N+1N+2M kali = O (N/M) Pseudocode Pencarian Kata :
  12. *

  13. *

  14. * * PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-PRATT(1) F L A M

    I N G O 0 0 1 0 0 0 0 0 Substring Pattern Prefix dan Suffix Nilai Pinggiran
  15. PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- PRATT(2) Tahap Pencarian Kata : F

    L A M I N G O 0 0 0 0 0 0 0 0 Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O 1) 2) Tidak terjadi ketidakcocokan, maka pattern digeser sejumlah 1 karakter Tidak terjadi ketidakcocokan, maka pattern digeser sejumlah 1 karakter Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O F L A M I N G O 0 0 0 0 0 0 0 0 F L A M I N G O 0 0 0 0 0 0 0 0 Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O 3) Tidak terjadi ketidakcocokan, maka pattern digeser sejumlah 1 karakter
  16. PENCARIAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS- PRATT(3) Tahap Pencarian Kata : 4)

    Tidak terjadi ketidakcocokan, maka pattern digeser sejumlah 1 karakter Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O F L A M I N G O 0 0 0 0 0 0 0 0 F L A M I N G O 0 0 0 0 0 0 0 0 Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O 5) Tahap pencarian dengan algoritma Knuth-Morris-Pratt selesai setelah melakukan sebanyak 4 iterasi
  17. 1.Tahap Preprocessing (Menghitung nilai bad-character shift dan good-suffix shift) 2.Tahap

    Pencarian Kata PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE
  18. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(1) Mulai :

    Index = Panjang (pattern)-2 F L A M I N G O Pindah = 1 Bandingkan “G” dengan “Null Hasil BmBc(sebelum) BmBc(sesudah) Karakter Null Karakter G Nilai OH Null Nilai OH 1 1) Tabel comparator BmBc Mulai : Index = Panjang (pattern)-3 F L A M I N G O Pindah = 2 Bandingkan “N” dengan “G" Hasil BmBc(sebelum) BmBc(sesudah) Karakter G Karakter N G Nilai OH 1 Nilai OH 2 1 2) Tabel comparator BmBc
  19. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(2) Mulai :

    Index = Panjang (pattern)-4 F L A M I N G O Pindah = 3 Bandingkan “I” dengan “G “,”N” Hasil BmBc(sebelum) BmBc(sesudah) Karakter G N Karakter I N G Nilai OH 1 2 Nilai OH 3 2 1 3) Tabel comparator BmBc Mulai : Index = Panjang (pattern)-5 F L A M I N G O Pindah = 4 Bandingkan “M” dengan “G“,”N”,” I” Hasil BmBc(sebelum) BmBc(sesudah) Karakter G N I Karakter M I N G Nilai OH 1 2 3 Nilai OH 4 3 2 1 4) Tabel comparator BmBc
  20. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(3) Mulai :

    Index = Panjang (pattern)-6 F L A M I N G O Pindah = 5 5) Tabel comparator BmBc Mulai : Index = Panjang (pattern)-7 F L A M I N G O Pindah = 6 6) Tabel comparator BmBc Bandingkan “A” dengan “G“,”N”,” I”,”M” Hasil BmBc(sebelum) BmBc(sesudah) Karakter G N I M Karakter A M I N G Nilai OH 1 2 3 4 Nilai OH 5 4 3 2 1 Bandingkan “L” dengan “G“,” N”,”I”,”M”,”A” Hasil BmBc(sebelum) BmBc(sesudah) Karakter G N I M A Karakter L A M I N G Nilai OH 1 2 3 4 5 Nilai OH 6 5 4 3 2 1
  21. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE BAD-CHARACTER SHIFT(4) Mulai :

    Index = Panjang (pattern)-1 F L A M I N G O Pindah = 7 7) Tabel comparator BmBc Mulai : Index = Panjang (pattern)-1 F L A M I N G O Pindah = 8 8) Tabel comparator BmBc Bandingkan “O” dengan “G“,” N”,”I”,”M”,”A”,”L”,”F” Hasil BmBc(sebelum) BmBc(sesudah) Karakter G N I M A L F Karakter F L A M I N G 0 Nilai OH 1 2 3 4 5 6 7 Nilai OH 7 6 5 4 3 2 1 0 Bandingkan “F” dengan “G“,”N”,” I”,”M”,”A”,”L” Hasil BmBc(sebelum) BmBc(sesudah) Karakter G N I M A L Karakter F L A M I N G Nilai OH 1 2 3 4 5 6 Nilai OH 7 6 5 4 3 2 1
  22. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(7) Index 0

    1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 1 Suffix Index 7 Move Prefix O Suffix NULL Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 1) 2) Suffix Index 6 Move Prefix G Suffix O Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 1
  23. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(8) Index 0

    1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 1 Suffix Index 5 Move Prefix N Suffix GO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 3) 4) Suffix Index 4 Move Prefix I Suffix NGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 8 1
  24. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(9) Index 0

    1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 8 8 1 Suffix Index 3 Move Prefix M Suffix INGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 5) 6) Suffix Index 2 Move Prefix A Suffix MINGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 8 8 8 1
  25. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE GOOD-SUFFIX SHIFT(10) Index 0

    1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 8 8 8 8 1 Suffix Index 1 Move Prefix L Suffix AMINGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? 7) 8) Suffix Index 0 Move Prefix F Suffix LAMINGO Suffix comparator FLAMING 1 FLAMIN 2 FLAMI 3 FLAM 4 FLA 5 FL 6 F 7 NULL 8 MH value ? Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai MH 8 8 8 8 8 8 8 1
  26. * * PENCARIAN MENGGUNAKAN ALGORITMA BOYER-MOORE (11) 1) BmGs [7]

    = BmBc[M] -7 + 7 atau Max (1 = 4 - 7 + 7 ) = 4 2) BmBc & BmGs Index 0 1 2 3 4 5 6 7 Karakter F L A M I N G O Nilai OH 7 6 5 4 3 2 1 0 Nilai MH 8 8 8 8 8 8 8 1 Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O Teks : Y H X B F L A M I N G O H Z V Pattern : F L A M I N G O Tahap pencarian dengan algoritma Boyer-Moore diatas pencarian selesai setelah melakukan sebanyak 1 iterasi.
  27. * PENGUJIAN PADA PANJANG PAPAN(1) Kondisi dengan bidang papan 20x20,

    30x30,40x40 dan 50x50 Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan posisi random Pengujian akan dilakukan 4 kali sesuai dengan bidang papan dengan kondisi pola kata random
  28. * * PENGUJIAN PADA POSISI POLA 20x20(1) Kondisi dengan bidang

    papan 20x20 Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan posisi random Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan kondisi posisi pola terpenuhi semua.
  29. * * PENGUJIAN PADA POSISI POLA 30x30(1) Kondisi dengan bidang

    papan 30x30 Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan posisi random Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan kondisi posisi pola terpenuhi semua.
  30. * * PENGUJIAN PADA POSISI POLA 40x40(1) Kondisi dengan bidang

    papan 40x40 Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan posisi random Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan kondisi posisi pola terpenuhi semua.
  31. * * PENGUJIAN PADA POSISI POLA 50x50(1) Kondisi dengan bidang

    papan 50x50 Jumlah kata terdapat 8 kata dengan panjang 3-10 karakter dengan posisi random Pengujian akan dilakukan 8 kali sesuai dengan banyak kata dengan kondisi posisi pola terpenuhi semua.
  32. * Secara umum algoritma Boyer-Moore lebih efisien daripada algoritma Knuth-Morris-Pratt.

    Pencarian pada posisi diagonal dapat menambah waktu pencarian pada kedua algoritma Knuth-Morris-Pratt dan algoritma Boyer-Moore Parameter seperti panjang papan, posisi pola dan panjang kata dapat mempengaruhi efisiensi algoritma pencarian string pada algoritma Knuth-Morris-Pratt