December 18, 2021
Dalam ilmu komputer, algoritma Cocke–Younger–Kasami (atau disebut juga algoritma CYK, atau algoritma CKY) adalah algoritma penguraian untuk Context Free Grammar (CFG)/Tata Bahasa Bebas Konteks yang diterbitkan oleh Itiroo Sakai pada tahun 1961.
Algoritma CYK ini dinamai dengan beberapa penemunya, yaitu: John Cocke, Daniel Younger, Tadao Kasami, dan Jacob T. Schwartz. Algoritma CYK ini biasa digunakan dalam parsing bottom-up dan pemrograman dinamis.
Untuk dapat menggunakan algoritma CYK ini dibutuhkan CFG dalam bentuk normal form.
Context Free Grammar (CFG) atau Tata Bahasa Bebas Konteks adalah salah satu tata bahasa formal yang digunakan untuk spesifikasi sturuktur sintaks bahasa pemrograman serta basis beragam skemas spesifikasi translasi.
CFG menghasilkan bahasa yang dikenal oleh Non-Deterministic Push Down Automata.
Aturan produksi pada CFG, yaitu simbol sisi kiri hanya boleh memiliki 1 variabel non terminal (variabel) dan sisi kanan tidak memiliki batasan (bisa berisi ɛ, simbol terminal, simbol variabel, atau kombinasi ketiganya). Jika kita tuliskan maka aturan produksi dari Context Free Grammar adalah sebagai berikut:
Membagi baris sebanyak jumlah simbol terminal penyusun inputan. Karena inputan \’aaab\’ mengandung 4 simbol terminal maka akan ada 4 baris yang dibuat. Baris pertama untuk a, baris kedua untuk a, baris ketiga untuk a, dan baris keempat untuk b.
Membuat pola tabel kosong sesuai dengan jumlah barisnya. Artinya apabila ada 4 baris maka tabelnya adalah 5 x 5.
Membuat baris pertama yang nantinya kita lambangkan dengan Vij.
Catatan penting: i merujuk sebagai kolom, sedangkan j merujuk sebagai baris. Jadi, misalnya V21 disebut sebagai kolom 2, baris 1.
Cara membuat baris pertama adalah dengan mencocokan keberadaan setiap simbol terminal pada inputan/string dengan aturan produksi CFG.
Misalnya, untuk terminal a terdapat dalam produksi A → BA | a. Maka himpuan V11 (kolom 1, baris 1) adalah A. Selanjutnya pun juga begitu, dan jika dutuliskan maka baris pertama adalah:
Tabel setelah kita ketahui baris pertama.
Membuat baris kedua dengan rumus | Vik – Vi+k, j-k | (k=1).
Karena sesuai dengan baris pertama, V11 adalah A dan V21 juga adlaah A maka:
Selanjutnya kita cocokan kembali apakah AA terdapat dalam aturan produksi. Karena tidak ada simbol variabel dalam aturan produksi yang menghasilkan AA maka:
Untuk kolom-kolom selanjutnya juga diberlakukan operasi yang sama.
Karena AS dan AB merupakan hasil dari aruran produksi B dan S maka:
Untuk V42 kita tiadakan karena V41 – V51 (tidak ada).
Tabel setelah kita ketahui baris kedua.
Membuat baris ketiga dengan rumus | Vik – Vi+k, j-k | (k=1, 2).
Tabel setelah kita ketahui baris ketiga:
Membuat baris keempat dengan rumus | Vik – Vi+k, j-k | (k=1, 2, 3).
Tabel setelah kita ketahui baris keempat:
Memastikan apabila simbol awal (S) ada pada V1n . Karena tabel akhir memuat simbol S pada baris terakhirnya maka menurut algoritma CYK, ‘aaab’ terbukti dapat diturunkan.
HASIL AKHIR:
Materi-materi yang Masih Berkaitan
Materi Induk