Deterministic Finite Automata - Telkom...

26
CSG3D3 | Teori Komputasi Agung Toto Wibowo Ahmad Suryan Yanti Rusmawati Mahmud Dwi Sulistiyo Kurniawan Nur Ramadhani Said Al Faraby Dede Rohidin KK Intelligence, Computing, and Multimedia Deterministic Finite Automata

Transcript of Deterministic Finite Automata - Telkom...

Page 1: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

CSG3D3 | Teori Komputasi

Agung Toto Wibowo

Ahmad Suryan

Yanti Rusmawati

Mahmud Dwi Sulistiyo

Kurniawan Nur Ramadhani

Said Al Faraby

Dede Rohidin

KK Intelligence, Computing, and Multimedia

Deterministic Finite Automata

Page 2: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

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.

Page 3: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Contoh Deterministic FA

Mesin Genap di pertemuan sebelumnya (catatan: 0 adalah genap).

Lihat bahwa dari q0, tidak ada kerancuan jika menerima input 0 (akan ke q1), dan sebagainya.

Page 4: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

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

Page 5: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Ilustrasi Mesin DFA

Input Tape

Arah PergerakanHead

State Indicator

1

4 2

3

Page 6: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Definisi DFA [1]

Mesin automata yang terdiri dari finite number of state.

Salah satu state sebagai intitial state.

Minimal satu state menjadi accepted/final state.

Mesin akan menerima input stream berupa simbol/alphabet yang akan diproses secara sekuensial.

Mesin akan berubah dari state satu ke state yang lain berdasarkan simbol input dan current state.

Page 7: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Definisi DFA [2]

Deterministic mesin tidak diperkenankan ambigu.

Finite menyatakan fakta bahwa mesin terdiri dari state yang jumlahnya finite (terbatas).

Esensi DFA adalah string recognizer (menerima atau menolak sebuah string) berdasarkan definisi bahasa dari DFA tersebut.

DFA juga dimungkinkan dapat menerima string kosong. Jika hal ini terjadi, maka initial state juga merupakan accepted state.

Page 8: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Definisi Formal DFA

Sebuah finite automata didefinisikan dalam

5-tuple (Q, , , q0, F) di mana

1. Q adalah himpunan terbatas dari states,

2. himpunan terbatas alphabet,

3. : Q × Q fungsi transisi, dinotasikan dengan (q,a) p

4. q0 Q adalah start state, dan

5. F Q adalah himpunan accept states (atau final states).

Page 9: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Contoh :

Deskripsi formal dari M1 dapat kita tulis sebagai

1. M1 = (Q, , , q1, F)

2. Q = {q1, q2, q3}

3. = {0,1}

4. dideskripsikan sebagai

5. q1 adalah start state

6. F = {q2}

0 1

q1 q1 q2

q2

q2 q2

q2 q3

q3

1

q1 q3 q2

0 1 0

0,1

Page 10: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Catatan :

Dalam bahasa formal, aturan transisi () dapat pula dinotasikan dengan cara

{

(q1, 0) q1; (q1, 1) q2;

(q2, 0) q3; (q2, 1) q2;

(q3, 0) q2; (q3, 1) q2;

}

1

q1 q3 q2

0 1 0

0,1

Page 11: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Syarat sebuah STD dikatakan Deterministic

Harus ada tepat 1 initial state.

Minimal 1 final state.

Dari setiap state, hanya ada satu busur yang meninggalkan state itu untuk setiap simbol dalam alphabet (menghindari ambigu).

untuk setiap simbol yang dibaca hanya ada 1 next state

Harus Fully Defined di setiap state harus mendefinisikan secara pasti setiap kemungkinan simbol dari alphabet yang muncul (menghindari no transition applicable).

Page 12: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Lihat kembali STD berikut!!

Dari pertemuan sebelumnya, apakah mesin float kita ini termasuk deterministic FA???

Jika tidak, apa yang membuatnya tidak termasuk deterministic FA??

Page 13: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Mengubah STD menjadi Deterministic

Berikut langkah-langkah mengubah suatu STD, yang belum deterministic dikarenakan belum fully defined, menjadi Deterministic FA

1. Tambahkan satu state baru, misalnya qx

2. Gambar busur dari qx ke dirinya sendiri (ke qx juga) dengan label semua simbol di alphabet.

