Teori Bahasa dan Automata

Slides:



Advertisements
Presentasi serupa
Teori Bahasa dan Automata
Advertisements

Teori Bahasa dan Automata
BENTUK NORMAL CHOMKY.
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata
11. BENTUK NORMAL CHOMSKY.
Teori Bahasa dan Automata
Pertemuan 12 Bentuk Normal untuk Grammar Bebas Konteks
Bentuk Normal Greibach
Normal Chomsky Pertemuan 8
Penyederhanaan Bahasa Bebas Context
Produksi yang rekursif kanan menyebabkan pohon penurunan tumbuh ke
PENGHILANGAN REKURSIF KIRI
12. PENGHILANGAN REKURSIF KIRI
Penghilangan Rekursif Kiri
Bentuk Normal Greibach (Greibach Normal Form)
13. BENTUK NORMAL GREIBACH
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
Teori Bahasa dan Otomata 2 sks
TEORI BAHASA DAN OTOMATA
Pohon penurunan dan Penyederhanaan Tata Bahasa Bebas Konteks
13. BENTUK NORMAL GREIBACH
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
10. PENYEDERHANAAN TATA BAHASA
7. ATURAN PRODUKSI.
Analisis Leksikal.
Pertemuan 12 CONTEXT FREE GRAMMAR (CFG) Lanjutan..
BAB X BENTUK NORMAL CHOMSKY.
9. POHON PENURUNAN.
12. PENGHILANGAN REKURSIF KIRI Aturan Produksi Rekursif Aturan produksi yang rekursif adalah aturan produksi yang hasil produksinya (ruas kanan)
CONTEXT- FREE LANGUAGE Yenni Astuti Version
TEORI BAHASA & AUTOMATA
1 Pertemuan 11 CONTEXT FREE GRAMMAR (CFG) Lanjutan.. Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2005 Versi: 1/0.
BENTUK NORMAL CHOMSKY Teori Bahasa dan Otomata CHAPTER 6
KONSEP GRAMMAR & HIRARKI CHOMSKY
Teori-Bahasa-dan-Otomata
Teori-Bahasa-dan-Otomata
TEORI BAHASA DAN AUTOMATA TATA BAHASA LEVEL BAHASA
Bentuk Normal Chomsky (CNF)
TEORI BAHASA DAN OTOMATA
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS
ATURAN PRODUKSI TATA BAHASA REGULER
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)
Bahasa Type 2 (CONTEXT FREE GRAMMAR)
OTOMATA DAN TEORI BAHASA FORMAL
Bentuk Normal Chomsky, Penghilangan Rekursif kiri dan Normal Greibach
Bentuk Normal Chomsky *YANI*.
Teori-Bahasa-dan-Otomata
GRAMMER ATAU TATA BAHASA
PENYEDERHANAAN TATA BAHASA BEBAS KONTEKS.
PENGHILANGAN REKURSIF KIRI
Bahasa Context Free.
OTOMATA DAN TEORI BAHASA 2
Penghilangan Bentuk Left Linear Grammer
Teori-Bahasa-dan-Otomata
OTOMATA DAN TEORI BAHASA 7
TATA BAHASA BEBAS KONTEKS
BAB VIII POHON PENURUNAN.
Penyederhanaan Tata Bahasa Bebas Konteks
Istiqomah, S.Kom [Teknik Kompilasi UNIKOM 2013]
Penyederhanaan Tata Bahasa Bebas Konteks
Pertemuan 10 CONTEXT FREE GRAMMAR (CFG) Lanjutan..
TEORI BAHASA & AUTOMATA
TEORI BAHASA DAN OTOMATA. Pengenalan Teori Bahasa dan Otomata Teori bahasa dan otomata merupakan mata kuliah yang cenderung bersifat teoritis, tidak memuat.
BENTUK NORMAL GREIBACH
Brute force 2/16/2019 Materi ke 5.
Grammar dan Bahasa Automata
Penghilangan Rekursif Kiri
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
Chomsky Normal Form (CNF) / Bentuk Normal Chomsky (BNC)
OTOMATA DAN TEORI BAHASA.
Transcript presentasi:

