Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Penghilangan Rekursif Kiri. Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel. Aturan Produksi Rekursif Kanan.

Presentasi serupa


Presentasi berjudul: "Penghilangan Rekursif Kiri. Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel. Aturan Produksi Rekursif Kanan."— Transcript presentasi:

1 Penghilangan Rekursif Kiri

2 Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel. Aturan Produksi Rekursif Kanan Sebuah aturan produksi dalam bentuk: A   A A : Variabel  :(V  T)* atau kumpulan symbol variabel dan terminal Aturan Produksi Rekursif Kiri Aturan produksi dalam bentuk: A  A  Contoh: S  Sd B  Bad

3 Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke kanan, sebaliknya produksi yang rekursif ke kiri menyebabkan pohon penurunan tumbuh ke kiri. Contoh : tata bahasa bebas konteks dengan aturan produksi: S  aAc A  Ab   S Aa bA c A A b b Pohon penurunan sebuah CFG yang rekursif kiri.

4 CFG mengandung aturan produksi yang rekursif kiri Aturan produksi yang tidak rekursif kiri Aturan produksi yang rekursif kiri Lakukan penggantian, munculkan aturan produksi baru dan symbol variabel baru CFG bebas dari aturan produksi yang rekursif kiri Dalam banyak penerapan tata bahasa, rekursif kiri tak diinginkan. Untuk menghindari penurunan yang bisa mengakibatkan loop hilangkan sifat rekursif kiri dari aturan produksi.

5 Steps:  Pisahkan aturan produksi yang rekursif kiri dan yang tidak. Aturan produksi yang rekursif kiri diberi simbol  n setelah variabel: A  A  1  A  2  A  3  ……..A  n Aturan produksi yang tidak rekursif kiri (termasuk produksi  ) diberi simbol  m A   1   2   3  ……..  m  Lakukan penggantian aturan produksi yang rekursif kiri, menjadi sebagai berikut: A   1 Z   2 Z  ………  m Z Z   1   2   3  ……  n Z   1 Z   2 Z   3 Z  ……  n Z

6 ◦ Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan produksi semula yang tidak rekursif kiri. Contoh: Lakukanlah penghilangan rekursif kiri untuk tata bahas bebas konteks dibawah: 1. S  Sab  aSc  dd  ff  Sbd 2. S  Sab  Sb  cA A  Aa  a  bd

7 1.  Aturan produksi yang rekursif kiri: S  Sab  Sbd Untuk symbol S  1 = ab,  2 = bd  Aturan produksi yang tidak rekursif kiri: S  aSc  dd  ff Untuk symbol S  1 = aSc,  2 = dd,  3 = ff

8  1 = ab,  2 = bd&  1 = aSc,  2 = dd,  3 = ff  Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: ◦ S   1 Z 1   2 Z 1   3 Z 1

9  1 = ab,  2 = bd&  1 = aSc,  2 = dd,  3 = ff  Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: ◦ S  aScZ 1  dd Z 1  ff Z 1 ◦ Z 1   1   2 ◦ Z 1   1 Z 1   2 Z 1

10  1 = ab,  2 = bd&  1 = aSc,  2 = dd,  3 = ff  Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: ◦ S  aScZ 1  dd Z 1  ff Z 1 ◦ Z 1  ab  bd ◦ Z 1  ab Z 1  bd Z 1

11  1 = ab,  2 = bd&  1 = aSc,  2 = dd,  3 = ff  Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sbd, digantikan oleh: ◦ S  aScZ 1  dd Z 1  ff Z 1 ◦ Z 1  ab  bd ◦ Z 1  ab Z 1  bd Z 1 Hasil akhir setelah penghilangan rekursif kiri adalah: S  aSc  dd  ff S  aScZ 1  dd Z 1  ff Z 1 Z 1  ab  bd Z 1  ab Z 1  bd Z 1

