260 likes | 814 Views
Pertemuan 10 Chomsky Normal Form dan Greibach Normal Form. Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : << TIK-99 >> << TIK-99>>. Outline Materi. Materi 1 Materi 2 Materi 3 Materi 4
E N D
Pertemuan 10 Chomsky Normal Form dan Greibach Normal Form Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • << TIK-99 >> • << TIK-99>>
Outline Materi • Materi 1 • Materi 2 • Materi 3 • Materi 4 • Materi 5
C N F Chomsky Normal Form : Setiap CFG tanpa produksi dapat dihasilkan oleh suatu grammar yang produksinya berbentuk : A BC atau A a A,B,C : non-terminal a : terminal
CONTEXT FREE GRAMMAR (CFG)Lanjutan.. Contoh : CFG G = ({S,A,B},{a,b},P,S) dimana P terdiri dari : 1. S bA 2. S aB 3. A bAA 4. A aS 5. A a 6. B aBB 7. B bS 8. B b Produksi 5 dan 8 sudah dalam bentuk CNF, yang lainnya belum.
C N F Prosedur membentuk CNF : Introduksi non-terminal baru untuk terminal atau gabungan non-terminal sebagai berikut secara bertahap : 1. S bA menjadi S CbA, Cb b 2. S aB menjadi S CaB, Ca a 3. A bAA menjadi A CbAA 4. A aS menjadi A CaS 5. B aBB menjadi B CaBB 6. B bS menjadi B CbS
CONTEXT FREE GRAMMAR (CFG)Lanjutan.. Selanjutnya : A CbAA menjadi A CbD1 D1 AA B CaBB menjadi B CaD2 D2 BB
C N F Dengan demikian G di atas dalam bentuk CNF menjadi : 1. S CbA 7. A CaS 2. Cb b 8. A a 3. S CaB 9. B CaD2 4. Ca a 10. D2 BB 5. A CbD1 11. B CbS 6. D1 AA 12. B b
GREIBACH NORMAL FORM Theorem : (Greibach Normal Form) Setiap CFL tanpa dapat dihasilkan oleh suatu CFG yang produksinya berbentuk : A a dimana A : variabel / non-terminal a : terminal : string variabel (V*) yang mungkin empty
G N F Konversi CFG kebentuk GNF ekuivalen. • Bentukproduksi: A a , dengan dalam (VT)* Substitusisemua terminal dalam denganvariabel. Contoh : A aaB Ubahmenjadi : A aCB (GNF) C a (GNF)
G N F 2. Bentuk produksi : A B (dimulai dengan variabel) Jika produksi B sudah diawali dengan terminal, gunakan untuk mensubstitusi variabel B di atas. Contoh : A BC B aB | b Diubah menjadi: A aBC | bC (GNF) B aB | b (GNF)
Lemma G1 : Misalkan G = (V,T,P,S) suatu CFG. A 1B2 suatu produksi dalam P dan B 12…r himpunan produksi B. Misalkan G1 = (V,T,P1,S) diperoleh dengan menghilangkan semua produksi dalam bentuk A 1B2 dari P dan menambahkan produksi dalam bentuk : A 112122…1r2 maka L(G) = L(G1)
3. Bentuk produksi : A A (diawali dengan variabel yang sama). Dalam hal ini tidak dapat diubah hanya dengan substitusi, tetapi harus mengintroduksi variabel baru. • Lemma G2 : Misalkan G = (V,T,P,S) suatu CFG. A A1A2…Ar adalah himpunan sebagian produksi A, sedangkan produksi lainnya dalam bentuk : A 12…s
Misalkan G1 = (V {B},T,P1,S} dibentuk dengan menambahkan variabel B ke V dan mengganti semua produksi A dengan produksi dalam bentuk : 1. 1 j s 2. 1 i r maka L(G1) = L(G)
Pembuktian Lemma G2 : • Derivasi leftmost dari G untuk produksi A AI berakhir dengan produksi A j sebagai berikut : A Ai1 Ai2i1 … Aipip-1 …i1 jipip-1…i1 Dalam G1 urutan penggantian di atas berbentuk : A j B jipB jipip-1B … jipip-1 … jipip-1 …i2 B jipip-1 …i2i1
Dalam Parse-Tree kedua derivasi di atas berbentuk :
Contoh : Ubah produksi grammar berikut ke dalam bentuk Greibach Normal Form : G = ({A1, A2, A3}, {a, b}, P, A1) dimana P terdiri dari : 1. A1 A2 A3 2. A2 A3 A1 b 3. A3 A1 A2 a
Penyelesaian : Tahap 1 : Simbol A1 dalam (3) diganti dengan produksi (1) {Lemma G1} : 1. A1 A2 A3 2. A2 A3 A1 b 3. A3 A2 A3 A2 a
Selanjutnya A2 paling kiri dalam (3) diganti dengan produksi (2) : 1. A1 A2 A3 2. A2 A3 A1 b 3. A3 A3 A1 A3 A2 b A3 A2 a
Selanjutnya aplikasi Lemma G2 pada produksi (3) diperoleh : 1. A3 b A3 A2 | a 2. A3 b A3 A2 B3 | a B3 3. B3 A1 A3 A2 4. B3 A1 A3 A2 B3
Dengan demikian P menjadi : 1. A1 A2 A3 2. A2 A3 A1 b 3. A3 bA3 A2 B3 aB3 bA3 A2 a 4. B3 A1 A3 A2 A1 A3 A2 B3 Produksi (3) sudah GNF, subsitusikan ke produksi (2) untuk diubah ke dalam GNF.
Tahap 2 : Dengan menggunakan produksi (3) secara substitusi ke dalam produksi lainnya di peroleh : A2 bA3 A2 B3 A1 aB3 A1 bA3 A2 A1 a A1 b A1 bA3 A2 B3 A1 A3 aB3 A1 A3 bA3A2 A1A3 a A1 A3 bA3
Dengan menggunakan produksi untuk A1 diperoleh : B3bA3A2B3A1A3A3A2B3 aB3A1A3A3A2B3 bA3A3A2B3 bA3A2A1A3A3A2B3 aA1A3A3A2B3 bA3A2B3A1A3A3A2 aB3A1A3A3A2 bA3A3A2 bA3A2A1A3A3A2 aA1A3A3A2