Teori Bahasa dan Automata Penyederhanaan Tata Bahasa Bebas Konteks

Penyederhanaan Tata Bahasa Bebas Konteks Tujuan 

Penyederhanaan Tata Bahasa Bebas Konteks Tujuan  melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak pelu atau aturan produksi yang tak berarti.

Penyederhanaan Tata Bahasa Bebas Konteks Tujuan  melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak pelu atau aturan produksi yang tak berarti. Contoh: Terdapat tata bahasa bebas konteks dgn aturan produksi: SAB  a Aa ???

Penyederhanaan Tata Bahasa Bebas Konteks Tujuan  melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak pelu atau aturan produksi yang tak berarti. Contoh: Terdapat tata bahasa bebas konteks dgn aturan produksi: SAB  a Aa B Tidak memiliki penurunan …

Penyederhanaan Tata Bahasa Bebas Konteks Bagaimana dengan CFG berikut? SA AB BC CD Da  A Terlalu panjang path yang dilalui D  A : menyebabkan kerumitan (redundant)

Penyederhanaan Tata Bahasa Bebas Konteks Suatu tata bahasa bebas konteks dapat disederhanakan dengan melakukan : Penghilangan produksi useless Penghilangan produksi unit Penghilangna produksi 

Penghilangan Produksi Useless Produksi useless didefinisikan sebagai : Produksi yang memuat variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya. Produksi ini tidak berguna karena bila diturunkan tidak akan pernah selesai (masih ada symbol variabel yang tersisa) Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari symbol awal, sehingga produksi itu berlebih.

Penghilangan Produksi Useless Contoh : Terdapat tata bahasa bebas konteks : SaSa Abd  Bde AAda BBBB  a Simbol variabel A tidak memiliki penurunan yang menuju terminal sehingga bisa dihilangkan. Konsekuensi diatas, aturan produksi S  Abd tidak memiliki penurunan  Maka tata bahasa bebas konteks setelah disederhanakan menjadi : SaSa  Bde

Penghilangan Produksi Useless Contoh : Terdapat tata bahasa bebas konteks : SaSa Abd  Bde AAda BBBB  a Simbol variabel A tidak memiliki penurunan yang menuju terminal sehingga bisa dihilangkan. Konsekuensi diatas, aturan produksi S  Abd tidak memiliki penurunan  Maka tata bahasa bebas konteks setelah disederhanakan menjadi : SaSa  Bde

Penghilangan Produksi Useless Contoh : Terdapat tata bahasa bebas konteks : S Aa  B Aab  D Bb  E Cbb EaEa Simbol variabel D tidak memiliki penurunan Tidak ada penurunan yang mencapai simbol variabel C Simbol variabel E tidak memiliki penurunan menuju terminal   Aturan2 Produksi yang useless : AD Cbb EaEa BE Tata bahasa bebas konteks setelah disederhanakan menjadi : SAa  B Aab Bb

Penghilangan Produksi Useless Contoh : Sederhanakan CFG dengan Aturan produksi berikut dengan menghilangkan aturan2 produksi useless! 1. SaAb  cEB AdBE  eeC Bff Cae Dh 2. SaBD BcD  Ab Def AEd Fdc

Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksi hanya berupa satu symbol variabel. e.g. A B, C  D Tata bahasa bebas konteks dgn aturan produksi : SSb SC CD Cef Ddd

Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksi hanya berupa satu symbol variabel. e.g. A B, C  D Tata bahasa bebas konteks dgn aturan produksi : SSb SC CD Cef Ddd

Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksi hanya berupa satu symbol variabel. e.g. A B, C  D Tata bahasa bebas konteks dgn aturan produksi : SSb SC C dd Cef Ddd

Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksi hanya berupa satu symbol variabel. e.g. A B, C  D Tata bahasa bebas konteks dgn aturan produksi : SSb SC C dd Cef Ddd

Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksi hanya berupa satu symbol variabel. e.g. A B, C  D Tata bahasa bebas konteks dgn aturan produksi : SSb S dd | ef C dd Cef Ddd

Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan ruas kanan aturan produksi hanya berupa satu symbol variabel. e.g. A B, C  D Tata bahasa bebas konteks setelah penghilangan produksi unit: SSb S dd | ef C dd Cef Ddd

