Anda di halaman 1dari 2

IF6151 Matematika Informatika Elfan Nofiari, 23503074 Nondeterministic Finite Automata (NFA) NFA memiliki fungsi transisi yang

g memungkinkan ada satu, beberapa, atau tidak ada sama sekali status yang bisa dicapai dari status tertentu dengan masukan sebuah simbol input yang sama. NFA akan menerima suatu masukan (kata) jika ada transisi yang memungkinkan dari salah satu status awal ke salah satu status akhir. Meskipun NFA memiliki fungsi transisi yang tidak dapat ditentukan (non deterministik), tetapi kita akan selalu bisa menentukan apakah sebuah masukan dapat diterima oleh bahasanya (w L(A)). Non deterministik di sini tidak ada hubungannya dengan sifat acak, melainkan menggambarkan adanya paralelisme. Kita pun akan selalu dapat mentranlasikan setiap NFA menjadi DFA (Determinitic Finite Automata) yang menerima bahasa yang sama. Atau dengan kata lain, setiap masukan yang dapat diterima oleh sebuah NFA dapat juga diterima oleh sebuah DFA. Suatu NFA dinyatakan sebagai 5 tuple berikut : A = (Q, , , S, F) Q adalah himpunan terhingga dari status adalah himbungan terhingga dari simbol input Q (Q) adalah fungsi transisi S Q adalah himpunan status awal F adalah himpunan status akhir Berikut ini adalah contoh dari sebuah NFA C yang menerima semua kata masukan dengan = {0, 1} dimana simbol sebelum simbol terakhir harus berupa simbol 1. 0,1 1 q1 0,1

Start

q0

q2

C = ({q0, q1, q2}, {0, 1}, C, {q0}, {q2}) dimana C merupakan fungsi transisi yang dinyatakan oleh

C
q0 q1 * q2 yaitu :

0 {q0} {q2} {}

1 {q0, q1} {q2} {}

(q0, 0) = {q0} (q0, 1) = {q0, q1} (q1, 0) = {q2} (q1, 1) = {q2} (q2, 0) = {} (q2, 1) = {}
1

Untuk melihat apakah suatu kata w * diterima oleh sebuah NFA (w L(A)) kita harus menggunakan beberapa buah penanda. Awalnya kita menempatkan sebuah penanda pada status awal. Kemudian setiap kali membaca sebuah simbol, kita lihat pada semua penanda yang ada: kita hapus semua penanda lama dan kita tempatkan penanda baru pada semua status yang bisa dicapai melalui panah bertuliskan simbol input (bisa jadi status tersebut pernah ditandai juga sebelumnya). Ada kalanya terjadi bahwa semua penanda bisa hilang karena tidak ada panah yang tersedia. Pada kasus ini, kata masukan tidak diterima. Jika pada akhir kata, ada salah satu status akhir yang mempunyai penanda, maka kata tersebut diterima. Sebagai contoh, kita gunakan kata 110 (yang diterima oleh C). Awalnya kita menandai status awal (q0) :

Setelah membaca simbol pertama (1), kita harus menggunakan dua penanda karena ada dua panah dari q0 yang bertuliskan simbol 1, yaitu menuju q0 dan q1.

Sekarang, setelah membaca simbol kedua (1), kita menjadi memiliki tiga penanda, dimana salah satunya terletak pada status akhir (q2).

Setelah membaca simbol terkahir (0), kita menghapus penanda dari q1, karena tidak ada panah dari q1 yang bertuliskan simbol 0.

Pada kondisi akhir ini, kita memiliki dua status yang diberi penanda, dimana salah satunya satunya terletak pada status akhir (q2), sehingga kata 110 dapat diterima oleh C.

Anda mungkin juga menyukai