12 2.  Aturan produksi yang rekursif kiri: S  Sab  Sb A  Aa Untuk symbol S   1 = ab,  2 = b Untuk symbol A   1 = a  Aturan produksi yang tidak rekursif kiri: S  cA A  a  bd Untuk symbol S   1 = cA Untuk symbol A   1 = a,  2 = bd

13 S   1 = ab,  2 = b&  1 = cA A   1 = a&  1 = a  2 = bd  Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sb, digantikan oleh: ◦ S   1 Z 1 ◦Z1  1  2◦Z1  1  2 ◦ Z 1   1 Z 1   2 Z 1 A  Aa, digantikan oleh: ◦ A   1 Z 2   2 Z 2 ◦Z2  1◦Z2  1 ◦Z2  1 Z2◦Z2  1 Z2

14 S   1 = ab,  2 = b&  1 = cA A   1 = a&  1 = a,  2 = bd  Lakukan penggantian aturan produksi yang rekursif kiri S  Sab  Sb, digantikan oleh: ◦ S  cAZ 1 ◦ Z 1  ab  b ◦ Z 1  ab Z 1  bZ 1 A  Aa, digantikan oleh: ◦ A  aZ 2  bdZ 2 ◦ Z 2  a ◦ Z 2  aZ 2

15 Hasil akhir setelah penghilangan rekursif kiri adalah: S  cA A  a  bd S  cAZ 1 Z 1  ab  b Z 1  ab Z 1  bZ 1 A  aZ 2  bdZ 2 Z 2  a Z 2  aZ 2

16 Lakukanlah penghilangan rekursif kiri untuk tata bahas bebas konteks dibawah: S  Sa  aAc  c   A  Ab  ba

17

18 Bentuk Normal Greibach (GNF)

19 Suatu tata bahasa bebas konteks (CFG) dikatakan dalam bentuk normal Greibach (GNF) jika setiap aturan produksinya ada dalam bentuk: A  a  a : symbol terminal (tunggal), a  T  : rangkaian symbol-simbol variabel (V*) Contoh tata bahasa bebas konteks dalam bentuk normal Greibach: S  a  aAB A  aB B  cS

20 Untuk dapat diubah ke dalam bentuk normal Greibach, tata bahasa semula harus memenuhi syarat: ◦ Sudah dalam bentuk normal Chomsky (CNF) ◦ Tidak bersifat rekursif kiri ◦ Tidak menghasilkan 

21 Ada 2 cara merubah Tata bahasa bebas konteks menjadi GNF: Substitusi Perkalian Matrix

22 Steps:  Tentukan urutan symbol-simbol variabel  A 1, A 2,….. A m  Berdasarkan urutan symbol, seluruh aturan produksi yang ruas kanannya diawali dengan symbol variabel dapat dituliskan dalam bentuk A h  A i  dimana h i (rekursif kiri sudah dihilangkan),  berupa symbol-simbol variabel. ◦ Jika h < i, aturan produksi ini sudah benar (tidak perlu diubah) ◦ Jika h > i, aturan produksi belum benar. Ubah A i pada produksi ini dengan ruas kanan produksi dari variabel A i, sehingga diperoleh produksi dalam bentuk: A h  A p  (dimana h  p)  h = p, lakukan penghilangan rekursif kiri  h < p, aturan produksi sudah benar

23 Steps - cont d :  Lakukan penghilangan rekursif kiri bila A h  A p  (dimana h = p)  Lakukan substitusi mundur mulai dari variabel A m, lalu A m-1, A m-2,….Dengan cara ini aturan produksi dalam bentuk A x  A y  dapat diubah sehingga ruas kanannya dimulai dengan symbol terminal.  Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara substusi untuk menjadi GNF

24 Contoh: Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk CNF) ke dalam GNF! S  CA A  a  d B  b C  DD D  AB Jawab:  Tentukan urutan symbol variabel  SA)

25  Lakukan substitusi pada symbol 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 A  a  d B  b C  aBD  dBD D  aB  dB

