Anda di halaman 1dari 20

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


Sifat NDFA

NDFA memiliki kemampuan untuk berada di lebih dari 1 state


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

Teori Komputasi | CSG3D3


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, di mana ada
minimal satu state NDFA, yang pada saat menerima suatu simbol,
berpindah ke nol atau lebih dari satu state yang lain

Teori Komputasi | CSG3D3


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

Teori Komputasi | CSG3D3


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

Teori Komputasi | CSG3D3


Definisi Formal NDFA [2]

Pada kasus di atas dapat didefinisikan :


({q0, q1, q2}, {0, 1}, , q0, {q2})
dan dideskripsikan sebagai berikut.

0 1
q0 {q0, q1} {q0}

q1 {} {q2}
q2 {} {}

Teori Komputasi | CSG3D3


Fungsi Transisi yang Diperluas

Fungsi tansisi yang ada di definisi formal dapat diperluas


menjadi bentuk yang menerima beberapa input sekaligus
(Ullman).
Perluasan aturan transisi itu terangkum dalam :
1. (q0, ) = {q0}
2. (q0, 0) = {q0, q1}
3. (q0, 00) = ({q0, q1}, 0)
(q0, 00) = (q0, 0) (q1, 0) = {q0, q1} {} = {q0, q1}
4. (q0, 001) =
5. (q0, 0010) =

Teori Komputasi | CSG3D3


Bahasa dari NDFA

Jika A = (Q, , , q0, F) adalah NDFA, maka


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

Teori Komputasi | CSG3D3


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

Teori Komputasi | CSG3D3


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

Teori Komputasi | CSG3D3


Ekivalensi NDFA dengan DFA [3]

Dari definisi dan langkah-


langkah di atas, kita
dapatkan aturan transisi
sebagai berikut.
0 1 0 1
{} {} {} A A A
{q0} {q0, q1} {q0} B E B
{q1} {} {q2} C A D
{q2} {} {} D A A
{q0, q1} {q0, q1} {q0, q2} E E F
{q0, q2} {q0, q1} {q0} F E B
{q1, q2} {} {q2} G A D
{q0, q1, q2} {q0, q1} {q0, q2} H E F

Teori Komputasi | CSG3D3


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

0 1

{q0} {q0, q1} {q0}

{q0, q1} {q0, q1} {q0, q2}

{q0, q2} {q0, q1} {q0}

Teori Komputasi | CSG3D3


Ekivalensi NDFA dengan DFA [5]

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


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

1 0

0 1
B E F

0
1

Teori Komputasi | CSG3D3


Latihan 1

Cari DFA yang ekivalen dengan NDFA yang menerima string


biner berakhiran 010 berikut ini dengan cara Lazy Evaluation.

0
1
0 1 0
q0 q1 q2 q3

Teori Komputasi | CSG3D3


Latihan 2

Ubah NDFA berikut menjadi DFA yang ekivalen menggunakan


cara Lazy Evaluation.

r
0 1
0
0 1
p q t
0
0, 1
s

Teori Komputasi | CSG3D3


Latihan 3

Yang menjadi pembeda antara Deterministic dan Non-


Deterministic FA adalah
a. Ada/tidak transisi epsilon
b. Fully Defined
c. Ambigu / tidak dalam menentukan next state
d. a, b, dan c benar
e. b, dan c benar

Teori Komputasi | CSG3D3


Latihan 4

Jika kita memiliki mesin seperti gambar di bawah, maka pada


saat kita definisikan sebagai tupple (Q, , , q0, F) akan kita
dapatkan:
a. Q : {q0, q1, q2}
b. : {0, 1}
c. q0 sebagai initial state
d. q2 sebagai final state
e. semua jawaban benar

Teori Komputasi | CSG3D3

Anda mungkin juga menyukai