CSG3D3 | Teori Komputasi

Non-Deterministic Finite Automata

Agung Toto Wibowo
Ahmad Suryan
Yanti Rusmawati
Mahmud Dwi Sulistiyo
Kurniawan Nur Ramadhani
Said Al Faraby
Dede Rohidin

KK Intelligence, Computing, and Multimedia

Finite Automata
Finite Automata (FA) :
– Suatu model komputer dengan jumlah memory yang sangat terbatas.
– Model komputasional yang paling sederhana.
Ada 2 jenis :
– Deterministik Finite Automata (DFA)


“Deterministik” setiap input alphabet/simbol dari suatu state hanya akan
bertransisi ke satu state lain.

Atau dengan kata lain, “deterministik” berarti tidak ambigu dalam
menentukan next state.
– Non-Deterministik Finite Automata (NDFA)


“Non-Deterministrik” setiap input alphabet/simbol dari suatu state
mungkin akan bertransisi ke lebih dari satu state lain.

Teori Komputasi | CSG3D3

Contoh Non-Deterministic FA Mesin di bawah adalah mesin (NFA) untuk mengenali string biner yang selalu diakhiri 01. . Lihat bahwa. dari state q0 akan muncul kerancuan atau keambiguan jika menerima input 0 (akan ke q0 atau q1).

Teori Komputasi | CSG3D3 .

NDFA menerima secara tepat bahasa Reguler. Hal ini dikarenaakan NDFA dan DFA berada pada kelas bahasa yang sama (Lihat hirarki Chomsky). NDFA selalu menerima bahasa yang di terima oleh DFA.Sifat NDFA NDFA memiliki kemampuan untuk berada di lebih dari 1 state pada saat yang bersamaan. .  NDFA sering kali lebih ringkas dibanding DFA karena tidak harus fully defined. Sebagaimana DFA.

Teori Komputasi | CSG3D3 .

berpindah ke nol atau lebih dari satu state yang lain . yang pada saat menerima suatu simbol. di mana ada minimal satu state NDFA.Definisi Informal NDFA Terdiri dari finite number of state(s) Satu initial state. minimal satu final state Terdiri dari finite symbol (alphabet) Himpunan fungsi transisi  Perbedaan NDFA dan DFA terletak pada aturan transisi.

Teori Komputasi | CSG3D3 .

.NDFA sebagai Acceptor Misalnya kita punya mesin NDFA (menerima string berakhiran “01”). bahwa “00101” dapat diterima oleh mesin itu. Lihat proses berikut.

Teori Komputasi | CSG3D3 .

q0  Q adalah initial state 5. : Q x  Q fungsi transisi. dinotasikan ke  (q.Definisi Formal NDFA [1] Suatu NFA dapat didefinisikan secara formal sebagai 5-tuple berikut : A = (Q.  himpunan terbatas dari symbols  3. F  Q adalah himpunan accepted/final states . . q0. F) Keterangan : 1. a) p p adalah himpunan state hasil transisi 4. . Q adalah himpunan terbatas dari states 2.

Teori Komputasi | CSG3D3 .

