MODUL 5: Nondeterministic Finite Automata dengan Transisi ... · Slide 2 dari 41 Dengan konsep...

Post on 01-Apr-2019

228 views 2 download

Transcript of MODUL 5: Nondeterministic Finite Automata dengan Transisi ... · Slide 2 dari 41 Dengan konsep...

Modul 5: NFA-Λ

Slide 1 dari 41

MODUL 5: Nondeterministic Finite Automata dengan

Transisi-ΛΛ (NFA-ΛΛ)

Modul 5: NFA-Λ

Slide 2 dari 41

Dengan konsep nondeterministisme dari suatu ekspresi regular suatu NFA yang dapat menerima bahasa ybs dapat langsung dilakukan. Namun, masih terdapat kasus-kasus dimana hal ini tidak dapat dilakukan secara sederhana.

Modul 5: NFA-Λ

Slide 3 dari 41

Contoh: 0*(01)* dapat dipandang sebagai sebagai konkatenasi dua ekspresi regular 0* dan (01)*. Bahasa-bahasa dari ekspresi-ekspresi tsb diterima oleh FA-FA sebagai berikut.

r2

q1 q2

0,1 0

1

1

0 0

q0

r1 0,1

1

Modul 5: NFA-Λ

Slide 4 dari 41

Bahasa dari ekspresi regular 0*(01)* dapat dikenal oleh NFA yang dibentuk dari kedua FA di atas sebagai berikut ini.

Transisi dari q0 ke q1 diperlukan untuk menerima 0* sementara transisi dari q0 ke q2 diperlukan untuk menerima (01)*.

0

q0

r2

q1 q2

0,1

0 1

1 0

0

0

r1 0,1

1

Modul 5: NFA-Λ

Slide 5 dari 41

• Aturan penambahan transisi yang melengkapi “konkatenasi” kedua FA semula tidaklah bisa dengan sederhama dijelaskan.

• Dalam konkatenasi lain bahkan bisa lebih rumit apabila status menerima FA pertama berjumlah cukup banyak.

Modul 5: NFA-Λ

Slide 6 dari 41

Seandainya NFA bisa memiliki transisi tanpa simbol masukan (kita sebut transisi-ΛΛ) maka kontatenasi tersebut dapat dilakukan hanya seperti pada diagram berikut ini.

0

q0

r2

q1 q2

0,1

0 1

1 0 Λ

r1 0,1

1

Modul 5: NFA-Λ

Slide 7 dari 41

• Diagram ini bukanlah NFA, tetapi NFA-Λ. • NFA-Λ ini dapat mengenali bahasa yang sama

dengan bahasa yang dikenali oleh NFA sebelumnya

• struktur yang lebih sederhana dan lebih mencerminkan konkatenasi kedua FA asal melalui transisi Λ.

• Juga operasi Kleene-* dan gabungan.

Modul 5: NFA-Λ

Slide 8 dari 41

Definisi: suatu NFA dengan transisi-Λ (disingkat NFA-Λ) merupakan 5-tuple (Q, Σ, q0, A, δ) dimana Q dan Σ merupakan himpunan-himpunana terbatas, qo ∈ Q dan A ⊆ Q, serta δ terdefinisi sebagai pemetaan sbb. δ: Q × (Σ ∪ Λ)→ 2Q

Perhatikan: domain dari δ adalah Σ dan Λ. NFA δ: Q × Σ → 2Q FA δ: Q × Σ → Q

Modul 5: NFA-Λ

Slide 9 dari 41

Fungsi perluasan transisi δδ*

Karena adanya transisi-Λ, jumlah transisi yang diaplikasikan pada δ* bisa lebih besar dari panjang string.

Contoh: string 01 akan dikenali sebagai 0ΛΛ1Λ seolah sejumlah “simbol palsu Λ” disisipkan pada string. q0 r s t u f 0 Λ Λ 1 Λ

Modul 5: NFA-Λ

Slide 10 dari 41

ΛΛ-closure dari Himpunan Status S atau ΛΛ(S) Untuk memahami definisi δ* akan diperkenalkan konsep Λ-closure (lingkupan-Λ) sbb.

Λ(S) adalah seluruh status dalam S tersebut beserta status-status lain yang dapat tercapai oleh masing-masing status dalam S melalui satu atau beberapa transisi Λ (Jadi S ⊆ Λ(S)).

Modul 5: NFA-Λ

Slide 11 dari 41