26 Ubahlah Tata bahasa bebas konteks berikut (sudah dalam bentuk CNF) ke dalam GNF! A  BC B  CA  b C  AB  a Jawab:  Tentukan urutan symbol variabel  AA)

27  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 Z 1   2 Z 1 Z 1   1 Z 1   1 Z 1

28  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  bCBZ 1  aZ 1 Z 1  ACB Z 1  ACB Z 1 Variabel C yang sudah dalam bentuk normal Greibach: C  bCB Z 1  a Z 1  bCB  a

29  Setelah semua aturan produksi memenuhi ketentuan urutan variabel, lakukan substitusi mundur pada aturan produksi yang belum dalam GNF B  CA| b  B  bCB Z 1 A  a Z 1 A  bCBA  aA | b A  BC  A  bCB Z 1 AC  a Z 1 AC  bCBAC  aAC  bC (Lakukan substitusi dari kanan ke kiri berdasarkan urutan variabel)  Variabel baru yg didapat dari penghilangan rekursif kiri diubah dengan cara substusi untuk menjadi GNF Z 1  ACB  Z 1  bCB Z 1 ACCB  a Z 1 ACCB  bCBACCB  aACCB  bCCB Z 1  ACB Z 1  Z 1  bCB Z 1 ACCBZ 1  a Z 1 ACCBZ 1  bCBACCBZ 1  aACCB Z 1  bCCBZ 1  Hasil akhir aturan produksi dalam GNF: A  bCB Z 1 AC  a Z 1 AC  bCBAC  aAC  bC B  bCB Z 1 A  a Z 1 A  bCBA  aA  b C  bCB Z 1  a Z 1  bCB  a Z 1  bCB Z 1 ACCB  a Z 1 ACCB  bCBACCB  aACCB  bCCB Z 1  bCB Z 1 ACCBZ 1  a Z 1 ACCBZ 1  bCBACCBZ 1  aACCB Z 1  bCCBZ 1 

30 Ubahlah Tata bahasa bebas konteks berikut ke dalam GNF (sudah dalam bentuk CNF) ! 1. S  AS | a A  a 2. S  AA | d A  SS | b

31 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 Buat matriks dengan persamaan V = VR + S Dimana (n = banyaknya variable dalam tata bahasa) dan: V = vektor baris 1 x n (berisi simbol2 variabel) R = matriks n x n berisi simbol terminal dan variabel (utk mengganti produksi yg diawali dengan variabel) S = vektor baris 1 x n (berisi simbol terminal utk mengganti produksi yang diawali dengan terminal)

32  Tentukan V,R dan S. V = [ A B C ] R = 0 0 B C A 0 S = [ 0 b a ] ‣ Persamaan matriksnya. V = VR + S [ A B C ] =[ A B C ] 0 0 B C A 0 + [ 0 b a ] A = BC B = CA + b C = AB + a

33  Bentuk Persamaan Matriks Baru V = SQ + S Dimana Q = matriks n x n yang berisi simbol variabel2 baru Q = D E F G H I J K L ‣ Matriksnya berupa: [ A B C ] =+ [ 0 b a ][ 0 b a ] D E F G H I J K L V = [ A B C ]S = [ 0 b a ]

34  Dari hasil perkalian matriks didapat persamaan: A = bG + aJ B = bH + aK + b C = bI + aL + a ……………………………………………………… persamaan (1)

35  Bentuk Persamaan Matriks Baru Q= RQ + R Dimana Q = matriks n x n yang berisi simbol variabel2 baru Q = D E F G H I J K L ‣ Matriksnya berupa: R = 0 0 B C A 0 D E F G H I J K L 0 0 B C A B C A 0 + D E F G H I J K L =

36  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)

37  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)

38  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

39 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


Download ppt "Penghilangan Rekursif Kiri. Aturan Produksi yang rekursif memiliki ruas kanan (hasil produksi) yang memuat simbol variabel. Aturan Produksi Rekursif Kanan."

Presentasi serupa


Iklan oleh Google