Está en la página 1de 20

Algoritma CYK

Teori Bahasa dan Automata


Semester Ganjil 2013
Jumat, 06.12.2013

Dosen pengasuh:
Kurnia Saputra ST, M.Sc
Email: kurnia.saputra@gmail.com

Jurusan Informatika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Syiah Kuala
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 1
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.
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 2
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 di-
derivasi 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 < ).

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 3


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 4
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 5


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.
FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 6
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:

1, +1,

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 7


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 8


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK
Eksekusi algoritma:
Masukkan himpunan variabel , ke tabel:

1 2 ... 1

=1 1,1 2,1 ... ... 1,1 ,1

=2 1,2 2,2 ... ... 1,2

... ... ... ...


...
... ... ...

= 1 1,1 2,1

= 1,

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 9


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK
Variabel akan derivasi subword sebagai berikut:

1 2 3 4 5 6

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

=2 1,2 2,2 3,2 4,2 5,2

=3 1,3 2,3 3,3 4,3

=4 1,4 2,4 3,4

=5 1,5 2,5

=6 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 10


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK

1 2 3 4 5 6

=1 6,1

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

=6 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 11


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK

1 2 3 4 5 6

=1

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

=6 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 12


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK

1 2 3 4 5 6

=1

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

=6 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 13


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK

1 2 3 4 5 6

=1

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

=6 1,6

FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 14


Teori Bahasa dan Automata Algoritma CYK

Algoritma CYK

1 2 3 4 5 6

=1 1,1

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

=6 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:
|
|

|




Pertanyaan: Diketahui = . Apakah word ?


FMIPA Informatika Universitas Syiah Kuala Semester Ganjil 2013 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

También podría gustarte