MODUL 6: TEOREMA KLEENE

dokumen-dokumen yang mirip
MODUL 5: Nondeterministic Finite Automata dengan

MODUL 4: Nondeterministic Finite Automata

MODUL 7: MINIMISASI FA

MODUL 11: PUSHDOWN AUTOMATON

MODUL 3: Finite Automata

MODUL 1: PENGANTAR TEORI BAHASA

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. dirancang dan selanjutnya dapat diketahui gambaran dan kemampuan sistem secara

Penerapan Graf Transisi dalam Mendefinisikan Bahasa Formal

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

Operasi FA dan Regular Expression

Ekspresi Reguler. Pertemuan Ke-8. Sri Handayaningsih, S.T., M.T. Teknik Informatika

Non-deterministic Finite Automata Dengan -Move

Tanggal Revisi : Tanggal : SATUAN ACARA PERKULIAHAN

Teori Bahasa Formal dan Automata

NonDeterministic Finite Automata. B.Very Christioko, S.Kom

MODUL 2: Bahasa Regular dan Ekspresi Regular

TEORI BAHASA DAN OTOMATA [TBO]

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN OTOMATA [TBO]

MODUL 12: BENTUK-BENTUK SEDERHANA DAN BENTUK-BENTUK NORMAL

FINITE STATE MACHINE / AUTOMATA

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA

Contents.

TUGAS MAKALAH TEORI BAHASA & AUTOMATA

TEORI BAHASA DAN AUTOMATA

FINITE STATE AUTOMATA

PENDEKATAN TEORI AUTOMATA UNTUK MENYELESAIKAN APLIKASI-APLIKASI DI BIDANG ILMU KECERDASAN BUATAN

TEORI BAHASA DAN AUTOMATA

Pendahuluan [6] FINITE STATE AUTOMATA. Hubungan RE & FSA [5] Finite State Diagram [6] 4/27/2011 IF-UTAMA 1

TEKNIK KOMPILASI Bahasa Regular

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

BAB 1 PENDAHULUAN. sederhana adalah kelas bahasa reguler (regular languages). Bahasa reguler dapat dengan

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

Teori Bahasa & Otomata

Teori Bahasa dan Otomata 1

TEORI BAHASA DAN OTOMATA [TBO]

BAHASA REGULER 1. Ekspresi Regular

Deterministic Finite Automata

8 April 2015 Teori Bahasa dan Otomata

Peluang Asal Protein yang Ada di Dalam Inti Sel

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

PERTEMUAN II. Finite State Automata (FSA) Deterministic Finite Automata (DFA) Non Deterministic Finite Automata (NFA)

PEMODELAN PERANGKAT LUNAK UNTUK PENGERTIAN DETERMINISTIC FINITE AUTOMATA DAN NON-DETERMINISTIC FINITE AUTOMATA

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

Grammar dan Tingkat Bahasa

DIKTAT TEORI BAHASA DAN OTOMATA

Teori Bahasa Formal dan Automata

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal

Teori Bahasa Formal dan Automata

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

Teori Bahasa dan Automata. Finite State Automata & Non Finite State Automata

Non-Deterministic Finite Automata

BAB III AUTOMATA HINGGA NON-DETERMINISTIK DAN EKUIVALENSI AHN AHD - GR

TEORI BAHASA DAN AUTOMATA

Teori Bahasa Formal dan Automata

SATUAN ACARA PERKULIAHAN MATA KULIAH : TEORI BAHASA DAN AUTOMATA (TBA) KODE / SKS : KK / 3 SKS

4. Pencacahan. Pengantar. Aturan penjumlahan (sum rule) Aturan penjumlahan Yang Diperumum. Aturan Perkalian (Product Rule)

Amir Hamzah AKPRIND PRESS 2009

BAB I PENDAHULUAN 1-1

Teori Bahasa & Otomata

BAB 4 IMPLEMENTASI DAN EVALUASI PROGRAM. dengan perangkat yang digunakan. Beberapa kriteria standar ditentukan agar sistem

MA3051 Pengantar Teori Graf. Semester /2014 Pengajar: Hilda Assiyatun

DFA. Teori Bahasa dan Automata. Viska Mutiawani - Informatika FMIPA Unsyiah

Reduksi DFA [Deterministic Finite Automata]

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

I. Aljabar Himpunan Handout Analisis Riil I (PAM 351)

Tujuan perancangan bhs program

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

Komplemen Boolean dituliskan dengan bar/garis atas dengan aturan sebagai berikut

PERTEMUAN 9 TEORI BAHASA DAN OTOMATA [TBO]

Matriks. Contoh matriks simetri. Matriks zero-one (0/1) adalah matriks yang setiap elemennya hanya bernilai 0 atau 1. Contoh matriks 0/1:

