Anda di halaman 1dari 40

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}
q {} {}
2
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.
n
Di kasus yang paling buruk, jumlah state DFA-nya adalah 2
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 Q N sehingga jumlah state QD adalah
n
2 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

B 0 E 1 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
q0 0 q1 1 q2 0 q3
Teori Komputasi | CSG3D3
Latihan 2

Ubah NDFA berikut menjadi DFA yang ekivalen


menggunakan cara Lazy Evaluation.

0
r

0 1
0
p 0 q 1 t

0, 1 0

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