Anda di halaman 1dari 19

Teori Bahasa dan Otomata

Finite Automata

1 TBO: Finite Automata


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 dan state
terakhir berada dalam state tujuan (akhir)

2 TBO: Finite Automata


Deterministic Finite Automata
 Deterministic Finite Automata (DFA) merupakan
sebuah sistem yang terdiri atas komponen2:
– Alfabet α
– Himpunan state berhingga K ≠ φ
– Initial state (state awal) s0
– Himpunan final state (state akhir) F⊆K
– Fungsi transisi δ : K x α → K
 DFA dapat disajikan secara grafis dengan
menggunakan diagram state, menggunakan dasar
bentuk graf berarah.

3 TBO: Finite Automata


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 δ(k,a)=k’, maka ada edge
dengan label a dari k ke k’.
δ(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 α∗

4 TBO: Finite Automata


Deterministic Finite Automata
 Relasi ├ pada K x α∗
– (k, u) ├ (k’,v), dengan k, k’ ∈ K, dan u, v ∈ α∗, apabila ada a
∈α sehingga u = av, dan δ(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 α∗
– (k,u) ├∗(k’,v) apabila
 (k,u) = (k’,v), atau
 (k,u)├ (k1,u1)├ (k2,u2) .......├ (k’,v)

5 TBO: Finite Automata


Deterministic Finite Automata
– (k,u) menurunkan dengan beberapa langkah (k’,v)
– Relasi ini bersifat refleksif, transitif, tetapi tidak simetri.
 Bahasa yang diterima DFA
– String w∈α∗ dikatakan diterima oleh DFA apabila (s0,w)├∗
(f,∧) untuk suatu final state f∈F, dan s0 initial state
– Bahasa yang diterima oleh DFA adalah himpunan semua
string yang diterima oleh DFA tersebut, yaitu
– L(DFA) = {w∈α∗ | terdapat f∈F sehingga (s0,w)├∗(f,∧) }

6 TBO: Finite Automata


Non Deterministic Finite Automata
 Suatu non deterministic finite automata (NDFA)
adalah sebuah sistem yang terdiri atas komponen2:
– Alfabet α
– Himpunan state K ≠ φ
– Initial state (state awal) s0
– Himpunan final state (state akhir) F⊆K
– Relasi transisi ∆ ⊆ (K x α∗) x K
 Seperti pada DFA, suatu NDFA dapat juga disajikan
secara grafis melalui diagram state, dengan simbol2
yang sama, kecuali label untuk edge dari k ke k’
adalah string w dari transisi ((k,w),k’)

7 TBO: Finite Automata


Non Deterministic Finite Automata
 ((k,w),k’)∈∆, mempunyai arti bahwa jika sistem
berada di state k, kemudian membaca string w,
maka sistem berubah menjadi state k’
 Karena ∆ 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

8 TBO: Finite Automata


Non Deterministic Finite Automata
 Definisi konfigurasi sama dengan pada DFA
 Relasi ├ pada K x α∗
– (k, u) ├ (k’,v), dengan k, k’ ∈ K, dan u, v ∈ α∗, apabila ada y
∈α∗sehingga u = yv, dan ((k,y),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 α∗
– (k,u) ├∗ (k’,v) apabila
 (k,u) = (k’,v), atau
 (k,u)├ (k1,u1)├ (k2,u2) .......├ (k’,v)

9 TBO: Finite Automata


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 w∈α∗ dikatakan diterima oleh NDFA apabila (s0,w)├∗
(f,∧) untuk suatu final state f∈F, dan s0 initial state
– Perbedaan dengan DFA adalah, pada DFA hanya ada satu
jalur dari (s0,w) ke (f,∧), sehingga tergantung keberadaan f
itu apakah di F atau tidak
– Pada NDFA, untuk string yang diterima, cukup satu jalur
saja dari (s0,w) ke (f,∧)

10 TBO: Finite Automata


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,∧), f∉F

– Bahasa yang diterima oleh NDFA adalah himpunan semua


string yang diterima oleh NDFA tersebut, yaitu
– L(NDFA) = {w∈α∗| terdapat f∈F sehingga (s0,w)├∗(f,∧) }

11 TBO: Finite Automata


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 α,
himpunan state K, initial state s0, himpunan final
state F, dan relasi transisi ∆

12 TBO: Finite Automata


Ekuivalensi NDFA dan DFA

 Dibentuk NDFA yang ekuivalen dengan α, K’, s0, F,


dan ∆’ dengan ketentuan:
– K’ awalnya samadengan K
∆’ awalnya diisi dengan semua ((k,u),k’)∈∆ dengan |u|≤1
– Jika ada ((k,u),k’)∈∆ dengan |u|>1, maka transisi tersebut
diganti dengan transisi2 baru dengan menambah state baru
tanpa mengubah struktur aslinya tetapi dengan panjang
string ≤1. Misalkan transisi ((k,abc),k’)∈∆, maka transisi itu
diganti dengan menambahkan state baru p1, p2 kedalam K’
dan transisinya ((k,a),p1), ((p1,b),p2), dan ((p2,c),k’)
ditambahkan pada ∆’

13 TBO: Finite Automata


Ekuivalensi NDFA dan DFA

 Dengan demikian diperoleh NDFA yang ekuivalen


dengan α, K’, s0, F, dan ∆’ dan string dalam setiap
transisi mempunyai panjang ≤1
 DFA yang ekuivalen dengan NDFA tersebut
dikonstruksi dengan cara sebagai berikut:
– Terlebih dahulu didefinisikan himpunan bagian dalam K’
sebagai berikut: untuk setiap a∈K’
E(a) = {x∈K’ | (a,∧) ├∗(x,∧)}
= himpunan semua state dalam K’ yang dapat dicapai
dari a dengan membaca string kosong ∧.

14 TBO: Finite Automata


Ekuivalensi NDFA dan DFA

– DFA tersebut mempunyai komponen:


 Alfabet α
 Himpunan state K” = 2K’

 Initial state E(s0)

 Himpunan final state F” = {A∈2K’| A∩F ≠ φ}


 Fungsi transisi δ(P,a) = ∪{E(q) | ((p,a),q)∈∆’, p∈P} = union
E(q) untuk semua state q dalam K’ yang dapat dicapai dengan
transisi ∆’ dari setiap anggota P⊆K’ dengan membaca a∈α
δ(φ,a) = φ untuk setiap a∈α

15 TBO: Finite Automata


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.

16 TBO: Finite Automata


Bahasa Reguler dan FA

 Bahasa reguler yang diterima FA:


– Untuk menentukan bahasa reguler yang diterima oleh FA,
dimulai dari DFA dengan himpunan state K = {q1, q2, . . ., qn}
dengan initial state q1.
– Untuk i=1...n, j=1...n, k=1...(n+1) didefinisikan bahasa
R(i,j,k) = himpunan string yang dapat dibaca dari state qi ke
qj tanpa melewati state dengan indeks ≥ k
– R(i,j,k) = {s∈α∗ | (qi,s)├∗(qj,∧), dan jika (qi,s)├∗(ql,t), maka
l<k, atau (t=∧ dan l=j), atau (t=s dan l=i)}
– Sehingga R(i,j,n+1) = {s∈α∗ | (qi,s)├∗(qj,∧)}, yaitu semua
string yang habis dibaca dari qi ke qj.
17 TBO: Finite Automata
Bahasa Reguler dan FA

– Dengan demikian, untuk qj∈F, 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) | qj∈F}
– 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) = {a∈α | δ(qi,a) = qj}
– Untuk i=j, R(i,i,1) = {∧} ∪ {a∈α | δ(qi,a) = qi}

18 TBO: Finite Automata


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)
– s1+s2 digunakan ((a,s1), b), ((a,s2), b)

19 TBO: Finite Automata

Anda mungkin juga menyukai