31
1 Pertemuan 2 FINITE AUTOMATA (DFA & NFA) Matakuliah : T0162/Teori Bahasa dan Automata Tahun : 2009 Versi : 1/0 Revisi

Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

  • Upload
    regis

  • View
    286

  • Download
    21

Embed Size (px)

DESCRIPTION

Matakuliah: T0162/Teori Bahasa dan Automata Tahun: 2009 Versi: 1/0 Revisi. Pertemuan 2 FINITE AUTOMATA (DFA & NFA) ‏. FINITE AUTOMATA. Sistem Finite State : •Finite Automaton (DFA) ‏ •Non-Deterministic Finite Automaton •Push Down Automata •Turing Machine - PowerPoint PPT Presentation

Citation preview

Page 1: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

1

Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Matakuliah : T0162/Teori Bahasa dan Automata

Tahun : 2009

Versi : 1/0 Revisi

Page 2: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

2

FINITE AUTOMATA

Sistem Finite State :

• Finite Automaton (DFA)

• Non-Deterministic Finite Automaton

• Push Down Automata

• Turing Machine

• Linear Bounded Automata

ε- NFA

RE DFA

NFA

Page 3: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

3

FINITE AUTOMATA

Contoh Finite State System :• System Elevator

• Switching circuit

• Program text editor

Contoh :

Manusia (m), serigala (w), kambing (g),

sayur (c) menyeberang sungai :

Keadaan awal : MWGC --- Keadaan akhir : --- MWGC

Page 4: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

4

FINITE AUTOMATA

MWGC-Start WC-MG MWC-G

W-MGC

MGW-C

G-MWCMG-WC-MWGC

g m

c

g

wmg

FinalState

Page 5: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

5

DETERMINISTIC FINITE AUTOMATA

• Dinotasikan dengan DFA A= { Q, , , q0, F}

Dimana :

Q : Himpunan Hingga Stata

: Himpunan Hingga simbol input

: Fungsi transisi Q x Q

q0 : Stata awal (q0 Q )

F : Himpunan Hingga Stata Penerima (F Q )• Contoh :

Diketahui DFA • Dimana • Lebih jelas bila direpresentasikan dalam tabel :

Page 6: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

6

DETERMINISTIC FINITE AUTOMATA

Contoh :

DFA menerima string dimana jumlah ‘0’, dan jumlah ‘1’-nya genap

L = {(11+ 00 + 0101 +

1010 + 0110 + 1001)*}

State : { q0, q1, q2, q3 }

Start state : q0

Final state : { q0 }

Simbol input : {0, 1}

Fungsi Transisi Dlm Tabel

q0 q1

q2 q3

Start

0000

1

1

1

1

q2q1q3

q3q0q2

q0q3q1

q1q2q0*

10State

Page 7: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

7

DETERMINISTIC FINITE AUTOMATA

• Buatlah DFA yang menerima language

L = {w | w merupakan string yang merupakan urutan 0 berjumlah genap yang diikuti 1 berjumlah genap} atau

L = { (00)* (11)* }

1A

0 C

B

0 00 0

0, 1

1

1

1

1

Page 8: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

8

DETERMINISTIC FINITE AUTOMATA

(q, a) : dalam state ‘q’, membaca input ‘a’Fungsi Transisi untuk String : Q * Q

(q,) = q {tanpa membaca simbol input tidak bisa berganti state}

Untuk semua string w dan input a, (q, wa) = ( (q,w),a) =p

= (q,w) = (p,a)

dan selalu sejalan : (q,a) = ( (q,),a) = (q,a)

Page 9: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

9

DETERMINISTIC FINITE AUTOMATA

(q,w) : adalah state dimana FA akan berada setelah membaca string w, dengan start state q; (q,w) = p, ada path berlabel w dari state q ke p.

STRING YANG DITERIMA :

String x diterima bila (q0,x) = p, p dalam F.

LANGUAGE YANG DITERIMA :

Language yang diterima oleh FA M adalah

{x (q0,x) dalam F}

REGULAR LANGUAGE / SET :

Language yang diterima oleh suatu FA.

Page 10: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

10

DETERMINISTIC FINITE AUTOMATA

Contoh :

Q = {q0,q1,q2,q3} = {0,1}F = {q3} : digambarkan tabel berikut

String Yang Diterima :1100110100110111

String yang terbentuk dari 0 dan 1 dan mengandung 110L = {(0+1)*110 (0+1)*}

Start q0 q1 q2 q3

0

1 1

0, 1

0

0

1

q3 q3*q3

q3 q2q2

q0 q2q1

q0 q1q0

0 1State

Page 11: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

11

<<Latihan>>

Buatlah DFA yang menerima language dari alphabet {0,1} dengan ketentuan :

1.L ={(0+1)* 000 (0+1)*}

2.L =[(0+1)* 1001}

3.L = {(01 (0+1)*) + ((0+1)* 01)}

4.L = {(11)* (00)*}

5.L = {(0+1)* 1 (00+10+01+11)}

6.L = {(01+00)*}

7.L = {101 (0+1)*}

Page 12: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

1. L ={(0+1)* 000 (0+1)*}

2. L =[(0+1)* 1001}

q1 q2q0 q3

1 0,1

1

1

000Start

q1 q2q0 q4

0

00Start 1q3

1

1

1

0

01

Page 13: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

3. L = {(01 (0+1)*) + ((0+1)* 01)}

q0

q1 q2

q4q3 q5

Start

0

0,1

0

0

0

0

1

1 1

11

Page 14: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

4. L = {(11)* (00)*}

q0

q1 q2

q3 q40 0

0

0

0,1

1

11 1

Start