Teori Bahasa Formal dan Automata

Kombinatorial. Matematika Diskrit Pertemuan ke - 4

MATERI : GESERAN (TRANSLASI) KELOMPOK 6 (VI.E)

BAB I TEORI BAHASA DAN AUTOMATA

DAFTAR ISI HALAMAN SAMPUL...

Pendahuluan. Push Down Atomata. Perbedaan FA dan PDA [7] 4/25/2012 IF-UTAMA 1. Grammar-machine equivalence [3] Latar belakang munculnya konsep PDA

1. Pendahuluan. 2. Tinjauan Pustaka

MA2111 PENGANTAR MATEMATIKA Semester I, Tahun 2015/2016. Hendra Gunawan

FIRDAUS SOLIHIN FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO

BAB 2. ANALISIS LEKSIKAL

TEORI BAHASA DAN OTOMATA

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

Teori Komputasi 11/23/2016. Bab 6: Context-Free Grammar & Parsing. Context-Free Grammar. Context-Free Grammar

Matematika Diskrit 1

Mendeskripsikan Himpunan

Problem A Divisible compfest1.c / compfest1.cpp / compfest1.pas Runtime-limit: 0.5 detik Memory-limit: 64 MB

IF-UTAMA 1. Definisi. Grammar. Definisi

Bab 4. Koefisien Binomial

STRUKTUR DATA. Data di kategorikan menjadi : 1. Tipe data tunggal : Integer, Boolean dan Kara 2. Tipe data majemuk : String ( Untai )

MA5031 Analisis Real Lanjut Semester I, Tahun 2015/2016. Hendra Gunawan

11. FUNGSI MONOTON (DAN FUNGSI KONVEKS)

PALINDROM CONTEXT FREE GRAMMAR PADA MESIN PUSH DOWN AUTOMATA

Transkripsi:

MODUL 6: TEOREMA KLEENE Dari pembahasan sebelumnya NFA- yang dapat mengenali suatu bahasa regular dapat dengan lebih langsung diperoleh karena adanya transisi-. Setelah NFA- yang dapat mengenali bahasa tersebut diperoleh maka suatu NFA, dan seterusnya juga suatu FA, dapat kemudian diperoleh. Dalam contoh-contoh yang dibahas transisi- digunakan untuk merealisasikan operasi konkatenasi. Sementara kita ingat juga bahwa suatu suatu bahasa regular dapat dipandang sebagai hasil operasi-operasi penggabungan, konkatenasi dan Kleene * dari bahasa-bahasa paling sederhana dari alfabetnya. Apabila disamping konkatenasi, operasi-operasi itu juga dapat direalisasikan dengan transisi- maka suatu NFA- (dan selanjutnya NFA dan FA) yang dapat mengenali suatu bahasa regular dengan ekspresi regular apa saja dapat dengan mudah ditemukan. Dalam bagian ini akan metodologi yang lebih lengkap mendapatkan NFA- untuk baik operasi gabungan, irisan, dan Kleene * akan dibahas. (Bandingkanlah dengan metoda yang lebih langsung khusus untuk operasi penggabungan, irisan dan perbedaan pada pembahasan FA). Misalkan bahasa L dan L 2 dikenali masing-masing oleh NFA - M dan M 2, yaitu: q u q M u = {Q u, Σ, q u, A u, δ u } dapat dibentuk sebagai berikut. q u adalah status baru yang tidak ada di Q maupun Q 2 Q u = Q Q 2 {q u } A u = A A 2 δ u dibentuk sbb. untuk setiap q Q dan a Σ {}, δ u (q, a) = δ (q, a) untuk setiap q Q 2 dan a Σ {}, δ u (q, a) = δ 2 (q, a) untuk setiap a Σ, δ u (q u, ) = {q, } dan δ u (q u, a) = M = {Q, Σ, q, A, δ } M 2 = {Q 2, Σ,, A 2, δ 2 } q Pembentukan M c untuk mengenal L L 2 q c= q Dari kedua mesin tersebut maka NFA- M u, M c, dan M k dapat dibentuk untuk mengenali masing-masing L L 2, L L 2, dan L *. Pembentukan M u untuk mengenal L L 2 M c = {Q c, Σ, q c, A c, δ c } dapat dibentuk sebagai berikut. q c = q. Update Version.2., printed at 3:8 AM, 0//0 page of 5

