Finite State Automata - Materi 3 Teori Bahasa dan Automata

40
Teknik Informatika 2014 Ir. Ahmad Haidaroh, M.Kom.

Transcript of Finite State Automata - Materi 3 Teori Bahasa dan Automata

Page 1: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Teknik Informatika

2014

Ir. Ahmad Haidaroh, M.Kom.

Page 2: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Jenis FSA

• Deterministik (DFSA/DFA)

pada setiap input, hanya ada satu keadaan

(state) tujuan dari keadaan saat ini.

• Nondeterministik (NFSA/NFA)

pada setiap input terdapat lebih dari satu

keadaan tujuan dari keadaan saat ini.

Page 3: Finite State Automata - Materi 3 Teori Bahasa dan Automata

D-FSA/DFA

1. Himpunan keadaan (Q).

2. Himpunan simbol input ()

3. Fungsi transisi (), memuat satu keadaan asal

dan satu simbol input dan satu keadaan tujuan.

4. Keadaan awal (q0)merupakan salah satu dari

Q.

5. Himpunan keadaan final atau yang diterima,

dinotasikan dengan F (FQ)

Page 4: Finite State Automata - Materi 3 Teori Bahasa dan Automata

5-TUPLE D-FSA

DFSA A, terdiri atas 5 tuple, yaitu:

A = (Q, , , q0, F)

Page 5: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Notasi Lain DFSA

1. Diagram Transisi / State Diagram

• Tiap keadaan merupakan simpul

• Tiap keadaan q Q dan tiap simbol a , dituliskan

sebagai (q,a) = p. Artinya, diagram transisi memiliki

panah dari q ke p, yang berlabel a.

• Keadaan awal (q0) ditandai dengan adanya panah

tanpa sumber.

• Simpul yang menjadi keadaan final ditandai dengan

lingkaran bergaris tepi ganda

Page 6: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Notasi Lain DFSA

2. Tabel Transisi

• Representasi daftar dari suatu fungsi

• Baris menunjukkan keadaan dan kolom

menunjukkan input.

• Isi dari baris menunjukkan keadaan q dan isi dari

kolom input a menunjukkan keadaan (q,a)

Page 7: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh:

DFSA yang dapat menerima string berakhiran 01

A = ({q0, q1, q2}, {0,1}, , q0, {q2})

dengan fungsi transisi diberikan dalam bentuk

tabel: 0 1

q0 q2 q0

q1 q1 q2

* q2 q2 q1, q2

q0 q1

1

q2

0,1

0 1

0

0

1

State Diagram

Page 8: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh DFSA :

M = (Q, , , s, F), dimana :

Q = {q0, q1},

= {a,b},

S = q0,

F = {q0}

Tabel Transisi

q (q, )

q0 a q0

q0 b q1

q1 a q1

q1 b q0

Tabel Transisi

a b

q0 q0 q1

q1 q1 q0

atau

q0q1

a

b

a

b

Diagram State

Jika M diberi input aabba, dengan state awal (q0, aabba),

maka :

(q0,aabba) ├M (q0,abba)

├M (q0,bba)

├M (q1,ba)

├M (q0,a)

├M (q0,e)

Karena (q0,aabba) ├*M (q0,e), jadi aabba diterima oleh M

Page 9: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh: DFSA yang dapat menerima semua

string berakhiran 01

q0 q1

0,1

q2

0 1

Contoh : diberikan input pada mesin DFSA 010111, lakukan tracer :

(q0,010111) ├M (q0,10111)

├M (q0,0111)

├M (q0,111)

├M (q0,11)

├M (q0,1)

├M (q0,e)

Karena berhenti bukan di q2, maka 010111 tidak diterima oleh mesin DFSA

Contoh : diberikan input pada mesin DFSA 11101, lakukan tracer :

(q0,11101) ├M (q0,1101)

├M (q0,101)

├M (q0,01)

├M (q1,1)

├M (q2,e)

Karena berhenti di q2, maka 11101 diterima oleh mesin DFSA

