Anda di halaman 1dari 58

DFA

Teori Bahasa dan Automata

Viska Mutiawani - Informatika FMIPA


Unsyiah

DFA
DFA: Deterministic Finite Automata
Atau Automata Hingga Deterministik (AHD)

Merupakan salah satu bentuk dari Finite


Automata
Finite Automata merupakan salah satu dari
mesin automata.
FA tidak memiliki memory

Viska Mutiawani - Informatika FMIPA


Unsyiah

Deterministic Finite Automata (DFA)


Input Tape

String
Output

Finite
Automaton

Viska Mutiawani - Informatika FMIPA


Unsyiah

Terima
atau
Tolak

Graf Transisi

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

State awal

a, b

q4
State penerima

transisi
state
Viska Mutiawani - Informatika FMIPA
Unsyiah

Alfabet

{a , b }

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

Untuk setiap state, akan ada transisi


untuk setiap simbol dalam alfabet
Viska Mutiawani - Informatika FMIPA
Unsyiah

Kepala tape
Input Tape

Konfigurasi awal

a b b a
Input String

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

State awal
Viska Mutiawani - Informatika FMIPA
Unsyiah

Membaca input
a b b a
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
7

a b b a
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
8

a b b a
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
9

Input selesai dibaca

a b b a
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

terima

State yang paling terakhir menentukan hasil output


Viska Mutiawani - Informatika FMIPA
Unsyiah

10

Kasus ditolak
a b a
Input String

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
11

a b a
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
12

a b a
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
13

Input finished

a b a
a,b
tolak

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

State yang paling terakhir menentukan hasil output


Viska Mutiawani - Informatika FMIPA
Unsyiah

14

Kasus penolakan yang lain


Input tape kosong

( )
Input selesai (tidak ada simbol dibaca)

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a

a, b

q4

tolak
Viska Mutiawani - Informatika FMIPA
Unsyiah

15

Automaton ini hanya menerima satu string


Jadi bahasa yang diterima:

L abba
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
16

Untuk menerima suatu string:


semua input harus berhasil dibaca dan
state terakhir adalah state penerima

Untuk menolak suatu string:


semua input harus berhasil dibaca dan
state terakhir bukanlah state penerima
Viska Mutiawani - Informatika FMIPA
Unsyiah

17

Contoh lain (1)


L , ab, abba
a, b

q5
b
q0 a
State penerima

a
b
q1 b q2 b q3 a
State penerima
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4

State penerima
18

Input tape kosong

( )
Input selesai dibaca

a, b

q5
b
q0 a

a
b
q1 b q2 b q3 a

a, b

q4

terima
Viska Mutiawani - Informatika FMIPA
Unsyiah

19

Contoh lain (2)

a, b

a
q0

q1
State penerima

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2
State jebakan

20

a a b
Input String

a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

21

a a b
a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

22

a a b
a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

23

Input selesai dibaca

a a b
a, b

a
q0

accept

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

24

Kasus ditolak

b a b
Input String

a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

25

b a b
a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

26

b a b
a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

27

Input finished

b a b
a, b

a
q0

q1

a, b

q2
tolak

Viska Mutiawani - Informatika FMIPA


Unsyiah

28

Jadi bahasa yang diterima:

L {a b : n 0}

a, b

a
q0

q1

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q2

29

Contoh lain (3)


Alfabet:

{1}
1

q0

q1
1

Bahasa yang diterima:


*

EVEN {x : x and x is even}

{ , 11, 1111, 111111, }


Viska Mutiawani - Informatika FMIPA
Unsyiah

30

Definisi Formal DFA


(Deterministic Finite Automata)
M Q, , , q0 , F
Q : Set/Kumpulan state

: Alfabet input

q0
F

: Fungsi transisi
: State awal
: Set/kumpulan state penerima
Viska Mutiawani - Informatika FMIPA
Unsyiah

31

Set/kumpulan state Q
Q q0 , q1, q2 , q3 , q4 , q5

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
32

Alfabet Input
Alfabet input tidak pernah terdiri dari:

a, b

a, b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
33

State awal q0
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
34

Set dari state penerima F Q


F q4

a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
35

:Q Q

Fungsi transisi

(q , x ) q
q

Menjelaskan hasil transisi


dari state q dengan simbol x
Viska Mutiawani - Informatika FMIPA
Unsyiah

