TBO 2 Finite Automata
Click here to load reader
-
Upload
teguhkukuh-widianto -
Category
Documents
-
view
67 -
download
9
Transcript of TBO 2 Finite Automata
Teori Komputasi: Finite Automata1
Teori Bahasa dan Otomata
Finite Automata
Teori Komputasi: Finite Automata2
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 Automata3
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) FK– Fungsi transisi : K x K
DFA dapat disajikan secara grafis dengan menggunakan diagram state, menggunakan dasar bentuk graf berarah.
Teori Komputasi: Finite Automata4
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
Teori Komputasi: Finite Automata5
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)
Teori Komputasi: Finite Automata6
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 fF, dan s0 initial state
– Bahasa yang diterima oleh DFA adalah himpunan semua string yang diterima oleh DFA tersebut, yaitu
– L(DFA) = {w | terdapat fF sehingga (s0,w)├(f,) }
Teori Komputasi: Finite Automata7
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) FK– 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’)
Teori Komputasi: Finite Automata8
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
Teori Komputasi: Finite Automata9
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)
Teori Komputasi: Finite Automata10
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 fF, 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,)
Teori Komputasi: Finite Automata11
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,), fF
– Bahasa yang diterima oleh NDFA adalah himpunan semua string yang diterima oleh NDFA tersebut, yaitu
– L(NDFA) = {w | terdapat fF sehingga (s0,w)├(f,) }
Teori Komputasi: Finite Automata12
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
Teori Komputasi: Finite Automata13
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 ’
Teori Komputasi: Finite Automata14
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 aK’E(a) = {xK’ | (a,) ├ (x,)}
= himpunan semua state dalam K’ yang dapat dicapai
dari a dengan membaca string kosong .
Teori Komputasi: Finite Automata15
Ekuivalensi NDFA dan DFA
– DFA tersebut mempunyai komponen: Alfabet Himpunan state K” = 2K’
Initial state E(s0) Himpunan final state F” = {A2K’| AF ≠ } Fungsi transisi (P,a) = {E(q) | ((p,a),q)’, pP} = union
E(q) untuk semua state q dalam K’ yang dapat dicapai dengan transisi ’ dari setiap anggota PK’ dengan membaca a
(,a) = untuk setiap a (AB,a) = (A,a) (B,a)
Teori Komputasi: Finite Automata16
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 Automata17
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 q i 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.
Teori Komputasi: Finite Automata18
Bahasa Reguler dan FA
– Dengan demikian, untuk qjF, 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) | qjF}
– 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}
Teori Komputasi: Finite Automata19
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)