Pertemuan 10 Chomsky Normal Form dan Greibach Normal Form Matakuliah
Download
Report
Transcript Pertemuan 10 Chomsky Normal Form dan Greibach Normal Form Matakuliah
Matakuliah
Tahun
: T0162/Teori Bahasa dan Automata
: 2009
Pertemuan 10
Chomsky Normal Form dan
Greibach Normal Form
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• << TIK-99 >>
• << TIK-99>>
2
Outline Materi
•
•
•
•
•
Materi 1
Materi 2
Materi 3
Materi 4
Materi 5
3
CNF
Chomsky Normal Form :
Setiap CFG tanpa produksi dapat
dihasilkan oleh suatu grammar yang
produksinya berbentuk :
A BC atau
Aa
A,B,C : non-terminal
a
: terminal
4
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
Produksi 5 dan 8 sudah
4. A aS
dalam bentuk CNF, yang
5. A a
lainnya belum.
6. B aBB
7. B bS
8. B b
5
CNF
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
6
CONTEXT FREE GRAMMAR (CFG)
Lanjutan..
Selanjutnya :
A CbAA menjadi A CbD1
D1 AA
B CaBB menjadi B CaD2
D2 BB
7
CNF
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
8
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
9
GNF
Konversi CFG ke bentuk GNF ekuivalen.
1. Bentuk produksi:
A a , dengan dalam (VT)*
Substitusi semua terminal dalam dengan
variabel.
Contoh : A aaB
Ubah menjadi : A aCB
(GNF)
C a
(GNF)
10
GNF
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)
11
• 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)
12
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
13
Misalkan G1 = (V {B},T,P1,S} dibentuk
dengan menambahkan variabel B ke V
dan mengganti semua produksi A dengan
produksi dalam bentuk :
1.A j 1 j s
A B
j
B i
2. B iB 1 i r
maka L(G1) = L(G)
14
Pembuktian Lemma G2 :
• Derivasi leftmost dari G untuk produksi
A AI berakhir dengan produksi
A j sebagai berikut :
A Ai1 Ai2i1 … Aipip-1 …i1
j ipip-1…i1
Dalam G1 urutan penggantian di atas berbentuk :
A j B j ipB j ipip-1B … j ipip-1
… j ipip-1 …i2 B
j ipip-1 …i2 i1
15
Dalam Parse-Tree kedua derivasi di atas
berbentuk :
A
i1
A
i2
A
j
B
ip
A
B
ip
i2
A
B
j
i1
G
G1
16
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
17
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
18
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
19
Selanjutnya aplikasi Lemma G2 pada
produksi (3) diperoleh :
1. A3
2. A3
3. B3
4. B3
b A3 A2 | a
b A3 A2 B3 | a B3
A1 A3 A2
A1 A3 A2 B3
20
Dengan demikian P menjadi :
1. A1
2. A2
3. A3
4. B3
A2 A3
A3 A1 b
bA3 A2 B3 aB3 bA3 A2 a
A1 A3 A2 A1 A3 A2 B3
Produksi (3) sudah GNF, subsitusikan ke
produksi (2) untuk diubah ke dalam GNF.
21
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
22
Dengan menggunakan produksi untuk
A1 diperoleh :
B3 bA3A2B3A1A3A3A2B3
aB3A1A3A3A2B3
bA3A3A2B3 bA3A2A1A3A3A2B3
aA1A3A3A2B3 bA3A2B3A1A3A3A2
aB3A1A3A3A2 bA3A3A2
bA3A2A1A3A3A2 aA1A3A3A2
23
<< CLOSING>>
24