TBO 2 Finite Automata

19

Click here to load reader

Transcript of TBO 2 Finite Automata

Page 1: TBO 2 Finite Automata

Teori Komputasi: Finite Automata1

Teori Bahasa dan Otomata

Finite Automata

Page 2: TBO 2 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)

Page 3: TBO 2 Finite Automata

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.

Page 4: TBO 2 Finite Automata

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

Page 5: TBO 2 Finite Automata

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)

Page 6: TBO 2 Finite Automata

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,) }

Page 7: TBO 2 Finite Automata

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’)

Page 8: TBO 2 Finite Automata

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

Page 9: TBO 2 Finite Automata

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)

Page 10: TBO 2 Finite Automata

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,)

Page 11: TBO 2 Finite Automata

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,) }

Page 12: TBO 2 Finite Automata

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

Page 13: TBO 2 Finite Automata

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 ’

Page 14: TBO 2 Finite Automata

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 .

Page 15: TBO 2 Finite Automata

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)

Page 16: TBO 2 Finite Automata

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.

Page 17: TBO 2 Finite Automata

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.

Page 18: TBO 2 Finite Automata

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}

Page 19: TBO 2 Finite Automata

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)