3. Tambahkan busur dari states lainnya yang belum fully defined ke qx, dengan label simbol yang belum ada transisinya.

Page 14: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Contoh mengubah STD ke DFA [1]

Kita tambahkan state baru q8

q8

q3

q6

q5

q2

q1

q8 q7

q8 q4

digit

+ -

E

,E

digit

digit

digit

digit

digit

digit

digit E + - ,

Page 15: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Contoh mengubah STD ke DFA [2]

Untuk setiap simbol di alphabet hubungkan busur dari dan ke q8 (dengan label semua simbol)

q8

q3

q6

q5

q2

q1

q8 q7

q8 q4

digit

+ -

E

,E

digit

digit

digit

digit

digit

digit

digit E + - ,

Page 16: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Contoh mengubah STD ke DFA [3]

Tambahkan busur dari state lain yang belum fully defined ke state q8, sehingga menjadi fully defined

q8

q3

q6

q5

q2

q1

q8 q7

q8 q4

digit

+ -

E

,E

digit

digit

digit

digit

digit

digit

digit E + - ,

E + - ,E + - ,

E ,+ - ,

E + - ,

+ -

E + - ,

Page 17: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Latihan

Lihat Buku 1 hal 36 no 2.

Ubah STD berikut sehingga menjadi DFA yang ekivalen!

Catatan: = {a,b}

q3q2q1q0a ab

b

Page 18: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Latihan

Diketahui L = {100, 000, 001, 010}

Buatkan DFA yang menerima bahasa L di atas!

–STD yang hanya menerima string di dalam himpunan/bahasa L.

Page 19: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Language dari Mesin DFA [1]

Kita akan menyebut himpunan string yang dapat diterima oleh suatu DFA sebagai suatu “language” dari DFA tersebut.

Sebagai contoh, perhatikan STD berikut.

A adalah himpunan semua string yang diterima oleh mesin M. Oleh sebab itu, A adalah language dari mesin M (dinotasikan dengan L(M) = A).

Page 20: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Language dari Mesin DFA [2]

Secara harfiah, language dari Bahasa Indonesia adalah kalimat yang dapat disusun oleh grammer bahasa Indonesia. (jumlah kalimatnya tidak terbatas).

Kembali lagi ke definisi bahwa language merupakan himpunan string yang dipilih dari Σ*, maka pada mesin M di gambar, language dari mesin tersebut adalah

L(M) = {0, 00, 10, 000, 010, 100, 110, ..., 0000000, ...}

Page 21: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Tugas Latihan Soal 1

Yang menjadi pembeda antara Deterministic FA 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

Page 22: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Tugas Latihan Soal 2

Jika kita memiliki alphabet = {0, 1}, maka

–Buatkan STD (DFA) yang menerima string biner dengan jumlah kemunculan angka 0 adalah genap.

–Contoh string diterima : λ, 11, 110, 101, 110011, 10101010, dlsb.

Page 23: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Tugas Latihan Soal 3

Jika kita memiliki alphabet = {0, 1}, maka

–Buatkan STD (DFA) yang menerima string biner dengan jumlah kemunculan angka 1 adalah genap.

–Contoh string diterima : λ, 11, 110, 101, 110011, 10101010, dlsb.

Page 24: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Tugas Latihan Soal 4

Jika kita memiliki alphabet = {0, 1}, maka

–Buatkan STD (DFA) yang menerima string biner dengan jumlah kemunculan angka 1 adalah genap dan sekaligus jumlah kemunculan angka 0-nya juga genap.

–Contoh string diterima : λ, 11, 00, 1100, 1010, 0101, 0011, 111100, 101011, dlsb.

Page 25: Deterministic Finite Automata - Telkom Universitycdndata.telkomuniversity.ac.id/pjj/15161/CSG3D3/MDS/COURSE... · “Deterministik” setiap input alphabet/simbol dari suatu state

Teori Komputasi | CSG3D3

Tugas Latihan Soal 5

Jika kita memiliki alphabet = {a, b, c}, maka

–Buatkan STD (DFA) yang menerima string dengan alphabet di atas dengan jumlah kemunculan simbol a adalah genap, b adalah genap, dan c adalah genap.

–Contoh string diterima : λ, aa, bb, aabb, bbcc, aabbcc, aaaaaabbcc, abcaabbca, babacaca, dlsb.