510 likes | 1.27k Views
11. BENTUK NORMAL CHOMSKY. 11. 1 Pengetian Tata bahasa bebeas konteks dapat dibuat menjadi bentuk normal Chomsky dengan syarat tidak memiliki : Produksi useless Produksi unit Produksi Bentuk normal Chomsky mempunyai ruas kanan sebuah terminal atau dua variabel , seperti :
E N D
11. 1 Pengetian Tata bahasabebeaskonteksdapatdibuatmenjadibentuk normal Chomsky dengansyarattidakmemiliki: Produksiuseless Produksi unit Produksi Bentuk normal Chomsky mempunyairuaskanansebuah terminal atauduavariabel, seperti: A BC A b B a C BA | d
11. 2 Pembentukanbentuk normal Chomsky Langkah-langkahpembentukanbentuk normal Chomsky: Biarkanaturanproduksi yang sudahdalambentuk normal Chomsky Lakukanpenggantianaturanproduksi yang mempunyairuaskananberupa terminal yang panjangnya > 1 Lakukanpenggantianaturanproduksi yang mempunyairuaskananberupavariabel yang panjangnya > 2 Penggantian ii) dan iii) dapatdilakukanberkali-kali sampaiaturanprosuksimencapaibentuk normal Chomsky. Selamamelakukanpenggantian, kemungkinanakandiperolehaturanproduksidanvariabelbaru.
Prosespembentukanbentuk normal Chomsky Biarkan yang sudah CNF Bilaperlu, buat variabeldan aturanproduksi baru Penggantiansimbol terminal padaaturan prod. padaruas kanan > 1 CFG yang sudah disederhanakan CFG Penggantiansimbol variabelpadaaturan prod. padaruas kanan > 2
Contoh 11.1 Berikutadalahtatabahasabebaskonteks yang sudahdisederhanakan. S bA | aB A bAA | aS | a B aBB | bS | b Dari aturanproduksidiatas, aturanproduksi yang sudahdalambentuk normal Chomsky (CNF) adalah: A a B b
Aturanproduksi yang belumdalam CNF adalah: S bA S P1A S aB S P2B A bAA A P1AA A P1P3 A aS A P2S B aBB B P2BB B P2P4 B bS B P1S Terbentuaturanproduksibaru: P1 b P2 a P3 AA P4 BB
Hasilahiraturanproduksidalam CNF adalah: A a B b S P1A S P2B A P1P3 A P2S B P2P4 B P1S P1 b P2 a P3 AA P4 BB
Contoh 11.2 Berikutadalahtatabahasabebaskonteks yang sudahdisederhanakan. S aB | CA A a | bc B BC | Ab C aB | b Dari aturanproduksidiatas, aturanproduksi yang sudahdalambentuk normal Chomsky (CNF) adalah: S CA A a B BC C b
Aturanproduksi yang belumdalam CNF adalah: S aB S P1B A bc A P2P3 B Ab B AP2 C aB C P1B Terbentuaturanproduksibaru: P1 a P2 b P3 c
Hasilahiraturanproduksidalam CNF adalah: S CA A a B BC C b S P1B A P2P3 B AP2 C P1B P1 a P2 b P3 c
Contoh11.3 Tata bahasabebaskonteks S aAB | ch | CD A dbE | eEC B ff | DD C ADB |aS D i E jD Aturanproduksi yang sudahdalambentuk CNF adalah: S CD B DD D i
Aturanproduksi baru: P1 a P2 AB P3 c P4 h P5 d P6 P7 E P7 b P8 e P9 EC P10 f P11 DB P12 j Penggantian aturanproduksi: S aAB⇒ S P1 P2 S ch⇒ S P3 P4 A dbE⇒ A P5 P6 A eEC⇒ A P8 P9 B ff ⇒ B P10P10 C ADB ⇒ C AP11 C aS⇒ C P1 S E jD⇒ E P12 D
Bentuk Normal Chomsky: S CD B DD D i S P1 P2 S P3 P4 A P5 P6 A P8 P9 B P10P10 C AP11 C P1 S E P12 D P1 a P2 AB P3 c P4 h P5 d P6 P7 E P7 b P8 e P9 EC P10 f P11 DB P12 j
11.3 Algoritma CYK Algotima CYK diciptakanoleh J. Cocke, D.H.Younger, dan T. Kasami. Syaratuntuk menggunakanalgoritmainiadalahtatabahasa harussudahdalambentuk Normal Chomsky.
Algoritma CYK • begin • for i := 1 to n do • Vi1 := {A|A a aturanproduksidimana • simbolkeiadalah a}; • 3. for j := 2 to n do • 4. for i := 1 to (n – j + 1) do • begin • Vij := ; • for k:= 1 to (j-1) do • Vij := Vij { A|A BC adalahsuatu • produksi, dimana B diVikdan C di • Vi+k, j-k} • end • end
Penjelasan: n adalahpanjanguntai yang akandiperiksa, misaluntai ‘baaba’, n = |baaba| = 5 imenyatakankolomke … j menyatakanbariske …. Pernyataan no. 1 dan 2 untukmengisitabelbaris pertamakolomke (1 – n) 5. Pernyataan no 3 iterasidaribariske 2 sampai n 6. Pernyataan no. 4 iterasiuntukmengisikolom 1 sampai (n baris +1) padasuatubaris 7. Pernyataan no 5 inisialisasiVijdengan 8. Pernyataan no. 6 dan 7 iterasiuntukmemeriksa manasaja yang menjadianggotaVij.
Contoh11.4 Diketahuitatabahasabebaskonteks: S AB | BC A BA | a B CC | b C AB | a Periksa, apakahuntai ‘baaba’ termasukkedalam bahasatersebut. Penyelesaian: Syarat agar sebuahuntaitermasukkedalam tatabahasatertentuadalah V1nharusmemuat simbolawal
i ( 1 – 5) j 1 – 5)
Untukmengisisel V11, perikaaturanproduksi yang menghasilkan ‘b’ . Dari B b kitaisi V11 = {B}
Untukmengisisel V21, perikaaturanproduksi yang menghasilkan ‘a’ . Dari A a dan C a kitaisiV21 = {A,C}
Untukmengisisel V31, perikaaturanproduksi yang menghasilkan ‘a’ . Dari A a dan C a kitaisiV31 = {A,C}
Untukmengisisel V41, perikaaturanproduksi yang menghasilkan ‘b’ . Dari B b kitaisi V41 = {A,C}
Untukmengisisel V51, perikaaturanproduksi yang menghasilkan ‘a’ . Dari A a dan C a kitaisiV51 = {A,C}
Pengisianbarisselanjutnya. PengisianVij , periksaVik, Vi+k, j–k
Pengisianbariske 2 (k = 1). Pengisian V12 , periksa V11 -V1+1, 2–1 V11 -V21. Dari V11, V21menghasilkan BA atau BC. Variabel yang dapatmenurunkan BA atau BC adalah S dan A
Pengisianbariske 2 (k = 1). Pengisian V22 , periksa V21 -V2+1, 2–1 V21 -V31. Dari V21, V31menghasilkan AA, AC, CA, atau CC. Variabelygdapatmenurunkan AA, AC, CA, atau CC adalah B
Pengisianbariske 2 (k = 1). Pengisian V32 , periksa V31 -V 3+1, 2–1 V31 -V41. Dari V31, V41menghasilkan AB, atau CB. Variabelygdapatmenurunkan AB atau CB adalah S dan C
Pengisianbariske 2 (k = 1). Pengisian V42 , periksa V41 -V 4+1, 2–1 V41 -V51. Dari V41, V51menghasilkan BA, BC. Variabel yang dapatmenurunkan BA atau BC S dan A
Pengisianbariske 3 (k = 1 sampai 2). Pengisian V13 , periksa V11 -V22dan V12 -V31, menghasilkan BB, SA, SC, AA, atau AC. Variabelygdapatmenurunkanvariabeltsb. tidakadaatau.
Pengisianbariske 3 (k = 1 sampai 2). Pengisian V23 , periksa V21 -V32dan V22 -V41, menghasilkan AS, AC, CS, CC, atau BB. Variabelygdapatmenurunkanvariabeltsb. adalahvariabel B
Pengisianbariske 3 (k = 1 sampai 2). Pengisian V33 , periksa V31 -V42dan V32 -V51, menghasilkan AS, AA, CS, CA, SA, SC, CA, atau CC. Variabelygdapatmenurunkanvariabeltsb. Adalah B.
Pengisianbariske 4 (k = 1 sampai 3). Pengisian V14 , periksa V1 1-V23, V12 -V32, dan V13 -V41 menghasilkan BB, SS, SC, AS, atau AC. Variabelygdapatmenurunkanvariabeltsb. tidakada.
Pengisianbariske 4 (k = 1 sampai 3). Pengisian V24 , periksa V21 -V33, V22 -V42, dan V23 -V51 menghasilkan AB, CB, BS, BA, atau AC. Variabelygdapatmenurunkanvariabeltsb. S, A, C.
Pengisianbariske 5 (k = 1 sampai 4). Pengisian V15 , periksa V11 -V24, V12 -V33, V13 -V42dan V14-V51menghasilkan BS, BA, BC, SB, atau AB. Variabelygdapatmenurunkanvariabeltsb. S, A, C
Pengisianbariske 5 (k = 1 sampai 4). Karena V15memuatsimbolawalmakamakauntai ‘baaba’ termasukkedalamtatabahasabebaskonteksdiatas
Latihan Transformasikantatabahasabebaskonteksberikutkedalam CNF. S aSaA | A A abA | b 2. Gunakanalgoritma CYK untukmemeriksaapakahuntai ‘aabab’ termasukdalamtatabahasabebaskonteksberikut. S AB | BC A BA | a B CC | b C AB | a