Page 10: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Tabel Transisi

0 1

q0 q2 q1

q1 q3 q0

q2 q0 q3

q3 q1 q2

DFA nya

Q = {q0 , q1 , q2 , q3 }

= {0,1}

S = q0

F = { q0}

Contoh : diberikan string 011 dan 1010,

buktikan bahwa string tersebut diterima

atau ditolak !

(q0,011) = (q2,11) = (q3,1) = q2 Ditolak

(q0,1010) = (q1,010)

= (q3,10)

=(q2,0)

= (q0,e) DiterimaState Diagram

Page 11: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Perluasan Fungsi Transisi untuk String

• DFSA mendefinisikan bahasa sebagai

himpunan semua string yang hasilnya dalam

bentuk urutan transisi keadaan dari keadaan

awal sampai keadaan final (yang diterima)

Page 12: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Perluasan Fungsi Transisi untuk String (lanj.)

• Fungsi Transisi Diperluas

• Mendeskripsikan yang terjadi ketika suatu keadaan

dimulai dan sembarang urutan input diikuti.

• Jika adalah fungsi transisi, maka fungsi transisi

diperluas dinotasikan dengan 𝛿

• Fungsi transisi diperluas merupakan fungsi saat

keadaan q untuk masukan berupa string w, dan

menghasilkan keadaan p (keadaan yang dicapai

otomaton ketika memulai di keadaan q dan memproses

urutan input w)

Page 13: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Definisi Formal dari Fungsi Transisi Diperluas

Page 14: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Definisi Formal dari Fungsi Transisi Diperluas

Induksi: Misal w adalah string yang berbentuk xa;

yakni a merupakan simbol terakhir dari w, dan x

merupakan string selain simbol terakhir.

Maka: 𝛿(q,w) = ( 𝛿(q,x), a)

• Untuk memproses 𝛿(q,w), pertama proses dahulu 𝛿(q,x),

hasilnya adalah keadaan yang otomaton tempati setelah

memproses semua simbol selain simbol terakhir dari w.

• Misal, keadaan ini adalah p, yakni 𝛿(q,x) = p

• Maka 𝛿(q,w) adalah yang kita peroleh dengan melakukan

transisi dari keadaan p dengan input a (simbol terakhir dari

w)

Page 15: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh

Desain suatu DFSA yang dapat menerima bahasa:

L = {w | w memiliki jumlah 0 ganjil dan jumlah 1 ganjil}

Page 16: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Bahasa dari DFSA

Bahasa dari DFSA A = (Q, , , q0, F), dinotasikan dengan L(A), didefinisikan sebagai

L(A) = {w | 𝛿(q0,w) berakhir di F}

Bahasa dari A merupakan himpunan semua string w yang memiliki keadaan awal q0 dan berakhir di keadaan final (yang diterima)

Jika L adalah L(A) dari suatu DFSA, maka L adalah bahasa reguler

Page 17: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Nondeterministik Finite State Automata

(NFSA)

• Suatu NFSA memiliki kelebihan yakni berada di

beberapa keadaan pada saat yang sama.

• Kelebihan ini sering diekspresikan sebagai

kemampuan untuk “menebak” sesuatu mengenai

inputnya.

• Tiap NFSA menerima suatu bahasa yang juga

dapat diterima oleh suatu DFSA.

• NFSA lebih sederhana daripada DFSA.

Page 18: Finite State Automata - Materi 3 Teori Bahasa dan Automata

NFSA (lanj.)

• NFSA dapat selalu diubah ke DFSA, namun

menghasilkan jumlah keadaan baru yang

jumlahnya eksponensial (kasus yang jarang

terjadi)

• Perbedaan antara DFSA dan NFSA adalah jenis

fungsi transisinya ()

• Pada NFSA, merupakan fungsi yang memuat satu

keadaan, dan simbol input (seperti fungsi transisi

DFSA), namun menghasilkan himpunan nol atau lebih