Q c = Q Q 2 A c = A 2 δ c dibentuk sbb. untuk setiap q Q dan a Σ {}, δ c (q, a) = δ (q, a), kecuali jika q A maka ditambahkan δ c (q, ) = untuk setiap q Q 2 dan a Σ {}, δ c (q, a) = δ 2 (q, a) Pembentukan M k untuk mengenal L * M k = {Q k, Σ, q k, A k, δ k } dapat dibentuk sebagai berikut. q k adalah status baru yang tidak ada di Q Q k = Q {q k } A k = {q k } δ k dibentuk sbb. untuk setiap q Q dan a Σ, δ k (q, ) = q dan δ k (q, a) = untuk setiap q Q dan a Σ {}, δ k (q, a) = δ (q, a), kecuali jika q A maka ditambahkan δ k (q, ) = q k δ u (q u, ) = {q, } dan δ u (q u, a) = untuk setiap a Σ Dengan demikian setiap bahasa dapat dipandang sebagai tersusun atas bahasabahasa sederhana melalui operasi-operasi penggabungan, konkatenasi dan Kleene*. Contoh: untuk setiap bahasa L {0,} * dapat dibuat NFA- yang dapat mengenalnya dan tersusun atas FA-FA untuk bahasa-bahasa regular paling sederhana sbb. Masing-masing FA berikut untuk bahasa, {}, {0}, dan {}. Q k q Contoh: Seandainya untuk bahasa dengan ekspresi regular (00+) * (0) * akan ditemukan NFA- yang dapat mengenalnya sebagai bentukan bertahap mulai dari FA bahasa-bahasa paling sederhananya. membentuk NFA - bahasa {00} berdasarkan konkatenasi {0} dan {0}. membentuk NFA - bahasa {0} berdasarkan konkatenasi {} dan {0}. membentuk NFA - bahasa {00, } berdasarkan penggabungan {00} dan {}. 0 0 0 0 0 0 membentuk NFA - bahasa {00, } * berdasarkan operasi Kleene* {00, }. 0 0 Update Version.2., printed at 3:8 AM, 0//0 page 2 of 5

membentuk NFA - bahasa {0} * berdasarkan operasi Kleene* {0}. 0 membentuk NFA - bahasa {00, } * {0} * berdasarkan operasi konkatenasi {00, } * dan {0} *. Dalam contoh tersebut selama pembentukan sama sekali tidak dilakukan penyederhanaan untuk mengurangi transisi-. Penyederhanaan -dapat dilakukan sehingga diagram yang diperoleh tidak penuh oleh transisi- tersebut dengan mengaplikasikan konversi NFA- ke NFA pada setiap tahapan pembentukan. Mendapatkan Ekspresi Regular dari L(M) dengan M Suatu FA Untuk menjelaskan teknik untuk dapat melakukan hal ini memerlukan pendefinisian sbb. 0 0 0 L( q) = {x Σ * δ * ( x) = q} yaitu himpunan string yang mentransisikan M dari status p ke q. Dengan definisi tersebut maka L= L(M) adalah gabungan semua L( q) dimana p adalah status inisial q 0, dan q A. Dituliskan U L = L( q 0, q) q A Jika ekspresi regular dari L( q) adalah r( q) maka ekspresi regular L adalah r = r( q0, q) q A Sementara untuk menjelaskan L( q) maka kita perlu pendefinisian L( q, k) sebagai subset dari L( q) yaitu string-string dimana saat transisi M bergerak melintasi tidak lebih dari k status yang berbeda (tidak termasuk p dan q). Untuk bisa diformulasikan maka status-status dalam M perlu dinomori, 2,, n (n jumlah status dalam M). Maka dengan penomoran tsb L( q, k) dapat diformulasikan sebagai berikut ini. Khusus untuk k = 0, { a Σ δ( a) = q} dimana L( q,0) = { a Σ δ( a) = p} { } p q Baris kedua (dimana p = q) menyatakan M bisa bertranslasi dengansimbol a atau tidak. Untuk 0 < k < n., secara rekursif, L( q, k+) = L( q, k) L( k+, k) L(k+,k+, k) * L(k+, q, k) p k+ status k status q Update Version.2., printed at 3:8 AM, 0//0 page 3 of 5 k+

