Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Suatu tata bahasa bebas konteks (CFG) dikatakan dalam bentuk normal Greibach
(GNF) jika setiap aturan produksinya ada dalam bentuk:
A a
•Substitusi
•Perkalian Matrix
Pembetukan GNF dengan Substitusi
Steps:
• Tentukan urutan simbol-simbol variabel A1, A2 ,….. Am
• Berdasarkan urutan simbol, seluruh aturan produksi yang ruas kanannya diawali dengan simbol
variabel dapat dituliskan dalam bentuk
Ah Ai
dimana h </> i (rekursif kiri sudah dihilangkan), berupa simbol-simbol variabel.
– Jika h < i, aturan produksi ini sudah benar (tidak perlu diubah)
– Jika h > i, aturan produksi belum benar. Ubah Ai pada produksi ini dengan ruas kanan produksi
dari variabel Ai, sehingga diperoleh produksi dalam bentuk:
Ah Ap (dimana h p)
Ah Ap (dimana h = p)
• Lakukan substitusi mundur mulai dari variabel Am, lalu Am-1, Am-2,….Dengan cara ini aturan
produksi dalam bentuk Ax Ay dapat diubah sehingga ruas kanannya dimulai dengan simbol
terminal.
• Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara substusi untuk
menjadi GNF
Pembentukan GNF dengan Substitusi
Contoh:
Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk
CNF) ke dalam GNF!
S CA
Aad
Bb
C DD
D AB
Jawab:
• Tentukan urutan simbol variabel S<A<B<C<D (bebas)
• Periksa aturan produksi , apakah sudah memenuhi ketentuan urutan variabel:
S CA ( sudah memenuhi karena S<C)
C DD ( sudah memenuhi karena C<D)
D AB ( tidak memenuhi karena D>A)
Contoh
• Lakukan substitusi pada simbol variabel A, aturan produksi menjadi:
D AB D aB dB
• Setelah semua aturan produksi memenuhi ketentuan urutan variabel, lakukan
substitusi mundur pada aturan produksi yang belum dalam GNF
C DD C aBD dBD
S CA S aBDA dBDA
(Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel)
• Hasil akhir aturan produksi dalam GNF:
S aBDA dBDA
Aad
Bb
C aBD dBD
D aB dB
Contoh
Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk
CNF) ke dalam GNF!
A BC
B CA b
C AB a
Jawab:
• Tentukan urutan simbol variabel A<B<C (bebas)
• Periksa aturan produksi , apakah sudah memenuhi ketentuan urutan variabel:
A BC (sudah memenuhi karena A<B)
B CA (sudah memenuhi karena B<C)
C AB (tidak memenuhi karena C>A)
Contoh
• Lakukan substitusi pada symbol variabel A, aturan produksi menjadi:
C AB C BCB C CACB bCB
• Teradapat Rekursif kiri pada : C CACB, maka lakukan penghilangan rekursif kiri:
C CACB bCB | a
(1 = ACB & 1 = bCB , 2 = a)
C 1 Z1 2 Z1
Z1 1
Z1 1 Z1
Contoh
• Lakukan substitusi pada simbol variabel A, aturan produksi menjadi:
C AB C BCB C CACB bCB
• Teradapat Rekursif kiri pada : C CACB, maka lakukan penghilangan rekursif kiri:
C CACB bCB | a
(1 = ACB & 1 = bCB , 2 = a)
C bCBZ1 aZ1
Z1 ACB
Z1 ACB Z1
C bCB Z1 a Z1 bCB a
• Setelah semua aturan produksi memenuhi ketentuan urutan variabel, lakukan substitusi
mundur pada aturan produksi yang belum dalam GNF
• Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara substusi untuk
menjadi GNF
Z1 ACB Z1 bCB Z1ACCB a Z1ACCB bCBACCB aACCB bCCB
Z1 ACB Z1 Z1 bCB Z1ACCBZ1 a Z1ACCBZ1 bCBACCBZ1 aACCB Z1
bCCBZ1
• Hasil akhir aturan produksi dalam GNF:
1.
S AS | a
Aa
2.
S AA | d
A SS | b
Pembentukan GNF dengan Perkalian Matriks
Kumpulan aturan produksi dapat dianggap sebagai sistem persamaan linear.
Contoh:
A BC
B CA b
C AB a
Dapat dilihat sebagai:
A = BC
B = CA + b
C = AB + a
V = [A B C]
0 0 B A = BC
R = C 0 0 B = CA + b
0 A 0 C = AB + a
S = [0 b a]
‣ Persamaan matriksnya.
V = VR + S
0 0 B
[A B C] = [A B C] C 0 0 + [0 b a]
0 A 0
Pembetukan GNF dengan Perkalian Matriks
• Bentuk Persamaan Matriks Baru
V = SQ + S
Dimana Q = matriks n x n yang berisi simbol variabel2 baru
D E F
Q = G H I V = [A B C] S = [0 b a]
J K L
‣ Matriksnya berupa:
D E F
[A B C] = [0 b a] G H I + [0 b a]
J K L
Pembetukan GNF dengan Perkalian Matriks
A = bG + aJ
B = bH + aK + b
C = bI + aL + a
……………………………………………………… persamaan (1)
Pembetukan GNF dengan Perkalian Matriks
• Bentuk Persamaan Matriks Baru
Q= RQ + R
Dimana Q = matriks n x n yang berisi simbol variabel2 baru
D E F 0 0 B
Q = G H I R = C 0 0
J K L 0 A 0
‣ Matriksnya berupa:
D E F 0 0 B D E F 0 0 B
G H I = C 0 0 G H I + C 0 0
J K L 0 A 0 J K L 0 A 0
Pembetukan GNF dengan Perkalian Matriks
• Dari hasil perkalian matriks didapat persamaan:
D = BJ
E = BK
F = BL + B
G = CD + C
H = CE
I = CF
J = AG
K = AH + A
L = AI
………………………………………………………… persamaan (2)
Pembetukan GNF dengan Perkalian Matriks
• Substitusi persamaan (1) ke dalam persamaan (2)
D =bHJ + aKJ + bJ
E = bHK + aKK + bK
F = bHL + aKL + bL + bH + aK + b
G = bID + aLD + aD + bI + aL + a
H = bIE + aLE + aE
I = bIF + aLF + aF
J = bGG + aJG
K = bGH + aJH + bG + aJ
L = bGI + aJI
………………………………………………………… persamaan (3)
Pembetukan GNF dengan Perkalian Matriks
• Hasil akhir aturan produksi dalam bentuk GNF adalah ( pers1 + pers 3):
A = bG + aJ
B = bH + aK + b
C = bI + aL + a
D =bHJ + aKJ + bJ
E = bHK + aKK + bK
F = bHL + aKL + bL + bH + aK + b
G = bID + aLD + aD + bI + aL + a
H = bIE + aLE + aE
I = bIF + aLF + aF
J = bGG + aJG
K = bGH + aJH + bG + aJ
L = bGI + aJI
Contoh
Ubahlah Tata bahasa bebas konteks berikut ke dalam GNF dengan menggunakan
perkalian matriks.
(sudah dalam bentuk CNF) !
1.
S AA | d
A SS | b
Buktikan bahwa string yang sama dapat di hasilkan oleh kedua cara