36

q0 , a q1
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
37

q0 , b q5
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
38

q2 , b q3
a,b

q5

b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
39

Tabel transisi untuk:

simbol

state

q0
q1
q2
q3
q4
q5

a
q1
q5
q5
q4
q5
q5

b
q5
q2
q3
q5
q5
q5

a, b

q5

a
b
a
b
q0 a q1 b q2 b q3 a

Viska Mutiawani - Informatika FMIPA


Unsyiah

a, b

q4
40

Fungsi transisi diperluas


*

:Q Q
*

(q, w) q
Menjelaskan state yang terakhir
setelah membaca string
dari state q

Viska Mutiawani - Informatika FMIPA


Unsyiah

41

Contoh:

q0 , ab q2
*

a, b

q5
b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
42

q0 , abbbaa q5
*

a,b

q5
b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
43

q1 , bba q4
*

a,b

q5
b
q0 a

a
a
b
q1 b q2 b q3 a
Viska Mutiawani - Informatika FMIPA
Unsyiah

a, b

q4
44

Kasus khusus:

Untuk setiap state

q, q
*

Viska Mutiawani - Informatika FMIPA


Unsyiah

45

q, w q
*

Secara umumnya:

Mengimplikasikan ada suatu jalan transisi

w 1 2 k
q

State bisa saja berulang

w
Viska Mutiawani - Informatika FMIPA
Unsyiah

q
46

Bahasa yang diterima oleh DFA


Bahasa yang diterima oleh DFA M
dinotasikan sebagai L(M) dan mengandung
semua string yang diterima oleh M
Atau dapat dikatakan:
M mengenali L(M)

Viska Mutiawani - Informatika FMIPA


Unsyiah

47

Untuk suatu DFA

M Q, , , q0 , F
Bahasa yang diterima oleh

LM w : q0 , w F
q0

w
Viska Mutiawani - Informatika FMIPA
Unsyiah

q F

48

Bahasa yang ditolah oleh

LM w : q0 , w F
q0

Viska Mutiawani - Informatika FMIPA


Unsyiah

q F

49

Contoh DFA lainnya


{a, b}

a, b

a, b

q0

q0

L( M ) { }
Bahasa kosong

L( M )

Semua string yang mungkin


dari alfabet
Viska Mutiawani - Informatika FMIPA
Unsyiah

50

{a, b}

a, b

q0

a, b

q0

L( M ) {}
Bahasa yang terdiri dari string kosong
Viska Mutiawani - Informatika FMIPA
Unsyiah

51

{a, b}

LM

= {semua string dengan prefix

ab

a, b

q0

q1

a
q3
Viska Mutiawani - Informatika FMIPA
Unsyiah

q2
State penerima

a, b
52

{0,1}
LM = {semua string yang mengandung substring

001 }

0,1

0
1

00

001

0
Viska Mutiawani - Informatika FMIPA
Unsyiah

53

{0,1}
LM = {semua string yang tidak mengandung
substring 001 }

0,1

00

001

0
Viska Mutiawani - Informatika FMIPA
Unsyiah

54

L( M ) awa : w a, b
b

q0

q2

q3

q4
a, b

Viska Mutiawani - Informatika FMIPA


Unsyiah

55

Bahasa Regular
Definisi:
Suatu bahasa L merupakan bahasa regular jika
ada DFA M yang menerimanya ( L(M) = L )

Bahasa yang diterima oleh DFA


membentuk bahasa regular
Viska Mutiawani - Informatika FMIPA
Unsyiah

56

Contoh bahasa regular:

abba , ab, abba


n
*
{a b : n 0} awa : w a, b
{ semua string dengan prefix ab }
{ semua string dengan substring 001 }
*

{x : x {1} and x is even}

{ } {}

{a, b}

Sebab wujud DFA yang menerima bahasa-bahasa di atas


(lihat slide-slide sebelumnya)
Viska Mutiawani - Informatika FMIPA
Unsyiah

57

Dan wujud bahasa yang bukan regular


n n

L {a b : n 0}
ADDITION {x y z : x 1n , y 1m , z 1k ,
n m k}

Sebab tidak ada DFA yang menerima bahasa tersebut.


Kita akan membuktikannya dengan pumping lemma
Viska Mutiawani - Informatika FMIPA
Unsyiah

58

Anda mungkin juga menyukai