Dari definisi tersebut maka L( k) = L( k, n). karena pada saat semua status terlewati maka tidak ada lagi maka ruas kedua meliputi semula ruas pertama. Dalam komputasinya akan lebih sederhana jika menggunakan ekspresi regularnya Jika ekspresi regular dari L( q, k) adalah r( q, k), maka r( q, 0) = a untuk δ( a)=q dan p q, r( q, 0) = +a untuk δ( a)=q, serta r( q, k+) = r( q, k) + r( k+, k) r(k+, k+, k) * r(k+, q, k), untuk 0 < k < n. Contoh: kita akan mendapatkan ekspresi regular dari bahasa yang dikenali FA berikut ini. r(, 2, ) = r(, 2, 0) + r(,, 0) r(,, 0) * r(, 2, 0) = b + (a + )(a + ) * b = (a + ) * b = a * b r(, 3, ) = r(, 3, 0) + r(,, 0) r(,, 0) * r(, 3, 0) = + (a + )(a + ) * = r(2,, ) = r(2,, 0) + r(2,, 0) r(,, 0) * r(,, 0) = a + a(a + ) * (a + ) = a(a + ) * = a + r(2, 2, ) = r(2, 2, 0) + r(2,, 0) r(,, 0) * r(, 2, 0) = + a(a + ) * b = + a + b r(2, 3, ) = r(2, 3, 0) + r(2,, 0) r(,, 0) * r(, 3, 0) = b + a(a + ) * = b + = b r(3,, ) = r(3,, 0) + r(3,, 0) r(,, 0) * r(,, 0) = a + a(a + ) * (a + ) = a + r(3, 2, ) = r(3, 2, 0) + r(3,, 0) r(,, 0) * r(, 2, 0) = b + a(a + ) * b = b+ a * b = a * b r(3, 3, ) = r(3, 3, 0) + r(3,, 0) r(,, 0) * r(, 3, 0) = + a(a + ) * = Selanjutnya untuk k= r(,, 2) = r(,, ) + r(, 2, ) r(2, 2, ) * r Dalam komputasinya sebenarnya dimulai dari r = r(, ) + r(, 2) = r(,, 3) + r(, 2, 3), dst. Namun agar penulisannya lebih rapih maka komputasi dimulai dari k=0,, 2. Jadi komputasi dimulai dari penghitungan r(q, 0) (untuk semua kemungkinan p dan q) r(,, 0) = a + r(, 2, 0) = b r(, 3, 0) = r(2,, 0) = a r(2, 2, 0) = r(2, 3, 0) = b r(3,, 0) = a r(3, 2, 0) = b r(3, 3, 0) = Untuk k = 0 dihitung (untuk semua kemungkinan p dan q) r(,, ) = r(,, 0) + r(,, 0) r(,, 0) * r(,, 0) = (r(,, 0)) + = (a + ) + = a * Update Version.2., printed at 3:8 AM, 0//0 page 4 of 5

= b + (a + b) * b = (a + b) * b r(3,, 2) = r(3,, ) + r(3, 2, ) r(2, 2, ) * r(2,, ) = a + + a * b( + a + b) * a + = a + + a * b(a + b) * a + = a + + a * (ba + ) * ba + = a + + a * (ba + ) + r(3, 2, 2) = r(3, 2, ) + r(3, 2, ) r(2, 2, ) * r(2, 2, ) = a * b+ a * b( + a + b) * ( + a + b) = a * b+ a * b(a + b) * = a * b (a + b) * r(3, 3, 2) = r(3, 3, ) + r(3, 2, ) r(2, 2, ) * r(2, 3, ) = + a * b( + a + b) * b = + a * b(a + b) * b Untuk k = n komputasi hanya dilakukan pada r( q, 3) dengan p = (status inisial) dan q A = {, 2}. r(,, 3) = r(,, 2) + r(, 3, 2) r(3, 3, 2) * r(3,, 2) = a * (ba + ) * + a * (ba + ) * bb( + a * b(a + b) * b) * (a + + a * (ba + ) + ) = a * (ba + ) * + a * (ba + ) * bb( a * (ba + ) * bb) * (a + + a * (ba + ) + ) = a * (ba + ) * + ( a * (ba + ) * bb) + (a + + a * (ba + ) + ) r(, 2, 3) = r(, 2, 2) + r(, 3, 2) r(3, 3, 2) * r(3, 2, 2) = a * (ba + ) * b + a * (ba + ) * bb( + a * b(a + b) * b) * a * (ba + ) * b = a * (ba + ) * b + a * (ba + ) * bb(a * (ba + ) * bb) * a * (ba + ) * b = a * (ba + ) * b + (a * (ba + ) * bb) * a * (ba + ) * b = (a * (ba + ) * bb) * a * (ba + ) * b Kemudian r = r(,, 3) + r(, 2, 3) = a * (ba + ) * + ( a * (ba + ) * bb) + (a + + a * (ba + ) + ) + (a * (ba + ) * bb) * a * (ba + ) * b = a * (ba + ) * + ( a * (ba + ) * bb) * a * (ba + ) * (bba + + bba * (ba + ) + + b) Dengan mungkinnya secara teoritis mendapatkan NFA- dari satu regular ekspresi dan sebaliknya mendapatkan regular ekspresi dari suatu FA maka teorema Kleene yang menyatakan suatu bahasa L adalah regular jika dan hanya jika ada suatu FA yang dapat mengenalinya. Update Version.2., printed at 3:8 AM, 0//0 page 5 of 5