Definisi ΛΛ(S) Pada suatu NFA- Λ M = (Q, Σ, q0, A, δ) dan S ⊆ Q, suatu fungsi Λ(S) didefinisikan sebagai berikut: • Setiap anggota S merupakan anggota Λ(S). • Untuk setiap q ∈ Λ(S), setiap anggota δ(q, Λ)

adalah anggota Λ(S). • Tidak ada anggota lain dari Q yang anggota

Λ(S) kecuali berdasar kedua pernyataan di atas.

Modul 5: NFA-Λ

Slide 12 dari 41

Algoritma Pencarian ΛΛ(S) • Inisialisasi T1 = S. • Lakukan iterasi dari i =1, 2, 3,… , dan pada

iterasi ke-i: • Ti+1 = Ti • Untuk setiap q ∈ Ti, gabungkan δ(q, Λ) ke

dalam Ti+1. • Iterasi berhenti saat Ti+1 = Ti (artinya tidak ada

status baru yang bergabung dalam T).

Modul 5: NFA-Λ

Slide 13 dari 41

Λ

Λ Λ

Λ S

Λ(S)

Λ Λ

Λ Λ

Λ

Λ

Λ

Modul 5: NFA-Λ

Slide 14 dari 41

Definisi δδ* untuk NFA-ΛΛ Pada setiap NFA-Λ M = (Q, Σ, q0, A, δ) fungsi δ*: Q × (Σ* ∪ Λ) → 2Q didefinisikan sbb. • Untuk setiap q ∈ Q maka δ*(q, Λ) = Λ({q}). • Dan untuk setiap y ∈ Σ*, a ∈ Σ, dan q ∈ Q

Λ=

