teori bahasa dan otomata - kelasqta.files.wordpress.com · aturan produksi a d, symbol variabel d...
Post on 06-Mar-2019
273 Views
Preview:
TRANSCRIPT
PERTEMUAN 12
TEORI BAHASA DAN OTOMATA
[TBO]
Tata Bahasa Bebas Konteks Bila pada tata bahasa regular terdapat pembatasan pada
ruas kanan atau hasil produksinya, maka pada tatabahasa bebas konteks / context free grammar,selanjutnya disebut CFG
Tidak terdapat pembatasan hasil produksinya. Padaaturan produksi:
sebuah nonterminal finite string dari terminaldan atau nonterminal
Batasannya hanyalah ruas kiri () adalah sebuah symbolvariabel
Pada ruas kanan () bisa terdapat simbol terminal saja,nonterminal saja, kombinasi terminal dan nonterminal,atau empty string
PENYEDERHANAAN CFG [1]
Penyederhanaan tata bahasa bebas konteks bertujuanuntuk melakukan pembatasan sehingga tidakmenghasilkan pohon penurunan yang memiliki kerumitanyang tak perlu atau aturan produksi yang tak berarti.
Misalkan terdapat tata bahasa bebas konteks:
SAB a
Aa
Kelemahan tata bahasa bebas konteks di atas, aturanproduksi SAB tidak berarti karena B tidak memiliki
penurunan.
PENYEDERHANAAN CFG [2]
Untuk tata bahasa bebas konteks berikut :
SA
AB
BC
CD
Da A
Memiliki kelemahan terlalu panjang jalannya padahalberujung pada Sa
Produksi DA juga menyebabkan kerumitan, karenamembuat produksi yang berulang
Cara Penyederhanaan
Suatu tata bahasa bebas konteks dapatdisederhanakan dengan melakukan :
1. Penghilangan produksi useless
2. Penghilangan produksi unit
3. Penghilangan produksi (empty)
Penghilangan Produksi Useless
Produksi useless didefinisikan sebagai:
Produksi yang memuat symbol variabel yang tidakmemiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya (sebut saja sebagai ‘menujuterminal’)
Produksi ini tidak berguna karena bila diturunkan tidakakan pernah selesai (masih ada symbol variabel yangtersisa)
Produksi yang tidak akan pernah dicapai denganpenurunan apapun dari symbol awal, sehingga produksiitu redundant (berlebih)
Langkah PenyederhanaanProduksi Useless
Hilangkan aturan yang tidak menuju terminal.
Hapus anggota S yang mengandung simbolhimpunan ke terminal yang tidak berguna
Hilangkan Redundant (anggota yang tidak ada di Sdan sebaliknya)
Contoh 1
Contoh, terdapat tata bahasa bebas konteks :
S aSa Abd Bde
A Ada
B BBB a
1. Simbol variabel A tidak memiliki penurunan yang menujuterminal sehingga bisa dihilangkan.
2. Konsekuensi no (1), aturan produksi S Abd tidak memilikipenurunan
Maka tata bahasa bebas konteks setelah disederhanakanmenjadi :
S aSa Bde
B BBB a
Contoh 2 (1)
Contoh, terdapat tata bahasa bebas konteks :
S Aa B
A ab D
B b E
C bb
E aEa
1. Aturan produksi AD, symbol variabel D tidak memiliki penurunan
2. Aturan produksi Cbb, bila kita coba melakukan penurunan dari
symbol awal S, dengan jalan mana pun tidak akan pernah mencapai C
3. Simbol variabel E tidak memiliki aturan produksi yang menuju terminal(EaEa satu-satunya aturan produksi dari E)
4. Konsekuensi no (3) Aturan produksi BE, symbol variabel E tidak
memiliki penurunan
Contoh 2 (2)
Maka dari tata bahasa bebas konteks sebelumnya, produksi yang useless :
ADCbbEaEaBE
Maka tata bahasa bebas konteks setelah disederhanakanmenjadi :
SAa BAabBb
Contoh 3 (1)
Contoh tata bahasa bebas konteks :
SaAb cEB
AdBE eeC
Bff
Cae
Dh
Perhatikan :
1. Aturan produksi ScEB, AdBE (E tidak memilikipenurunan)
2. Aturan produksi Dh, redundant
Contoh 3 (2)
Sisa aturan produksi
SaAb
AeeC
Bff
Cae
Bisa dilihat sekarang Bff juga redundant sehinggahasil penyederhanaan menjadi :
SaAb
AeeC
Cae
Penghilangan Produksi Unit
Produksi unit adalah produksi dimana ruas kiri danruas kanan aturan produksi hanya berupa satusymbol variabel, misalkan A B, C D.
Keberadaan produksi unit membuat tata bahasamemiliki kerumitan yang tak perlu atau menambahpanjang penurunan.
Penyederhanaan ini dilakukan dengan melakukanpengantian aturan produksi unit.
Langkah PenyederhanaanProduksi Unit
Jabarkan masing-masing himpunan
Sederhanakan ruas kiri dan kanan yang hanyaberupa variabel simbol sama
Hapus simbol variabel yang tidak berguna / tidakmempunyai turunan
Contoh 1 (1)
Contoh tata bahasa bebas konteks :
SSb
SC
CD
Cef
Ddd
Dilakukan penggantian berurutan mulai dari aturanproduksi yang paling dekat menuju ke penurunanterminal-terminal (‘=>’ dibaca menjadi) :
CD => Cdd
SC => Sdd ef
Contoh 1 (2)
Sehingga aturan produksi setelah penyederhanaan :
SSb
Sdd ef
Cdd
Cef
Ddd
Contoh 2 (1) Contoh tata bahasa bebas konteks :
SASAaABBCBbCDCabDb
Penggantian yang dilakukan :1. CD => Cb2. BC =>Bb ab, karena Bb sudah ada, maka kita cukup
tuliskan Bab3. AB => Aab b4. SA => Sab b
Contoh 2 (2)
Sehingga aturan produksi setelah penyederhanaan :
Sab b
SAa
Aab b
Bab
Bb
Cb
Cab
Db
Penghilangan Produksi
Produksi adalah produksi dalam bentuk
atau bisa dianggap sebagai produksi kosong.
Penghilangan produksi dilakukan denganmelakukan penggantian produksi yang memuatvariabel yang bisa menuju produksi , atau biasadisebut nullable.
Langkah PenyederhanaanProduksi
Hilangkan simbol yang terdapat empty ( atau Є)dalam himpunan produksi
Simbol variabel tidak di hapus jika terdapat cabangterminal / variabel yang saling berhubungan
Buat himpunan dengan simbol yang dihilangkan danyang tidak
Contoh 1
Prinsip penggantiannya bisa dilihat kasus berikut:
SbcAd
A
Pada kasus di atas A nullable
A satu-satunya produksi dari A, maka variabel A
bisa ditiadakan
Hasil penyederhanaan tata bahasa bebas konteksmenjadi :
Sbcd
Contoh 2
Tetapi bila kasusnya :
SbcAd
Abd
Pada kasus di atas A nullable, tapi A bukan satu-satunya produksi dari A, maka hasil penyederhanaan :
SbcAd bcd
Abd
Perhatikan :
Satu-satunya perkecualian produksi yang tidakdihapus, yaitu produksi yang dihasilkan olehsymbol awal.
Penyederhanaan Bersama (1)
Pada prakteknya ketiga penyederhanaan tersebut(penghilangan useless, unit, ) dilakukan bersama padasuatu tata bahasa bebas konteks,
Yang nantinya menyiapkan tata bahasa bebas kontekstersebut untuk diubah ke dalam suatu bentuk normalChomsky.
Hal yang harus diperhatian adalah penghilangan suatutipe produksi bisa menghasilkan produksi tipe yang lain ,hal ini didasari kenyataan bahwa penghilangan produksi bisa menghasilkan produksi unit.
Perhatikan juga bahwa penghilangan produksi unit tidakmenghasilkan produksi useless
Dan penghilangan produksi useless tidak menghasilkanproduksi unit maupun produksi .
Penyederhanaan Bersama (2) Maka penghapusan semua produksi yang tidak
diinginkan tersebut dengan melakukan urutan sebagaiberikut :
1. Hilangkan produksi
2. Hilangkan produksi unit
3. Hilangkan produksi useless
Bisa dilihat alur penyederhanaan tata bahasa bebaskonteks pada gambar berikut ini :
CFG
Penghilang-an
produksi
Penghilang -an
produksi unit
CFG ygsudah
disederhanakan
Penghilang-an
produksiuseless
Contoh (1)
Hasil yang diperoleh adalah tata bahasa yang sudahbebas dari ketiga jenis produksi tersebut.
Untuk melakukan ketiga penyederhanaan tersebutpada aturan produksi berikut :
S AA C bd
A Bb
B AB d
C de
Contoh (2)
Pertama-tama kita lakukan penghilangan produksi , sehingga aturan produksi menjadi :
S A AA C bd
A Bb
B B AB d
C de
Contoh (3)
Nampak bahwa penghilangan produksi berpotensiuntuk menghasilkan produksi unit yang baru yangsebelumnya tidak ada. Selanjutnya dilakukanpenghilangan produksi unit menjadi :
S Bb AA de bd
A Bb
B AB d
C de
Bisa dilihat, penghilangan produksi unit bisamenghasilkan produksi useless.
Contoh (4)
Terakhir dilakukan penghilangan produksi useless :
S Bb AA de bd
A Bb
B AB d
Bisa diperiksa, hasil akhir aturan produksi tidak lagimemiliki produksi , produksi unit maupun produksiuseless.
top related