.Definisi Formal NDFA [2] Pada kasus di atas dapat didefinisikan : ({q0. 0 1 q0 {q0. q1} {q0} q1 {} {q2} q {} {} 2 . 1}. q2}. {q2}) dan  dideskripsikan sebagai berikut. q1. q0. {0.

Teori Komputasi | CSG3D3 .

0) ’ (q0. q1} 4. ’ (q0. 001) = … 5. ’ (q0. 0010) = … .Fungsi Transisi yang Diperluas Fungsi tansisi yang ada di definisi formal dapat diperluas menjadi bentuk yang menerima beberapa input sekaligus (Ullman). ’ (q0. Perluasan aturan transisi itu terangkum dalam : 1. q1}. ’ (q0. 00) = ’ ({q0. q1}  {} = {q0. q1} 3. 0) = {q0. 0) = {q0. λ) = {q0} 2. 00) = ’ (q0. ’ (q0. 0)  ’ (q1.

Teori Komputasi | CSG3D3 .

F) adalah NDFA. . untuk mengecek apakah suatu string dapat diterima atau tidak oleh sebuah NDFA. kita juga dapat menggunakan metode aturan transisi yang diperluas ini. . maka L(A) = { w | ’ (q0. w)  F ≠ {} } Sehingga L(A) adalah himpunan untaian string w dari * sehingga ’ (q0.Bahasa dari NDFA Jika A = (Q. dapat kita ambil kesimpulan bahwa. q0. w) memuat sedikitnya satu final/accepted state. Dari sini. .

Teori Komputasi | CSG3D3 .

n Di kasus yang paling buruk. Ada fakta mengejutkan bahwa untuk setiap NDFA yang dibangun. Jumlah state pada DFA yang ekivalen tsb. . minimal sama dengan yang dimiliki NDFA. kita lebih mudah membangun NDFA daripada DFA.Ekivalensi NDFA dengan DFA [1] Pada banyak bahasa. selalu bisa dideskripsikan bentuk DFA yang ekivalen dengannya. jumlah state DFA-nya adalah 2 dari n state di NDFA.

Teori Komputasi | CSG3D3 .

D. di mana hasil transisi dari setiap fungsi transisi NDFA merupakan himpunan states.Ekivalensi NDFA dengan DFA [2] Jika kita memiliki NDFA N = (QN. N. dapat diartikan sebagai sebuah power set dari himpunan states di NDFA. FD adalah seluruh subset QN yang mengandung setidaknya satu accepted state pada N (FN). QD adalah powerset dari Q N sehingga jumlah state QD adalah n 2 jika kita memiliki n state di QN (kadang tidak semua state di pakai). . q0. FD) Perhatikan kembali definisi formal dari NDFA. Maka semua kemungkinan himpunan tsb. FN). . . maka kita dapat membangun L(D) = L(N). dengan DFA D = (QD. {q0}.

Teori Komputasi | CSG3D3 .

.Ekivalensi NDFA dengan DFA [3] Dari definisi dan langkah-langkah di atas. kita dapatkan aturan transisi sebagai berikut.

q1} {q0} B E B {q1} {} {q2} C A D {q2} {} {} D A A {q0. q2} E E F {q0. q2} {} {q2} G A D {q0. q1. q1} {q0. q2} {q0. q1} {q0. 0 1 0 1 {} {} {} A A A {q0} {q0. q2} {q0. q1} {q0. q2} H E F . q1} {q0} F E B {q1.

Teori Komputasi | CSG3D3 .

ternyata jika ditelusuri dari initial state. E. Untuk menghindari pembuatan transisi yang tidak pernah dicapai. q2} {q0. q1} {q0} .  Lazy Evaluation hanya men-generate subset state yang muncul dengan menelusuri mulai dari initial state. hanya ada 3 states saja yang bisa di capai. q2} {q0.Ekivalensi NDFA dengan DFA [4] Dari semua states yang didapat. q1} {q0} {q0. q1} {q0. yakni B. proses ekivalensi ini dapat dilakukan dengan cara “Lazy Evaluation”. q1} {q0. 0 1 {q0} {q0. dan F.

Teori Komputasi | CSG3D3 .

0) = {q0. q1}. q1}. q2}. dan ’ ({q0}. q2} ’ ({q0. q2}. q1}. dan ’ ({q0. dan ’ ({q0. 0) = {q0. 0) = {q0. 1) = {q0 . 1) = {q0} ’ ({q0. q1}. q1}.Ekivalensi NDFA dengan DFA [5] ’ ({q0}. 1) = {q0} 1 0 B 0 E 1 F 0 1 .

Teori Komputasi | CSG3D3 .

0 1 q0 0 q1 1 q2 0 q3 .Latihan 1 Cari DFA yang ekivalen dengan NDFA yang menerima string biner berakhiran “010” berikut ini dengan cara Lazy Evaluation.

Teori Komputasi | CSG3D3 .

0 r 0 1 0 p 0 q 1 t 0. 1 0 s .Latihan 2 Ubah NDFA berikut menjadi DFA yang ekivalen menggunakan cara Lazy Evaluation.

Teori Komputasi | CSG3D3 .

a.Latihan 3 Yang menjadi pembeda antara Deterministic dan Non- Deterministic FA adalah a. Fully Defined c. b. Ada/tidak transisi epsilon b. dan c benar . b. Ambigu / tidak dalam menentukan next state d. dan c benar e.

Teori Komputasi | CSG3D3 .

. q0 sebagai initial state d. semua jawaban benar .  : {0. q2} b. q0. Q : {q0. . q2 sebagai final state e. 1} c. F) akan kita dapatkan: a.Latihan 4 Jika kita memiliki mesin seperti gambar di bawah. q1. maka pada saat kita definisikan sebagai tupple (Q.

.

Teori Komputasi | CSG3D3 .