You are on page 1of 19

Teori Komputasi: Finite Automata

1
Teori Bahasa dan Otomata
Finite Automata
Teori Komputasi: Finite Automata
2
Finite Automata
 Finite Automata (FA) merupakan sistem pengenal (recogniser)
suatu bahasa, khususnya bahasa reguler.
 Finite Automata menerima input berupa string, tetapi tidak
menghasilkan output. Namun demikian dapat digunakan untuk
mengetahui apakah string tersebut diterima/dikenal oleh sistem
tersebut atau tidak.
 Secara umum, FA terdiri atas alfabet, himpunan state, dan
suatu transisi.
 Perubahan state terjadi jika sistem membaca substring
(karakter) awal.
 Suatu string diterima kalau dia dapat dibaca habis dari state
awal, dan state terakhir berada dalam state tujuan (akhir)
Teori Komputasi: Finite Automata
3
Deterministic Finite Automata
 Deterministic Finite Automata (DFA) merupakan
sebuah sistem yang terdiri atas komponen2:
– Alfabet o
– Himpunan state berhingga K ≠ |
– Initial state (state awal) s
0

– Himpunan final state (state akhir) F_K
– Fungsi transisi o : K x o ÷ K
 DFA dapat disajikan secara grafis dengan
menggunakan diagram state, menggunakan dasar
bentuk graf berarah.
Teori Komputasi: Finite Automata
4
Deterministic Finite Automata
 Dalam diagram state:
– Node merupakan state dengan tambahan state awal diberi
tanda >, dan state akhir diberi tambahan lingkaran
– Edge (garis penghubung) menyatakan transisi berdasarkan
fungsi transisinya, yaitu misalkan o(k,a)=k’, maka ada edge
dengan label a dari k ke k’.
– o(k,a)=k’ mempunyai arti, jika sistem berada state k,
kemudian membaca karakter a, maka sistem berubah ke
state k’
 Konfigurasi
– Suatu konfigurasi didefinisikan sebagai anggota himpunan
K x o-
Teori Komputasi: Finite Automata
5
Deterministic Finite Automata
 Relasi ├ pada K x o-
– (k, u) ├ (k’,v), dengan k, k’ e K, dan u, v e o-, apabila ada
aeo sehingga u = av, dan o(k,a)=k’
– Dikatakan (k,u) menurunkan (k’,v) dalam satu langkah
– Relasi ini bersifat tidak refleksif, asimetri, dan intransitif
– Oleh karena itu relasi ini diperluas menjadi relasi ├-
 Relasi ├- pada K x o-
– (k,u) ├- (k’,v) apabila
 (k,u) = (k’,v), atau
 (k,u)├ (k
1
,u
1
)├ (k
2
,u
2
) .......├ (k’,v)
Teori Komputasi: Finite Automata
6
Deterministic Finite Automata
– (k,u) menurunkan dengan beberapa langkah (k’,v)
– Relasi ini bersifat refleksif, transitif, tetapi tidak simetri.
 Bahasa yang diterima DFA
– String weo- dikatakan diterima oleh DFA apabila
(s
0
,w)├-(f,.) untuk suatu final state feF, dan s
0
initial state
– Bahasa yang diterima oleh DFA adalah himpunan semua
string yang diterima oleh DFA tersebut, yaitu
– L(DFA) = {weo- | terdapat feF sehingga (s
0
,w)├-(f,.) }
Teori Komputasi: Finite Automata
7
Non Deterministic Finite Automata
 Suatu non deterministic finite automata (NDFA)
adalah sebuah sistem yang terdiri atas komponen2:
– Alfabet o
– Himpunan state K ≠ |
– Initial state (state awal) s
0

– Himpunan final state (state akhir) F_K
– Relasi transisi A _ (K x o-) x K
 Seperti pada DFA, suatu NDFA dapat juga disajikan
secara grafis melalui diagram state, dengan simbol
2

yang sama, kecuali label untuk edge dari k ke k’
adalah string w dari transisi ((k,w),k’)
Teori Komputasi: Finite Automata
8
Non Deterministic Finite Automata
 ((k,w),k’)eA, mempunyai arti bahwa jika sistem