Penghilangan Produksi Unit Contoh: Sederhanakan CFG dengan Aturan produksi berikut dengan menghilangkan aturan2 produksi unit! SCba  D AbbC BSc  ddd CeA  f  C DE  SABC Egh

Penghilangan Produksi  Produksi  adalah produksi dalam bentuk  (nullable) Penghilangan produksi  dilakukan dengan melakukan penggantian produksi yang memuat variabel yang bisa menuju produksi . Contoh: SbcAd A A nullable, A   Hasil penyederhanaan tata bahasa bebas konteks: Sbcd  

Penghilangan Produksi  Contoh: Terdapat tata bahasa bebas konteks : SbcAd Abd   A adalah variabel nullable Hasil penyederhanaan tata bahasa bebas konteks: SbcAd  bcd Abd

Penghilangan Produksi  Contoh: Terdapat tata bahasa bebas konteks : SbcAd Abd   A adalah variabel nullable Hasil penyederhanaan tata bahasa bebas konteks: SbcAd  bcd Abd

Penghilangan Produksi  Contoh: Terdapat tata bahasa bebas konteks : S  ACD A a B   C  ED |  D  BC | b E  b Lakukan penghilangan aturan2 produksi unit  !   Variabel nullable: B, C, D

Penghilangan Produksi  D  C S  AD D  B D  e S  AC S  A C  E S  ACD A a B   C  ED |  D  BC | b E  b Variabel nullable: B, C, D Hasil penyederhanaan tata bahasa bebas konteks: SACD | AD | AC | A Aa C  ED | E D  C | b E  b

Penghilangan produksi useless, unit dan  Pada prakteknya ketiga penyederhanaan ( penghilangan useless, unit,  ) dilakukan bersama pada suatu tata bahasa bebas konteks  diubah ke dalam suatu bentuk normal Chomsky. Maka kita bisa menghapuskan semua produksi yang tidak diinginkan tersebut dengan melakukan urutan sebagai berikut : Hilangkan produksi  Hilangkan produksi unit Hilangkan produksi useless

Penghilangan produksi useless, unit dan  Contoh: Sebuah CFG dengan aturan produksi: S AA  C  bd A Bb   B AB  d C de Lakukan ketiga penyederhanaan (useless, unit dan ) !

Penghilangan produksi useless, unit dan  Pertama  Penghilangan produksi  : S A  AA  C  bd A Bb B B  AB  d C  de Kedua  Penghilangan produksi unit: S Bb  AA  de  bd A  Bb B AB  d

Penghilangan produksi useless, unit dan  Ketiga  Penghilangan produksi useless : S Bb  AA  de  bd A  Bb B AB  d Tidak terdapat lagi produksi , produksi unit maupun produksi useless.

Teori Bahasa dan Automata Bentuk Normal Chomsky (CNF)

CNF Bentuk Normal Chomsky/ Chomsky Normal Form (CNF) merupakan salah satu bentuk normal yang sangat berguna untuk tata bahasa bebas konteks (CFG) Suatu Context Free Grammar dapat dibuat menjadi bentuk normal Chomsky dengan syarat tata bahasa bebas konteks tersebut: tidak memiliki produksi useless tidak memiliki produksi unit tidak memiliki produksi 

CNF Sebuah CFG disebut dalam bentuk Chomsky Normal Form apabila CFG tersebut memiliki aturan produksi yang ruas kanannya hanya terdapat tepat 1 terminal atau tepat 2 variabel. Contoh : A  BC A  b B  a C  BA d

CFG yang sudah disederhanakan Pembentukan CNF Biarkan yang sudah CNF CFG yang sudah disederhanakan Penggantian symbol terminal pada a.p, dg ruas kanan >1 Buat variabel dan a.p. baru bila perlu CNF Penggantian a.p. dg symbol variabel>2

Contoh CNF Contoh, Sebuah Tata bahasa bebas konteks dengan aturan produksi (sudah disederhanakan): S  bA  aB A  bAA  aS  a B  aBB  bS  b

