PENYEDERHANAA N
CFG
Penyederhanaan CFG
Tujuannya : Untuk melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yg memiliki kerumitan yg tdk perlu / aturan produksi yg tdk berarti.
Contoh :
S AB | a
Aa
Contoh
S A
AB BC CD Da|A Memiliki kelemahan yaitu terlalu panjang jlnnya padahal berujung pd S a, D A juga menyebabkan kerumitan.
Contoh 1 :
S aSa | Abd | Bde A Ada
B BBB | a
B BBB | a
Prinsipnya setiap kali melakukan penyederhanan kita periksa lagi aturan produksi yg tersisa, apakah semua produksi yg useless sdh dihilangkan.
Contoh 2 :
S aB A bcD | dAC B e | Ab C bCb | adF | ab F cFB Langkah penyederhanaan : 1.A bCD, D tdk memiliki penurunan 2.Konsekuensi no1, A tdk memiliki penurunan yg menuju terminal 3.B Ab tdk memiliki penurunan 4.F tdk memiliki penurunan yg menuju terminal
Shg menjadi : S aB
Be
Contoh 1 :
S Sb SC
CD
C ef D dd Kita lakukan penggantian berturutan mulai dari aturan produksi yg paling dekat menuju ke penurunan terminal2 ( => dibaca menjadi)
C D => C dd S C => S dd | ef
D dd
Contoh 2 :
S Cba | D A bbC B Sc | ddd C eA | f | C D E | SABC E gh Penggantian yg dilakukan : D E => D gh C C dihapus S D => S gh | SABC
S Cba | gh | SABC
A bbC
B Sc | ddd
C eA | f D gh | SABC
Penghilangan Produksi
Penghilangan produksi dilakukan dgn
A bd |
Pada kasus diatas A nullable, tapi A bukan satu2nya produksi dari A, mk hasil penyederhanaan : S bcAd | bcd
A bd
Contoh 1 :
S AB A abB | aCa | B bA | BB | C Variabel yg nullable A, B, C. Dari S AB, maka S juga nullable. Kita lakukan penggantian : A aCa => A aa B bA => B bA | b B BB => B BB | B A abB => A abB | ab S AB => S AB | A | B |
Perhatikan : untuk penggantian S AB kita tetap mempertahankan produksi S , krn S merupakan simbol awal. Ini merupakan satu2nya perkecualian produksi yg tdk dihapus, yaitu produksi
Hasil Penyederhanaan
S AB | A | B | A abB | ab | aa
B bA | b | BB | B
Contoh 2 :
S ABaC A BC
Bb|
CD|
Dd
Variabel yg nullable B, C. Kita lakukan penggantian : A BC => A BC | B | C S ABaC => S ABaC | AaC | BaC | ABa| aC | Aa | Ba | a Hasil penyederhanaan : S ABaC | AaC | BaC | ABa | aC | Aa | Ba | a A BC | B | C Bb CD Dd
Penyederhaan CFG
CFG
Penghilanga n Produksi
Latihan 1 :
Lakukan penghilangan aturan produksi unit, useless, dan dari tata bahasa bebas konteks berikut : S a | aA | B | C A aB | B Aa C cCD D ddd
Latihan 2 :
Lakukan penghilangan aturan produksi unit, useless, dan dari tata bahasa bebas konteks berikut : S aB | aaB A B bA
Jawaban Latihan 1 :
Penghilangan Produksi : A dihilangkan, shg : A aB B Aa | a S a | aA | B | C Mjd : S a | aA | B | C A aB B Aa | a C cCD D ddd
Penghilangan Produksi Unit : S B => S Aa | a S C => S cCD Shg menjadi : S a | aA | Aa | cCD A aB B Aa | a C cCD D ddd
Penghilangan Produksi Useless : 1.C tidak memiliki penurunan, shg C cCD dihilangkan 2.S cCD dihilangkan 3.Konsekuensi no 2, D ddd dihilangkan Shg mjd : S a | aA | Aa A aB B Aa | a
Jawaban Latihan 2 :
Penghilangan Produksi : A dihilangkan, shg : B bA => B b B dihilangkan, shg : S aB => S aB | a S aaB => S aaB | aa Mjd : S aB | a | aaB | aa Bb