dari satu keadaan (daripada menghasilkan tepat satu

keadaan, seperti yang harus dilakukan DFSA)

Page 19: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh: NFSA yang dapat menerima semua

string berakhiran 01

q0 q1

0,1

q2

0 1

Page 20: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Definisi Formal NFSA

5-tuple NFSA dituliskan sebagai

A = (Q, , , q0, F)

• Q adalah himpunan terbatas atas keadaan

• adalah himpunan terbatas atas simbol input

• q0 Q adalah keadaan awal

• F (F Q) adalah himpunan keadaan final (yangditerima)

• (fungsi transisi) adalah fungsi yang mengandungsatu keadaan dari Q dan simbol input dalam untukmenuju ke beberapa keadaan dalam Q.

Page 21: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Definisi Formal NFSA (lanj.)

Satu-satunya perbedaan antara NFSA dan DFSA

adalah banyaknya hasil yang diperoleh dari

Page 22: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh: NFSA yang dapat menerima semua

string berakhiran 01

A = ({q0, q1, q2}, {0,1}, , q0, {q2})

Dengan fungsi transisi () diberikan dalam bentuk

tabel:0 1

q0 {q0,, q1} {q0}

q1 {q2}

* q2

q0 q1

0,1

q2

0 1

Lebih dari 1 State

Tidak ada state

tujuan

Page 23: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Fungsi Transisi DiperluasBasis: 𝛿(q,) = {q}

Tanpamendapatsimbol input, kitatetapberada di keadaansemula.

Induksi:

• Misalkan w adalah string dalambentukxa; dengan a merupakansimbolterakhirdari w, dan x suatu string yang adadalam w selainsimbolterakhir.

• Misalkan 𝛿(q,x) = {p1, p2, …, pk}

• Bila

𝑖=1

𝑘

𝛿 𝑝𝑖, 𝑎 = {𝑟1, 𝑟2, … , 𝑟𝑚}

• Maka: 𝛿(q,w) = {r1, r2, …, rm}

• Kita kerjakan 𝛿 (q,w) denganmengerjakan 𝛿 (q,x)kemudianikutitransisidarikeadaan yang dihasilkankekeadaan yangberlabel a.

Page 24: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh: NFSA yang dapat menerima semua

string berakhiran 01

Untuk w = 00101

1. 𝛿(q0,) = {q0}

2. 𝛿(q0,0) = {q0,0} = {q0, q1}

3. 𝛿(q0,00) = {q0,0} {q1,0} = {q0, q1} = {q0, q1}

4. 𝛿(q0,001) = {q0,1} {q1,1} = {q0} {q2} = {q0, q2}

5. 𝛿(q0,0010) = {q0,0} {q2,0} = {q0, q1} = {q0, q1}

6. 𝛿(q0,00101) = {q0,1} {q1,1} = {q0} {q2} = {q0, q2}

q0 q1

0,1

q2

0 1

Page 25: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Bahasa NFSA

Bahasasuatu NFSA A = (Q, , , q0, F) dinotasikandengan L(A) yang didefinisikansebagai

L(A) = {w | 𝛿(q0,w) F }

Bahasadari A merupakanhimpunan string w * sehingga 𝛿(q0,w) mengandungsetidaknyasatukeadaanyang diterima.

Meskipun w dapatmenujusuatukeadaan yang tidakditerimaatautidakmenujukesuatukeadaanmanapun, tidakmenghalangi w untukditerimaoleh NFSA.

Page 26: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Ekivalensi DFSA dan NFSA

• Setiap bahasa yang dapat dideskripsikan oleh

NFSA, dapat dideskripsikan pula oleh suatu

DFSA.

• Pada prakteknya, DFSA memiliki jumlah keadaan

yang sama dengan NFSA, meskipun transisinya

lebih banyak.

• Pada kasus tertentu, DFSA dapat memiliki 2n

keadaan (untuk NFSA dengan n keadaan)

Page 27: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Bukti: DFSA dapat melakukan semua