Contoh CNF Aturan produksi yang sudah dalam CNF: A  a B  b Ubah aturan produksi: S  bA  S  P1A S  aB  S  P2B A  bAA  A  P1AA  A  P1 P3 A  aS  A  P2S B  aBB  B  P2BB  B  P2 P4 B  bS  B  P1S Buat aturan produksi dan symbol variabel baru: P1  b P2  a P3  AA P4  BB

Contoh CNF Hasil akhir aturan produksi dalam CNF A  a B  b S  P1A S  P2B A  P1 P3 A  P2S B  P2 P4 B  P1S P1  b P2  a P3  AA P4  BB

Latihan CNF Ubahlah CFG berikut menjadi CFG dengan Chomsky Normal Form ! 1. Aturan Produksi : S  aB  CA A  a  bc B  BC  Ab C  aB  b 2. Aturan Produksi: S  aAB  ch  CD A  dbE  eEC B  ff  DD C  ADB  aS D  i E  jD

Algoritma Cocke, Younger & Kasami (CYK Algorithm) Digunakan untuk menunjukkan apakah suatu string diperoleh oleh suatu Grammar. Contoh : Terdapat tata bahasa bebas konteks : S AB | BC A BA | a B CC | b C  AB | a Tentukan apakah string ‘baaba’ termasuk dalam CFG diatas!

Contoh Alogritma CYK Tentukan n dimana n merupakan panjang string. n = |’baaba’| = 5 Buatah tabel Vi,j dimana i merupakan kolom dan j merupakan baris (Vkolom,baris ): b a 1 2 3 4 5 V1,1 V2,1 V3,1 V4,1 V5,1 V1,2 V2,2 V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Untuk V1,1  yang bisa menurunkan b : {B} Untuk V2,1  yang bisa menurunkan a : {A,C} Untuk V3,1  yang bisa menurunkan a : {A,C} Untuk V4,1  yang bisa menurunkan b : {B} Untuk V5,1  yang bisa menurunkan a : {A,C} b a 1 2 3 4 5 B A,C V1,2 V2,2 V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S dan A. Untuk V1,2  dicari variabel yang bisa menurunkan B - AC atau BA atau BC. Jawabannya adalah : S dan A. b a 1 2 3 4 5 B A,C V1,2 V2,2 V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S dan A. Untuk V1,2  dicari variabel yang bisa menurunkan B - AC atau BA atau BC. Jawabannya adalah : S dan A. b a 1 2 3 4 5 B A,C S,A V2,2 V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : B. Untuk V2,2  dicari variabel yang bisa menurunkan AC- AC atau AA, AC, CA atau CC. Jawabannya adalah : B. b a 1 2 3 4 5 B A,C S,A V2,2 V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : B. Untuk V2,2  dicari variabel yang bisa menurunkan AC- AC atau AA, AC, CA atau CC. Jawabannya adalah : B. b a 1 2 3 4 5 B A,C S,A V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S dan C. Untuk V3,2  dicari variabel yang bisa menurunkan AC- B atau AB atau CB. Jawabannya adalah : S dan C. b a 1 2 3 4 5 B A,C S,A V3,2 V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S dan C. Untuk V3,2  dicari variabel yang bisa menurunkan AC- B atau AB atau CB. Jawabannya adalah : S dan C. b a 1 2 3 4 5 B A,C S,A S, C V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S dan A. Untuk V4,2  dicari variabel yang bisa menurunkan B - AC atau BA atau BC. Jawabannya adalah : S dan A. b a 1 2 3 4 5 B A,C S,A S, C V4,2 V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S dan A. Untuk V4,2  dicari variabel yang bisa menurunkan B - AC atau BA atau BC. Jawabannya adalah : S dan A. b a 1 2 3 4 5 B A,C S,A S, C V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : ∅. Untuk V1,3  dicari variabel yang bisa menurunkan B – B dan S,A – A,C atau BB, SA, SC, AA atau AC. Jawabannya adalah : ∅. b a 1 2 3 4 5 B A,C S,A S, C V1,3 V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : ∅. ∅ Untuk V1,3  dicari variabel yang bisa menurunkan B – B dan S,A – A,C atau BB, SA, SC, AA atau AC. Jawabannya adalah : ∅. b a 1 2 3 4 5 B A,C S,A S, C ∅ V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : B. ∅ Untuk V2,3 dicari variabel yang bisa menurunkan A,C – S,C dan B – B atau AS, AC, CS, CC atau BB. Jawabannya adalah : B. b a 1 2 3 4 5 B A,C S,A S, C ∅ V2,3 V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : B. ∅ Untuk V2,3 dicari variabel yang bisa menurunkan A,C – S,C dan B – B atau AS, AC, CS, CC atau BB. Jawabannya adalah : B. b a 1 2 3 4 5 B A,C S,A S, C ∅ V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : B. ∅ Untuk V3,3 dicari variabel yang bisa menurunkan A,C – S,A dan S,C – A,C atau AS, AA, CS, CA, SA, SC, CA atau CC. Jawabannya adalah : B. b a 1 2 3 4 5 B A,C S,A S, C ∅ V3,3 V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : B. ∅ Untuk V3,3 dicari variabel yang bisa menurunkan A,C – S,A dan S,C – A,C atau AS, AA, CS, CA, SA, SC, CA atau CC. Jawabannya adalah : B. b a 1 2 3 4 5 B A,C S,A S, C ∅ V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : ∅. ∅ Untuk V1,4 dicari variabel yang bisa menurunkan B – B dan S,A – S,C dan ∅- B atau BB, SS, SC, AS, atau AC. Jawabannya adalah : ∅. b a 1 2 3 4 5 B A,C S,A S, C ∅ V1,4 V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : ∅. ∅ Untuk V1,4 dicari variabel yang bisa menurunkan B – B dan S,A – S,C dan ∅- B atau BB, SS, SC, AS, atau AC. Jawabannya adalah : ∅. b a 1 2 3 4 5 B A,C S,A S, C ∅ V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S, A dan C. ∅ Untuk V2,4 dicari variabel yang bisa menurunkan A,C – B dan B – S,A dan B - A,C atau AB, CB, BS, BA, BA atau BC. Jawabannya adalah : S, A dan C. b a 1 2 3 4 5 B A,C S,A S, C ∅ V2,4 V1,5

