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)