berada di state k, kemudian membaca string w,
maka sistem berubah menjadi state k’
 Karena A merupakan relasi, maka:
– Setelah sistem berada di suatu state, bisa tidak berubah
statenya karena tidak ada string yang dibaca
– Setelah membaca suatu string, sistem bisa berubah ke
beberapa alternatif state (non deterministic)
– String yang dibaca bisa string kosong

Teori Komputasi: Finite Automata
9
Non Deterministic Finite Automata
 Definisi konfigurasi sama dengan pada DFA
 Relasi ├ pada K x o-
– (k, u) ├ (k’,v), dengan k, k’ e K, dan u, v e o-, apabila ada
yeo- sehingga u = yv, dan ((k,y),k’)eA
– Dikatakan (k,u) menurunkan (k’,v) dalam satu langkah
– Relasi ini bersifat tidak refleksif, asimetri, dan intransitif
– Oleh karena itu relasi ini diperluas menjadi relasi ├-
 Relasi ├- pada K x o-
– (k,u) ├- (k’,v) apabila
 (k,u) = (k’,v), atau
 (k,u)├ (k
1
,u
1
)├ (k
2
,u
2
) .......├ (k’,v)
Teori Komputasi: Finite Automata
10
Non Deterministic Finite Automata
– (k,u) menurunkan dengan beberapa langkah (k’,v)
– Relasi ini bersifat refleksif, transitif, tetapi tidak simetri.
 Bahasa yang diterima NDFA
– String weo- dikatakan diterima oleh NDFA apabila
(s
0
,w)├-(f,.) untuk suatu final state feF, dan s
0
initial state
– Perbedaan dengan DFA adalah, pada DFA hanya ada satu
jalur dari (s
0
,w) ke (f,.), sehingga tergantung keberadaan f
itu apakah di F atau tidak
– Pada NDFA, untuk string yang diterima, cukup satu jalur
saja dari (s
0
,w) ke (f,.)
Teori Komputasi: Finite Automata
11
Non Deterministic Finite Automata
– Sedangkan untuk yang tidak diterima harus melihat semua
jalur yang mungkin, karena ketidakditerimanya string bisa
disebabkan:
 Konfigurasi terakhir yang dicapai (k,y) dengan y tidak kosong
 Untuk konfigurasi terakhir (f,.), feF
– Bahasa yang diterima oleh NDFA adalah himpunan semua
string yang diterima oleh NDFA tersebut, yaitu
– L(NDFA) = {weo- | terdapat feF sehingga (s
0
,w)├-(f,.) }

Teori Komputasi: Finite Automata
12
Ekuivalensi NDFA dan DFA
 Setiap DFA pasti memenuhi sifat NDFA, tetapi tidak
sebaliknya
 Namun demikian, untuk setiap NDFA dapat
dikonstruksi suatu DFA yang menerima bahasa yang
sama dengan bahasa yang diterima NDFA tersebut
(ekuivalen)
 Diketahui suatu NDFA yang terdiri alfabet o,
himpunan state K, initial state s
0
, himpunan final
state F, dan relasi transisi A
Teori Komputasi: Finite Automata
13
Ekuivalensi NDFA dan DFA
 Dibentuk NDFA yang ekuivalen dengan o, K’, s
0
, F,
dan A’ dengan ketentuan:
– K’ awalnya samadengan K
– A’ awalnya diisi dengan semua ((k,u),k’)eA dengan |u|s1
– Jika ada ((k,u),k’)eA dengan |u|>1, maka transisi tersebut
diganti dengan transisi2 baru dengan menambah state baru
tanpa mengubah struktur aslinya tetapi dengan panjang
string s1. Misalkan transisi ((k,abc),k’)eA, maka transisi itu
diganti dengan menambahkan state baru p
1
, p
2
kedalam K’
dan transisinya ((k,a),p
1
), ((p
1
,b),p
2
), dan ((p
2
,c),k’)
ditambahkan pada A’
Teori Komputasi: Finite Automata
14
Ekuivalensi NDFA dan DFA
 Dengan demikian diperoleh NDFA yang ekuivalen,
