Professional Documents
Culture Documents
Email: kurnia.saputra@gmail.com
Dosen pengasuh:
Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013
Algoritma CYK
Algoritma CYK
Algoritma CYK adalah sebuah algoritma yang digunakan untuk membuktikan apakah sebuah word di-generate oleh grammar context free atau tidak. Algoritma CYK dikembangkan oleh John Cocke, Daniel Younger, dan Tadao Kasami. Untuk dapat menggunakan algoritma ini dibutuhkan grammar context free dalam bentuk Chomsky normal form, dimana word adalah sebagai input, dan outputnya adalah sebuah pembuktian apakah word merupakan bahasa dari grammar atau bukan.
2
Algoritma CYK
Algoritma CYK
Konsep: Diketahui word . Kita ingin mengetahui dari variabel apa saja word tersebut dapat di-derivasi. Kemungkinan 1: = , dimana terdiri dari simbol alphabet tunggal. Kemudian hanya bisa diderivasi dari variabel dimana terdapat . Kemungkinan 2: = 1 dimana 2. Pada kasus ini production harus dipilih terlebih dahulu, dimana ada satu bagian dari word 1 harus di-derivasi dari dan satu bagian lagi dari word +1 di-derivasi dari (1 < ).
3
Algoritma CYK
Algoritma CYK
Kemungkinan 2 dapat digambarkan dengan skema sebagai berikut:
1 +1
Algoritma CYK
Algoritma CYK
Tapi masih belum begitu jelas bagaimana cara memisahkannya word karena index sangat besar.
Maka: Kita harus mencoba semua kemungkinan . Jika diketahui = 1 , dimana 1 < < lakukan langkah berikut: Cek apakah himpunan variabel 1 dapat derivasi 1 . Cek apakah himpunan variabel 2 dapat derivasi +1 . Cek apakah variabel , , dimana ( ) , 1 dan 2 . Dan untuk kasus ini di-derivasi dari .
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013
Algoritma CYK
Algoritma CYK
Untuk menghindari duplikasi, aplikasikan metode dynamic programming, artinya: Tentukan dahulu semua variabel yang bisa derivasi subword dengan panjang 1. Kemudian tentukan variabel yang bisa derivasi subword dengan panjang 2. Terakhir, tentukan semua variabel dimana bisa di-derivasi. Jika simbol start berada diantara variabel, maka adalah bahasa dari grammar tersebut.
6
Algoritma CYK
Algoritma CYK
Notasi: , menunjukkan bahwa subword berada pada lokasi dan memiliki panjang . = 1 , = +1 Dengan notasi tersebut, maka pohon variabel menjadi:
1,
+1,
Algoritma CYK
Algoritma CYK
, adalah himpunan variabel dimana , bisa di-derivasi. , ditentukan dari himpunan , dan < , dimana: , =
Algoritma CYK
Algoritma CYK
Eksekusi algoritma: Masukkan himpunan variabel , ke tabel: = 1 = 2
... 1,1 1,2 ...
2,1
...
...
... ...
...
1,2
1,1 ,1
= 1 1,1 2,1
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013
...
1,
Algoritma CYK
Algoritma CYK
Variabel akan derivasi subword sebagai berikut:
1 2 3 4 5 6
= 1 = 2 = 3 = 4 = 5 = 6
3,1 3,2
4,1 4,2
5,1 5,2
6,1
2,5
2,4
3,3 3,4
4,3
10
Algoritma CYK
Algoritma CYK
= 6
= 5
= 4
= 3
= 2
= 1
6,1
1,5 1,6
11
Algoritma CYK
Algoritma CYK
= 6
= 5
= 4
= 3
= 2
= 1
5 5,2
1,4 1,6
12
Algoritma CYK
Algoritma CYK
= 6
= 5
= 4
= 3
= 2
= 1
1,3
4,3
1,6
13
Algoritma CYK
Algoritma CYK
= 6
= 5
= 4
= 3
= 2
= 1
1 1,2
3,4 1,6
14
Algoritma CYK
Algoritma CYK
= 6
= 5
= 4
= 3
= 2
= 1
1,1
1,6
2,5
15
Algoritma CYK
Algoritma CYK
input = ( , , , ), || for {1, , } do ,1 { | ,1 } end for {2, , } do for {1, , + 1} do , for {1, , 1} do , , { | dimana , , +, } end end end if 1, then return true else return false
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013
16
Algoritma CYK
Algoritma CYK
Contoh 1: Diketahui grammar context free dengan production sebagai berikut:
| | |
17
Algoritma CYK
Algoritma CYK
Contoh 2: Diketahui grammar context free dengan production sebagai berikut:
| |
18
Algoritma CYK
Algoritma CYK
Algoritma CYK adalah salah satu algoritma yang paling efisien yang dapat diterapkan pada grammar context free. Pada prakteknya, algoritma ini akan lambat jika di parsing, contohnya pada bahasa pemrograman Java yang panjang. Ada prosedur yang lebih efisien, namun hanya bisa digunakan pada sub-kelas bahasa context free. Pada prakteknya algoritma yang lebih sering digunakan adalah recursive decent parser dan LR(k)-parser.
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013
19
Referensi
Referensi
1. Hopcroft, Motwani, Ullman: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, 2001 2. James A. Anderson: Automata Theory with Modern Applications, Cambridge University Press, 2006. 3. Uwe Schning: Theoretische Informatik kurzgefat. Spektrum, 2008. (5. Auflage)
20