OTOMATA DAN TEORI BAHASA 8
Materi : Mesin Moore Mesin Mealy Perbandingan
Mesin moore FSA (Finite State Automata) yang telah dipelajari adalah FSA yang hanya dapat menerima atau menolak string yang di inputkan String “aaabb” diterima atau tidak FSA seperti itu disebut ACCEPTER
Mesin moore A B C D b a String aa dan ba diterima oleh FSA tersebut, sedangkan string yang lain ditolak
Mesin moore FSA (Finite State Automata) yang mempunyai keputusan sebagai output, Automata ini disebut TRANSDUCER Salah satu contoh FSA yang termasuk Transducer atau FSA yang mempunyai output adalah Mesin MOORE
Sehingga Jumlah State sama dengan jumlah Output Mesin moore Pada Mesin Moore outputnya berasosiasi dengan state, atau tertulis pada setiap state Sehingga Jumlah State sama dengan jumlah Output
Mesin moore M={Q,, , S, , } Q : Himpunan State : Himpunan Input : Fungsi Transisi S : Simbol State Awal : Himpunan Output : Fungsi Output untuk setiap state Komponen final state dari DFA dihilangkan, karena disini keputusan dimunculkan sebagai output Komponen final state dari DFA dihilangkan, karena disini keputusan dimunculkan sebagai output
Mesin moore Salah satu contoh penerapan mesin Moore adalah mesin untuk memperoleh sisa pembagian atau n MOD m Contoh : Mesin Moore untuk menentukan n mod 2 dengan inputan berupa biner
Mesin moore n mod 2 diinisialisasikan n mod m, jadi m = 2 Isi kolom desimal dengan ketentuan m x 2 = 2 x 2 = 4, jadi ada 4 desimal dan dimulai dari 0 Desimal Desimal Modulo 2 Output State Biner 8 4 2 1 Transisi 1 2 3
Mesin moore Isi kolom desimal modulo m atau desimal modulo 2 1 2 3 n mod 2 Mesin moore Isi kolom desimal modulo m atau desimal modulo 2 Desimal Desimal Modulo 2 Output State Biner 8 4 2 1 Transisi 1 2 3
n mod 2 Mesin moore Isi kolom output state secara berurutan dan bergantian, bisa A B A B atau q0 q1 q0 q1 (tergantung hasil jenis desimal modulo 2) Desimal Desimal Modulo 2 Output State Biner 8 4 2 1 Transisi q0 1 q1 2 3
Mesin moore Isi kolom biner dengan konversi kolom desimal ke biner q0 n mod 2 Mesin moore Isi kolom biner dengan konversi kolom desimal ke biner Desimal Desimal Modulo 2 Output State Biner 8 4 2 1 Transisi q0 0000 1 q1 0001 2 0010 3 0011
Mesin moore Isi kolom transisi n mod 2 Mesin moore Isi kolom transisi Karena desimal ada 4 dan ouput ada 2, maka dibagi 2 bagian Desimal Desimal Modulo 2 Output State Biner 8 4 2 1 Transisi q0 0000 (q0,0) = q0 1 q1 0001 (q0,1) = q1 2 0010 (q1,0) = q0 3 0011 (q1,1) = q1 q0 q1
Mesin moore Sehingga didapat : M={Q,, , S, , } n mod 2 Mesin moore Sehingga didapat : M={Q,, , S, , } Q = {q0, q1} kolom ouput state = {0,1} input berupa biner, maka 0 1 = (q0,0)=q0, (q0,1)=q1, (q1,0)=q0, (q1,1)=q1 kolom transisi S = q0 kolom output state yang pertama = {0,1} kolom hasil modulo m = (q0) = 0, (q1) = 1 kolom hasil modulo m dan output state
Mesin moore q0/0 q1/1 = (q0,0)=q0, (q0,1)=q1, (q1,0)=q0, (q1,1)=q1 n mod 2 Mesin moore = (q0,0)=q0, (q0,1)=q1, (q1,0)=q0, (q1,1)=q1 kolom transisi = (q0) = 0, (q1) = 1 kolom hasil modulo m dan output state q0/0 q1/1 1
n mod 2 Mesin moore Test : 7 Mod 2 = 1 7 binernya 0111 (q0, 0111) = (q0, 111) = (q1, 11) = (q1, 1) = q1 = 1 q0/0 q1/1 1
n mod 2 Mesin moore Test : 10 Mod 2 = 0 10 binernya 1010 (q0, 1010) = (q1, 010) = (q0, 10) = (q1, 0) = q0 = 0 q0/0 q1/1 1
Mesin moore Contoh 2 : Buatlah mesin Moore untuk menentukan n mod 3
Mesin moore n mod 3 diinisialisasikan n mod m, jadi m = 3 Isi kolom desimal dengan ketentuan m x 2 = 3 x 2 = 6, jadi ada 6 desimal dan dimulai dari 0 Desimal Desimal Modulo 2 Output State Biner 8 4 2 1 Transisi 1 2 3 4 5
Mesin moore Isi kolom desimal modulo m atau desimal modulo 3 Desimal n mod 3 Mesin moore Isi kolom desimal modulo m atau desimal modulo 3 Desimal Desimal Modulo 3 Output State Biner 8 4 2 1 Transisi 1 2 3 4 5
n mod 3 Mesin moore Isi kolom output state secara berurutan dan bergantian, bisa A B C A B C atau q0 q1 q3 q0 q1 q3 (tergantung hasil jenis desimal modulo 3) Desimal Desimal Modulo 3 Output State Biner 8 4 2 1 Transisi q0 1 q1 2 q2 3 4 5
Mesin moore Isi kolom biner dengan konversi kolom desimal ke biner n mod 3 Mesin moore Isi kolom biner dengan konversi kolom desimal ke biner Desimal Desimal Modulo 3 Output State Biner 8 4 2 1 Transisi q0 0000 1 q1 0001 2 q2 0010 3 0011 4 0100 5 0101
Mesin moore Isi kolom transisi n mod 3 Mesin moore Isi kolom transisi Karena desimal ada 6 dan ouput ada 3, maka dibagi 2 bagian Desimal Desimal Modulo 3 Output State Biner 8 4 2 1 Transisi q0 0000 (q0,0) = q0 1 q1 0001 (q0,1) = q1 2 q2 0010 (q1,0) = q2 3 0011 (q1,1) = q0 4 0100 (q2,0) = q1 5 0101 (q2,1) = q2 q0 q1 q2
Mesin moore Sehingga didapat : M={Q,, , S, , } n mod 3 Mesin moore Sehingga didapat : M={Q,, , S, , } Q = {q0, q1, q2} kolom ouput state = {0,1} input berupa biner, maka 0 1 = (q0,0)=q0, (q0,1)=q1, (q1,0)=q2, (q1,1)=q0, (q2,0)=q1, (q2,1)=q2 kolom transisi S = q0 kolom output state yang pertama = {0,1,2} kolom hasil modulo m = (q0) = 0, (q1) = 1 (q2) = 2 kolom hasil modulo m dan output state
n mod 3 Mesin moore = (q0,0)=q0, (q0,1)=q1, (q1,0)=q2, (q1,1)=q0, (q2,0)=q1, (q2,1)=q2 kolom transisi = (q0) = 0, (q1) = 1, (q2) = 2 kolom hasil modulo m dan output state
n mod 3 Mesin moore Test : 12 Mod 3 = 0 12 binernya 1100 (q0, 1100) = (q1, 100) = (q0, 00) = (q0, 0) = q0 = 0
n mod 3 Mesin moore Test : 14 Mod 3 = 2 14 binernya 1110 (q0, 1110) = (q1,110) = (q0, 10) = (q1, 0) = q2 = 2
Mesin moore Tugas : Buatlah mesin Moore untuk menentukan n mod 4 dan n mod 5 Tulis tabel, rumus M, dan FSA, lalu cek 2x serta eqivalensi ke mesin Mealy Kerjakan sendiri!
Mesin mealy Mesin Mealy 6 tupel, yaitu : M={Q,, , S, , } Q : Himpunan State : Himpunan Simbol Input : Fungsi Transisi S : Simbol State Awal : Himpunan Output : Fungsi Output untuk setiap transisi
Mesin mealy Pada Mesin Moore Output berasosiasi dengan State, tetapi pada Mesin Mealy output berasosiasi dengan transisi, sehingga dalam fungsi output : (State,Input)=Output Tidak ada aturan yang jelas dalam membentuk graph transisinya
Eqi Mesin moore ke mealy Eqivalensi mesin Moore ke mesin Mealy adalah merubah mesin Moore menjadi mesin Mealy dengan kemampuan yang sama Caranya : 1. menghapus label Output pada setiap state 2. menambahkan label Output pada setiap Input Tidak semua mesin mealy dapat dikonversi menjadi mesin moore yang setara. Tidak semua lintasan sekuensial dapat diimplementasikan menggunakan mesin mealy, beberapa hanya bias diimplementasikan menjadi mesin moore
Eqi Mesin moore ke mealy Moore Mealy (q1)=1 FO (q1,1)=1 (q1,1)=q1 FT (q1,1)=q1 1 1/1 q1/1 q1
Eqi Mesin moore ke mealy Moore Mealy (q0)=0, (q1)=1 (q0,1)=1 (q0,1)=q1 (q0,1)=q1 q0 q1/0 1/1 1 q1 q1/1
Eqi Mesin moore ke mealy n mod 2 Eqi Mesin moore ke mealy Contoh : Diketahui Mesin Moore n Mod 2, Buat mesin Mealy yang eqivalen q0/0 q1/1 1
Eqi Mesin moore ke mealy n mod 2 Eqi Mesin moore ke mealy Dari graph transisi ini Diketahui : (q0,0)=0 Mesin Mealy yang Eqivalen (q0,1)=1 (q1,0)=0 (q1,1)=1 q0/0 q1/1 1 q0 q1 1/1 0/0
Eqi Mesin moore ke mealy n mod 3 Eqi Mesin moore ke mealy Contoh : Diketahui Mesin Moore n Mod 3, Buat mesin Mealy yang eqivalen
Eqi Mesin moore ke mealy n mod 3 Eqi Mesin moore ke mealy Dari graph transisi ini Diketahui : (q0,0)=0, (q0,1)=1, (q1,0)=2, (q1,1)=0 , (q2,0)=1, (q2,1)=2 Mesin Mealy yang Eqivalen 0/0 1/1 0/2 1/2 q0 q1 q2 1/0 0/1
Perbandingan Mesin Moore Mesin Mealy Setiap dinyatakan sebagai nilai output Setiap transisi dinyatakan sebagai nilai output Output berubah pada suatu siklus Perubahan input dapat langsung merubah output(mesin menjadi tidak sinkron) Memerlukan beberapa logika pada state untuk menjadi output Bereaksi lebih cepat pada input
TERIMAKASIH