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
Aa
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 (VT)*
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  1B2 suatu produksi dalam P dan
B  12…r himpunan produksi B.
Misalkan G1 = (V,T,P1,S) diperoleh dengan
menghilangkan semua produksi dalam
bentuk A  1B2 dari P dan menambahkan
produksi dalam bentuk :
A  112122…1r2
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  A1A2…Ar adalah himpunan
sebagian produksi A, sedangkan produksi
lainnya dalam bentuk :
A  12…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  AI berakhir dengan produksi
A  j sebagai berikut :
A  Ai1  Ai2i1  …  Aipip-1 …i1
 j ipip-1…i1
Dalam G1 urutan penggantian di atas berbentuk :
A  j B  j ipB  j ipip-1B …  j ipip-1
…  j ipip-1 …i2 B
j ipip-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