dengan o, K’, s
0
, F, dan A’ dan string dalam setiap
transisi mempunyai panjang s1
 DFA yang ekuivalen dengan NDFA tersebut
dikonstruksi dengan cara sebagai berikut:
– Terlebih dahulu didefinisikan himpunan bagian dalam K’
sebagai berikut: untuk setiap aeK’
E(a) = {xeK’ | (a,.) ├- (x,.)}
= himpunan semua state dalam K’ yang dapat dicapai
dari a dengan membaca string kosong ..
Teori Komputasi: Finite Automata
15
Ekuivalensi NDFA dan DFA
– DFA tersebut mempunyai komponen:
 Alfabet o
 Himpunan state K” = 2
K’

 Initial state E(s
0
)
 Himpunan final state F” = {Ae2
K’
| A·F ≠ |}
 Fungsi transisi o(P,a) = {E(q) | ((p,a),q)eA’, peP} = union
E(q) untuk semua state q dalam K’ yang dapat dicapai dengan
transisi A’ dari setiap anggota P_K’ dengan membaca aeo
– o(|,a) = | untuk setiap aeo
– o(AB,a) = o(A,a) o(B,a)
Teori Komputasi: Finite Automata
16
Bahasa Reguler dan FA
 Hubungan bahasa reguler dengan finite automata
adalah: suatu bahasa merupakan bahasa reguler
bila dan hanya bila diterima oleh suatu FA.
 Ini berarti bahwa bahasa yang diterima oleh FA
merupakan bahasa reguler.
 Sebaliknya dari suatu bahasa reguler dapat
dikonstruksi suatu FA yang menerima bahasa
reguler tersebut.
Teori Komputasi: Finite Automata
17
Bahasa Reguler dan FA
 Bahasa reguler yang diterima FA:
– Untuk menentukan bahasa reguler yang diterima oleh FA,
dimulai dari DFA dengan himpunan state K = {q
1
, q
2
, . . .,
q
n
} dengan initial state q
1
.
– Untuk i=1...n, j=1...n, k=1...(n+1) didefinisikan bahasa
R(i,j,k) = himpunan string yang dapat dibaca dari state q
i
ke
q
j
tanpa melewati state dengan indeks > k
– R(i,j,k) = {seo- | (q
i
,s)├-(q
j
,.), dan jika (q
i
,s)├-(q
l
,t), maka
l<k, atau (t=. dan l=j), atau (t=s dan l=i)}
– Sehingga R(i,j,n+1) = {seo- | (q
i
,s)├-(q
j
,.)}, yaitu semua
string yang habis dibaca dari q
i
ke q
j
.
Teori Komputasi: Finite Automata
18
Bahasa Reguler dan FA
– Dengan demikian, untuk q
j
eF, R(1,j,n+1) berisi string yang
diterima oleh DFA tersebut, oleh karena itu diperoleh
bahasa yang diterima oleh DFA tersebut adalah
L(DFA) = {R(1,j,n+1) | q
j
eF}
– Untuk menentukan R(i,j,k) digunakan rumus rekursif pada k
R(i,j,k+1) = R(i,j,k) R(i,k,k) R(k,k,k)- R(k,j,k)
– Dengan syarat awalnya:
– Untuk i≠j, R(i,j,1) = {aeo | o(q
i
,a) = q
j
}
– Untuk i=j, R(i,i,1) = {.} {aeo | o(q
i
,a) = q
i
}

Teori Komputasi: Finite Automata
19
Bahasa Reguler dan FA
 Untuk mengkonstruksi FA dari suatu bahasa reguler,
dimulai dari ekspresi reguler, kemudian disusun
NDFA berdasarkan ekspresi reguler tersebut.
 Beberapa petunjuk menentukan transisi yang bisa
digunakan:
– s- digunakan ((a,s), a)
– s
1
+s
2
digunakan ((a,s
1
), b), ((a,s
2
), b)