Page 15: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

5. L = {(0+1)* 1 (00+10+01+11)}

000

00

001

01

010 011

0

110 111

11

ε

101100

10

1

1

0

01

0

0

0

0

0

1 1

1 1

1

11 0

011

0

0

11

00

10

1

Page 16: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

5. Disederhanakan menjadi :

000 001 010 011 110 1111011001 010

0

1

1

0

0 1

1

0

0

1

0

1

Page 17: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

5. Atau :

000 001

010

011

110 111101

100

1

01

0

1

0

1 01

1

10

0

0

10

Start

Page 18: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

6. L = {(01+00)*}

7. L = {101 (0+1)*}

q1 q2q010Start 1 q3

1

0, 1

0 q10

0, 1

0,1

0

0,1

1

q0

q1

q2

Page 19: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton (NFA)

• Nondeterministic finite automata (NFA) mempunyai fungsi transisi yang menetapkan nol atau lebih state untuk sebuah simbol input.

• NFA menerima string jika hasil akhir penelusuran string berakhir di salah satu final state.

• String diterima : Bila ada suatu path berlabel w dari start state ke salah satu final state, maka w diterima.

• Contoh :

q0 q1 q2

0

0

1

0

1

0

1

1

Start

Page 20: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton (NFA)

• Contoh : Input : 01101

(q0, 01101)= ( (q0,0), 1101) = ({q0,q1}, 1101)= ({ (q0,1)U (q1,1)}, 101)= ({q2, q1},101)= ({ (q2,1)U (q1,1)}, 01)= ({q0,q1},01)= ({ (q0,0)U (q1,0)}, 1)= ({q0,q1},1)= { (q0,1)U (q1,1)} = {q2, q1}

=> Krn q2 merupakan stata penerima maka string tsb diterima

State 0 1

q0 {q0,q1} q2

q1 q0 q1

* q2 q1 {q0,q1}

Page 21: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton (NFA)

• Contoh :

Input : 01001Start

1

1

10

0

0

q2

q1

q0 q3

q4

0

0

1

1

Page 22: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton (NFA)

• Catatan : mungkin ada lebih dari satu path yang berlabel w tapi, harus ada salah satu path yang berakhir di final state, agar w dapat diterima.

q 0 q 0 q 0 q 0 q 0 q 0

q 3 q 1 q 3

q 4 q 4 : Diterima

q 3 q 0

0

0 0 0

0 0

0

1

1

1

1

1

Page 23: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton (NFA)

Definisi Formal NFA :

M = (Q, , , q0, F)

Q, , q0, F : seperti pada FA

: Q Q

• (q,a) : himpunan state p sehingga ada transisi berlabel a dari q ke p. Boleh lebih dari 1 next-state

Page 24: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton (NFA)

Transisi atas String : : Q * 2O

1. (q,) = {q}2. (q,wa) = {pr dalam (q,w), p dalam

(r,a)} : 2O * 2O :

(P,w) = {q,w}, P Q

Language Accepted / diterima :

NFA M = (Q, , , q0, F),

L (M) = {w (q0,w) elemen dari F}

Theorem :• Bila L adalah L(M) untuk suatu NFA, maka L diterima suatu FA.

q p

Page 25: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton dengan -move ( NFA)

Finite Automata dengan -move :• Memungkinkan transisi atas input kosong (empty) .• Contoh

q0 q2q1Start

0 21

Page 26: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton dengan -move ( NFA)

Fungsi Transisi : : O ( {}) 2O

(q,a) : a mungkin atau a

-Closure (q) :• Himpunan state p dimana ada path dari q ke p

berlabel • Contoh :

-Closure (q0) = {q0, q1, q2}• Bila P himpunan state :

-closure (P) = -closure (q)

Page 27: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton dengan -move ( NFA)

Transisi dengan String :1. (q,) = -closure (q)2. (q,wa) = -closure (P),

Dimana P = {puntuk semua r dalam (q,w), p dalam (r,a)}

3. (R,a) = (q,a)4. (R,w) = (q,w)

Dimana R : himpunan state

Language Accepted :• L yang diterima NFA dengan -move :

L(M) = {w(q0,w) dalam F}

Page 28: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Non Deterministic Finite Automaton dengan -move ( NFA)

Contoh Untuk -NFA di atas :

1.(q0,0) = -closure (q0) = {q0,q1,q2}

= -closure (({q0,q1,q2},0))

= -closure ((q0,0) (q1,0) (q2,0))

= -closure ({q0} )

= -closure ({q0}) = {q0,q1,q2} Accepted

2.(q0,01) = -closure ( (q0,0),1)

= -closure (({q0,q1,q2},1))

= -closure ({q1}) = {q1,q2} Accepted

Page 29: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Ekuivalensi ε- NFA dan RE

Jenis RE Simbol RE ε- NFA

Simbol Hampa ε

ER Hampa atau { }

ER Umum r

q0

q0 q1

q1rq0

Page 30: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

Ekuivalensi ε- NFA dan RE

Union r1 + r2

Concantenation r1r2

Kleene Closure R*

q0 q1r1 r2ε ε ε

q1

r1

r2

ε

ε

ε

ε

q0

ε

q0 q1r1ε ε

ε

Page 31: Pertemuan 2 FINITE AUTOMATA (DFA & NFA)

<<Latihan>>

• Buatlah NFA yang menerima language dari alphabet {0,1} dengan ketentuan String dengan simbol ke-2 dari kanan adalah 1

• Buatlah ε- NFA dari RE berikut :

a. (a + b)*. ab

b. aa + (ab)*

c. (aa)* b

d. (01 + 1)* (01)*