Contoh Alogritma CYK Jawabannya adalah : S, A dan C. ∅ Untuk V2,4 dicari variabel yang bisa menurunkan A,C – B dan B – S,A dan B - A,C atau AB, CB, BS, BA, BA atau BC. Jawabannya adalah : S, A dan C. b a 1 2 3 4 5 B A,C S,A S, C ∅ S,A,C V1,5

Contoh Alogritma CYK Jawabannya adalah : S, A dan C. ∅ Untuk V1,5 dicari variabel yang bisa menurunkan B – S,A,C dan S,A – B dan ∅ - S,A dan ∅ - A,C atau BS, BA, BC, SB, atau AB. Jawabannya adalah : S, A dan C. b a 1 2 3 4 5 B A,C S,A S, C ∅ S,A,C V1,5

Contoh Alogritma CYK Jawabannya adalah : S, A dan C. ∅ Untuk V1,5 dicari variabel yang bisa menurunkan B – S,A,C dan S,A – B dan ∅ - S,A dan ∅ - A,C atau BS, BA, BC, SB, atau AB. Jawabannya adalah : S, A dan C. b a 1 2 3 4 5 B A,C S,A S, C ∅ S,A,C

Contoh Alogritma CYK S terdapat dalam V1,5 ∅ Untuk menentukan apakah string ‘baaba’ dapat diterima maka periksa apakah simbol awal (S) terdapat pada V1,n dalam soal ini maka S terdapat dalam V1,5 b a 1 2 3 4 5 B A,C S,A S, C ∅ S,A,C

Latihan Algoritma CYK Terdapat tata bahasa bebas konteks : S abAB B BAa | A | ℇ 1. Ubahlah CFG tersebut menjadi CFG dengan Chomsky Normal Form ! 2. Tentukan apakah string ‘aabab’ termasuk dalam CFG diatas!