You are on page 1of 20

Algoritma CYK

Teori Bahasa dan Automata


Semester Ganjil 2013 Jumat, 06.12.2013

Email: kurnia.saputra@gmail.com

Kurnia Saputra ST, M.Sc

Dosen pengasuh:

Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Syiah Kuala
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Teori Bahasa dan Automata

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

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Teori Bahasa dan Automata

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

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
Kemungkinan 2 dapat digambarkan dengan skema sebagai berikut:
1 +1

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Teori Bahasa dan Automata

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

Teori Bahasa dan Automata

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

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
Notasi: , menunjukkan bahwa subword berada pada lokasi dan memiliki panjang . = 1 , = +1 Dengan notasi tersebut, maka pohon variabel menjadi:

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

1,

+1,

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
, adalah himpunan variabel dimana , bisa di-derivasi. , ditentukan dari himpunan , dan < , dimana: , =

dan < dimana , dan +, }

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
Eksekusi algoritma: Masukkan himpunan variabel , ke tabel: = 1 = 2
... 1,1 1,2 ...

2,1

2,2 ... ...

...

...

... ... ...

... ...

...

1,2

1,1 ,1

= 1 1,1 2,1
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

...

1,

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
Variabel akan derivasi subword sebagai berikut:
1 2 3 4 5 6

= 1 = 2 = 3 = 4 = 5 = 6

1,1 1,2 1,3

2,1 2,2 2,3

3,1 3,2

4,1 4,2

5,1 5,2

6,1

1,4 1,5 1,6

2,5

2,4

3,3 3,4

4,3

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

10

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK

= 6

= 5

= 4

= 3

= 2

= 1

6,1

1,5 1,6

= 1 2 3 4 5 | 6 , 1,5 , 6,1 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

11

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK

= 6

= 5

= 4

= 3

= 2

= 1

5 5,2

1,4 1,6

= 1 2 3 4 | 5 6 , 1,4 , 5,2 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

12

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK

= 6

= 5

= 4

= 3

= 2

= 1

1,3

4,3

= 1 2 3 | 4 5 6 , 1,3 , 4,3 1,6

1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

13

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK

= 6

= 5

= 4

= 3

= 2

= 1

1 1,2

3,4 1,6

= 1 2 | 3 4 5 6 , 1,2 , 3,4 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

14

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK

= 6

= 5

= 4

= 3

= 2

= 1

1,1

1,6

2,5

= 1 | 2 3 4 5 6 , 1,1 , 2,5 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

15

Teori Bahasa dan Automata

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

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
Contoh 1: Diketahui grammar context free dengan production sebagai berikut:
| | |

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

Pertanyaan: Diketahui = . Apakah word ?

17

Teori Bahasa dan Automata

Algoritma CYK

Algoritma CYK
Contoh 2: Diketahui grammar context free dengan production sebagai berikut:
| |

Pertanyaan: Diketahui = . Apakah word ?

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

18

Teori Bahasa dan Automata

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

Teori Bahasa dan Automata

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)

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013

20

You might also like