yang dilakukan NFSAPembuktian melibatkan konstruksi yang disebut

konstruksi himpunan bagian karena melibatkan

pembuatan semua himpunan bagian dari

himpunan dari keadaan – keadaan NFSA.

Dari NFSA ke DFSA

• Kita memiliki NFSA N = (QN, , N, q0, FN)

• Tujuannya untuk membuat DFSA D = (QD, , D,

{q0}, FD) sehingga L(D) = L(N)

Page 28: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Konstruksi Himpunan Bagian• Input alfabetnyasama

• Himpunankeadaanawal di D merupakanhimpunan yang memuatkeadaanawaldari N.

• QDmerupakanhimpunandarihimpunanbagiandari QN, yakniQDmerupakanhimpunanpangkatdari QN. Jika QNmemiliki n keadaan, QDmemiliki 2nkeadaan. Tidaksemuakeadaandapatdiaksesdarikeadaanawal.

• FDmerupakanhimpunandarihimpunanbagian S dari QNsehingga S FN . Sehingga FDmerupakansemuahimpunandarikeadaan N yang memuatsetidaknyasatukeadaan yang diterimadarikeadaan N.

• Untuktiaphimpunan S QN danuntuktiapsimbol input a

D(S,a) = 𝑝∈𝑆 𝛿𝑁(𝑝, 𝑎)

• UntukmenghitungD(S,a), kitalihatsemuakeadaan p dalam S, perhatikanperubahankeadaan N dari p ketikadiberikan input a, danambilgabungandarikeseluruhankeadaantersebut.

Page 29: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh

QN = {q0, q1, q2}, maka QD = {, {q1}, {q2}, {q0, q1},

{q0,q2}, {q1,q2},{q0,q1,q2}} sehingga QD memiliki 8

keadaan (tiap keadaan berkaitan dengan

himpunan bagian dari QN)

q0 q1

0,1

q2

0 1

Page 30: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh (lanj.)

0 1

{q0} {q0, q1} {q0}

{q1} {q2}

* {q2}

{q0, q1} {q0, q1} {q0, q2}

* {q0, q2} {q0, q1} {q0}

* {q1, q2} {q2}

* {q0,q1,q2} {q0, q1} {q0, q2}

q0 q1

0,1

q2

0 1

Page 31: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Contoh: dengan nama baru

• Catatan: keadaan D berkaitan dengan himpunan

bagian dari keadaan N, namun kita dapat

notasikan keadaan D menggunakan A – F.

0 1

A A A

B E B

C A D

* D A A

E E F

* F E B

* G A D

* H E F

Page 32: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Transformasikan

NFSA berikut

menjadi DFSA.

Page 33: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 1.

Membuat state DFSA

Himpunan state yang

baru :

Q’ = {, {1}, {2}, {3},

{1,2}, {1,3}, {2,3},

{1,2,3}}

Page 34: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 2.

Membuat Initial State DFSA

Initial state yang baru :

q0’= {1,3}

Page 35: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 3.

Membuat Final State DFSAFinal state yang baru :

F’= {{1}, {1,2}, {1,3},

{1,2,3}}

Page 36: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 4.

Membuat Diagram Transisi DFSA = a b

1 2

2 2,3 2,3

3 1,3

1,2 2,3 2,3

1,3 1,3 2

2,3 1,2,3 2,3

1,2,3 1,2,3 2,3

2

1

3

ab

a, b

a, b

Page 37: Finite State Automata - Materi 3 Teori Bahasa dan Automata

a b

1 2

2 2,3 2,3

3 1,3

1,2 2,3 2,3

1,3 1,3 2

2,3 1,2,3 2,3

1,2,3 1,2,3 2,3

Langkah ke – 5.

Penghapusan State tak-perlu

Page 38: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 5.

Penghapusan state tak-perlu

Page 39: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 5.

Penghapusan state tak-perlu

Page 40: Finite State Automata - Materi 3 Teori Bahasa dan Automata

Langkah ke – 5.

Penghapusan state tak-perlu