∈U

),(

*

*

),(),(yqp

apyaqδ

δδ

Modul 5: NFA-Λ

Slide 15 dari 41

Algoritma untuk mendapatkan δ*(q, ya): • menentukan δ*(q, y) • mendapatkan himpunan gabungan dari setiap

δ(p, a) untuk setiap p ∈ δ*(q, y) • menentukan Λ( ) dari himpunan gabungan

tersebut. Selanjutnya δ*(q, y) dicari dengan cara yang sama dengan di atas dimana y = xb. Apabila y = Λ, δ*(q, y) = δ*(q, Λ) = Λ({q}).

Modul 5: NFA-Λ

Slide 16 dari 41

q

y

a

a a

a δ*(q,y)

δ*(q,ya)

Λ Λ

Λ Λ

Λ

Λ

Λ

ya

Modul 5: NFA-Λ

Slide 17 dari 41

NFA-ΛΛ M Sebagai Mesin Pengenal Bahasa Untuk suatu NFA-Λ M = (Q, Σ, q0, A, δ)

• String x diterima oleh M bila δ*(q0, x) ∩ A ≠ ∅ • Bahasa yang dikenali oleh M adalah L(M) yaitu

semua string yang diterima oleh M.

Modul 5: NFA-Λ

Slide 18 dari 41

Contoh: suatu NFA-Λ ditunjukkan pada gambar berikut ini.

w

1

q0

p

t

r

u

s

v 0

0 1 0

0

1 0

Λ Λ

Λ Λ

Λ

Modul 5: NFA-Λ

Slide 19 dari 41

Mencari Λ({s}): Mula-mula T = {s}, setelah iterasi pertama, T = {s, w}, setelah iterasi kedua menjadi{s, w, q0}, setelah iterasi ketiga menjadi {s, w, q0, p, t}, setelah iterasi keempat berhenti karena T tidak berubah lagi.

Modul 5: NFA-Λ

Slide 20 dari 41

Mencari δ*(q0, 010): Untuk mencari δ*(q0, 010) perlu diketahui δ*(q0, 01), lalu untuk mencari δ*(q0, 01) perlu diketahui δ*(q0, 0), dan untuk mencari δ*(q0, 0) perlu diketahui δ*(q0, Λ), sbb. δ*(q0, Λ) = Λ({q0}) = {q0, p, t} δ*(q0, 0) = Λ(δ(q0,0) ∪ δ(p,0) ∪ δ(t,0))

= Λ(∅ ∪ {p} ∪ {u}) = Λ({p, u}) = {p, u} δ*(q0, 01) = Λ(δ(p,1) ∪ δ(u,1)) = Λ({r}) = {r} δ*(q0, 010) = Λ(δ(r,0)) = Λ({s}) = {s, w, q0, p, t}

Modul 5: NFA-Λ

Slide 21 dari 41

Apakah 010 diterima? Karena δ*(q0, 010) berisi w ∈ A maka 010 diterima. Dalam hal ini transisi yang terjadi akibat string Λ010Λ adalah

q0 → p → p → r → s → w

Λ 0 1 0 Λ

Modul 5: NFA-Λ

Slide 22 dari 41

Kompatibilitas NFA-ΛΛ dengan NFA Sebelumnya telah ditunjukkan bahwa NFA tidak lebih powerful dari FA dalam kemampuannya mengenali bahasa.

Dari setiap NFA dapat ditemukan suatu FA. Bagaimana dengan NFA-Λ terhadap NFA atau FA? Apakah juga tidak lebih powerful?

Modul 5: NFA-Λ

Slide 23 dari 41

Teorema: Bila L ⊆ Σ* suatu bahasa yang diterima NFA-Λ M = (Q, Σ, q0, A, δ), maka akan terdapat suatu NFA M1 = (Q1, Σ, q1, A1, δ1) yang juga menerima L. Transisi-Λ adalah jenis lain dr nondeterminisme. Misalnya dalam M terdapat transisi

p → q → r Simbol 0 dapat membawa M dari p ke q atau r.

0 Λ

Modul 5: NFA-Λ

Slide 24 dari 41

Maka suatu NFA M1 dapat dibuat dari M dengan menghapus transisi-Λ dan menggantikannya dengan transisi dari p ke r dengan masukan simbol 0. Dalam konversi ini himpunan status Q tidak berubah, demikian pula status inisialnya. Secara lebih formal dijabarkan dalam:

• Menentukan δ1 dari δ

• Menentukan A1 dari A

Modul 5: NFA-Λ

Slide 25 dari 41

Menentukan δδ1

Perubahan yang terjadi pada fungsi transisi δ menjadi δ1 adalah karena adanya tambahan transisi-transisi yang menggantikan transisi-Λ tsb. Untuk setiap q ∈ Q dan a ∈ Σ, δ1(q, a) = δ*(q, a)

Λ=

Λ=Λ=

Λ∈Λ∈UU

})({),(

* ),(),(),(* qpqp

apapaq δδδδ

Modul 5: NFA-Λ

Slide 26 dari 41

q

Sejumlah transisi-Λ a

a

a

a δ*(q,y)

δ1(q, a)

U})({

),(qp

apΛ∈

δ

Λ

Λ

Λ

Λ

Λ

Λ∈U

})({

),(qp

apδ

Modul 5: NFA-Λ

Slide 27 dari 41

Pendefinisian δ1 seperti itu dimaksudkan agar δ1

*(q, a) dari NFA M1 adalah semua status yang dapat tercapai oleh NFA-Λ M dari status q berdasarkan masukan string tak-kosong x (termasuk setiap kemungkinan transisi-Λ). Dpl., untuk membuktikan bahwa

δ1*(q, x) = δ*(q, x)

Secara induksi struktural matematis akan dibuktikan sbb. Untuk x = a ∈ Σ,maka δ1

*(q, a) =

Modul 5: NFA-Λ

Slide 28 dari 41

δ1(q, a) = δ*(q, a) = δ*(q, x) Dengan hipotesis bahwa δ1

*(q, x) = δ*(q, x), untuk x = ya, dengan y ∈ Σ*, |y|≥1 dan a ∈ Σ, maka

U

U

U

),(

*),(1

),(1

*

*

*

*1

1

),(

),(

),(),(

yqp

yqp

yqp

ap

ap

yapyaq

δ

δ

δ

δ

δ

δδ

=

=

=

Modul 5: NFA-Λ

Slide 29 dari 41

Karena setiap δ*(p, a) adalah Λ-closure maka setelah digabungkan juga Λ-closure. Jadi Λ-closure dari himpunan yang dihasilkan ruas terakhir tersebut sama dengan himpunan itu sendiri, sbb.

yaqapapyqpyqp

,(),(),( *

),(

*

),(

*

**

δδδδδ

=

Λ=

∈∈UU )

Modul 5: NFA-Λ

Slide 30 dari 41

Menentukan A1 dari A A1 bisa berbeda dari A. Suatu status inisial q0 yang bukan status menerima akan menjadi status menerima apabila di dalam Λ({q0}) terdapat status menerima. Dituliskan secara formal sbb.

≠∩Λ∪

=lainnya

dalam })({ jika}{ 001 A

MAqqAA

Modul 5: NFA-Λ

Slide 31 dari 41

Teorema: Untuk suatu alfabet Σ, setiapa bahasa L ⊂ Σ*, ketiga pernyataan berikut ini adalah ekivalen (jika salah satu benar maka kedua lainnya juga benar): 1.L dapat dikenali oleh suatu FA. 2.L dapat dikenali oleh suatu NFA. 3.L dapat dikenali oleh suatu NFA-Λ.

Modul 5: NFA-Λ

Slide 32 dari 41

Bukti: Teorema-teorema sebelumnya menyatakan bahwa pernyataan ketiga berimplikasi pernyataan kedua dan pernyataan kedua berimplikasi pernyataan pertama. Jadi untuk membuktikan teorema di atas cukup dengan membuktikan bahwa pernyataan pertama berimplikasi pernyataan ketiga. Jika suatu bahasa L diterima oleh FA M = {Q, Σ, q0, A, δ). Suatu NFA-Λ M1 = {Q, Σ, q0, A, δ1)

Modul 5: NFA-Λ

Slide 33 dari 41

dapat dibentuk untuk menerima L sebagai berikut. δ1: Q × (Σ ∪ {Λ}) → 2Q didefinisikan dengan formula (untuk setiap q ∈ Q, dan setiap a ∈ Σ).

δ1(q, Λ) = ∅ δ1(q, a) = {δ (q,a)}

Formula pertama menyatakan dalam M1 tidak ada transisi-Λ, dan yang kedua menyatakan fungsi

Modul 5: NFA-Λ

Slide 34 dari 41

transisi δ1 dan δ adalah identik kecuali jika δ memetakan ke suatu status, δ1 memetakan ke himpunan yang hanya berisi status tersebut. Jadi, dalam hal ini, NFA-Λ M1 tidak ada nondeterminisme. Berikut ini beberapa contoh mengeliminasi transisi-Λ dari NFA-Λ menjadi NFA, dan mengkonversinya menjadi FA.

Modul 5: NFA-Λ

Slide 35 dari 41

Contoh: berikut ini, M adalah NFA-Λ yang menerima bahasa {0}*{01}*{0}*. Fungsi transisi digambarkan dalam tabel transisi serta harga-harga δ*(q, 0) dan δ*(q, 1) misalnya.

A B D

C

0Λ Λ

10 0

Λ=

Λ∈U

})({

* )0,()0,(Ap

pA δδ

Modul 5: NFA-Λ

Slide 36 dari 41

Dengan fungsi transisi δ1 (p, a) = δ*(p, a) untuk semua status p dan simbol a diperoleh tabel sbb. q δ (q, ΛΛ ) δ (q, 0) δ (q, 1) δ*(q, 0) δ* (q, 1) A {B} {A} ∅ {A,B,C,D} ∅ B {D} {C} ∅ {C,D} ∅ C ∅ ∅ {B} ∅ {B,D} D ∅ {D} ∅ {D} ∅

Status A menjadi status menerima karena dalam M status D dapat dicapai dari A dengan duakali transisi-Λ.

Modul 5: NFA-Λ

Slide 37 dari 41

0

0

0

1

1

1 1

1

0,1

0

A

∅ D

CD

BD ABCD

0

Dengan demikian NFA M1 yang diperoleh adalah sebagai di samping ini. Dan Konversi NFA ke FA yang telah dibahas pada topik NFA menghasilkan FA M2 berikut ini.

0

A B D

C

00 0

10 00 1

Modul 5: NFA-Λ

Slide 38 dari 41

Contoh: NFA disamping ini ini mengenali bahasa {0}*({01}*{1}∪{1}*{0}).

A

B

E

C

0

Λ

1

0

0D

1

Λ

1

Modul 5: NFA-Λ

Slide 39 dari 41

Tabel transisi berikut harga δ*(q, 0) dan δ*(q, 1) adalah. q δ (q, ΛΛ ) δ (q, 0) δ (q, 1) δ*(q, 0) δ* (q, 1) A {B,D} {A} ∅ {A,B,C,D,E} {D,E} B ∅ {C} {E} {C } {E} C ∅ ∅ {B} ∅ {B} D ∅ {E} {D} {E} {D}

E ∅ ∅ ∅ ∅ ∅

Modul 5: NFA-Λ

Slide 40 dari 41

NFA yang diperoleh adalah sebagai berikut.

A

B

E

C

0

0

1

0

0D

1

0,1

1

0,1

0

Modul 5: NFA-Λ

Slide 41 dari 41

Dari NFA di atas kemudian diperoleh FA sebagai berikut ini.

0

0

0

1

1

1

1

1

0,1

0

A

DE E

CEBDE

ABCDE

0

D

D

D ∅

0

0

0

1

1

0,1

0,1