Senin, 10 Juni 2019

LAPORAN KONVERSI MESIN MOORE DAN MESIN MEALY


LAPORAN KONVERSI MESIN MOORE DAN MESIN MEALY
OTOMATA DAN TEORI BAHASA


Disusun Oleh :
Achmad Yuszril Oiszy                        (A11.1027.10209)
Nurul Arifin                                        (A11.2017.10210)
Tri Mega Widyawan                           (A11.2017.10224)
Aprilia Dhammashanti                        (A11.2017.10236)
Moch. Zidni Ilman                              (A11.2017.10615)
Kelompok                                           A11.4410

PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS DIAN NUSWANTORO
TAHUN 2019

MESIN MOORE

Mesin moore adalah finite-state machine yang nilai outputnya ditentukan berdasarkan statenya.
Mesin Moore dinamai Edward F. Moore, yang mempresentasikan konsep itu dalam sebuah makalah tahun 1956, "Gedanken-experiments on Sequential Machines"
Diagram Mesin Moore atau Diagram Moore adalah diagram yang menghubungkan nilai output dengan masing-masing state. 
Mesin moore ditetapkan ke dalam 6 tuple yang terdiri dari:
 -   Himpunan State (S)
 -   State awal  (S0)
 -  Himpunan input  (∑)
 -   Himpunan output  ()
 -   Fungsi Transisi (T)
 -   Fungsi output (G)

MESIN MEALY

Mesin Mealy adalah finite-state machine yang nilai outputnya ditentukan oleh state dan inputnya.
Mesin Mealy adalah deterministic finite-state transducer, untuk setiap keadaan dan masukan, paling banyak satu transisi dimungkinkan. 
Diagram mesin mealy menghubungkan nilai output dengan masing-masing transisi.
Mesin moore ditetapkan ke dalam 6 tuple yang terdiri dari:
-   Himpunan State (S)
-   State awal  (S0)
-  Himpunan input  (∑)
-   Himpunan output  ()
-   Fungsi Transisi (T)
-   Fungsi output (G)


HUBUNGAN ANTARA MESIN MOORE DAN MESIN MEALY
   
Karena keduanya adalah sebuah finite-state machine, keduanya dapat digunakan untuk membaca bahasa regular.
Semua Mesin Moore setara dengan Mesin Mealy dengan state, transisi, dan output yang sama.
Namun, tidak semua Mesin Mealy dapat dikonversi menjadi Mesin Moore yang setara. Beberapa dapat dikonversi menjadi Mesin Moore yang hampir setara, dengan output yang bergeser dalam satu waktu.
Hal ini disebabkan oleh cara state dihubungkan dengan transisi untuk membentuk input dan output.
Perlu diketahui bahwa tidak semua lintasan sekuensial dapat diimplementasikan menggunakan Mesin Mealy, beberapa hanya bisa diimplementasikan menjadi mesin moore.
Perbedaannya adalah :
1.      Pada Mesin Moore, setiap state dinyatakan sebagai nilai output
2.      Pada Mesin Mealy, setiap transisi dinyatakan sebagai nilai output

Perbandingan Mesin Moore dan Mesin Mealy:
1.      Mesin Mealy memiliki state yang lebih sedikit.
2.      Mesin Moore lebih aman digunakan, karena:
                      - Output berubah pada satu siklus.
                      - Pada Mesin Mealy, perubahan input dapat langsung merubah output, hal ini
                        dapat menyebabkan 2 mesin yang terhubung menjadi tidak sinkron.
3.      Mesin Mealy bereaksi lebih cepat pada input, karena:
                      - Bereaksi daam satu siklus
                      - Pada Mesin Moore, beberapa logika perlu diproses pada state untuk
                        menjadi output


KONVERSI MESIN MOORE KE MESIN MEALY
TEOREMA:
q  Setiap mesin moore dapat diubah menjadi mesin mealy yang  menghasilkan output yang sama
q  Setiap panah yang menuju suatu state pada mesin moore akan menjadi panah dengan output sama dengan output state pada mesin mealy

Contoh :
 Tentukan konversi mesin moore ke mesin mealy

JAWAB
Buat tabel transisinya dahulu
Present State
Next State

Output

0
1

-> q0
q3
q1
1
q1
q0
q3
0
q2
q2
q2
0
q3
q1
q0
1

1.      Pertama-tama ambil format table transisi mesin moore
2.      Untuk mencari output kita lihat contoh pada q0 ke q3 adalah 1 (dan seterusnya)
3.      Sehingga didapat hasil seperti dibawah ini
Present State
Next State




0

1


State
Output
State
Output
->q0
q3
1
q1
0
q1
q0
1
q3
1
q2
q2
0
q2
0
q3
q1
0
q0
1

Sehingga diagram statenya menjadi :


KONVERSI MESIN MEALY KE MESIN MOORE
TEOREMA:
q  Setiap mesin mealy dapat diubah menjadi mesin moore yang akan menghasilkan output yang sama.
q  Jika panah yang masuk sebuah state memiliki input yang sama (pada mesin moore).

q  Jika panah yang masuk sebuah state memiliki input yang berbeda (pada mesin moore).

q  Jika panah yang masuk sebuah state memiliki input yang berbeda dan salah satunya adalah panah looping (pada mesin moore).

Contoh :
Tentukan konversi mesin mealy ke mesin moore
Present State
Next State




0

1


State
output
State
Output
-> q0
q3
0
q1
1
q1
q0
1
q3
0
q2
q2
1
q2
0
q3
q1
0
q0
1

 
Jawab  :
Mealy
Present State
Next State




0

1


State
output
State
Output
-> q0
q3
0
q1
1
q1
q0
1
q3
0
q2
q2
1
q2
0
q3
q1
0
q0
1
moore
Present State
Next State





0

1


State
Output
State
Output
-> q0
q3
0
q1
1
q10
q0
1
q3
0
q11
q0
1
q3
0
q20
q2
1
q2
0
q21
q2
1
q2
0
q3
q1
0
q0
1
                                                                                                                                                                                                                                                                                                                                                               










q  Cek state pada next state, jika output berbeda maka dibagi menjadi dua bagian.
1.      Cek state q0, outputnya sama bernilai 0 maka tidak dibagi dua bagian
2.      Cek state q1, outputnya bernilai 0 dan 1 maka dibagi dua bagian menjadi q00 dan q01
3.      Cek state q2, outputnya bernilai 0 dan 1 maka dibagi dua bagian menjadi q00 dan q01
4.      Untuk menentukan output pada moore kita harus cek next state pada tabel mealy
LATIHAN SOAL

1.       Diketahui Mesin Moore tentukan mesin Mealy yang eqivalen






Jawab :
Moore                                                                                    
Present State
Next State




0

1


State
Output
State
Output
B
A
0
B
1







mealy

Present State
0
1
Output
A
A
B
0
B
A
B
1










Diagram state menjadi :


2.       Diketahui Mesin Mealy tentukan mesin Moore yang eqivalen


Jawab  :
Mealy                                                 
Present State
Next State




a

b


state
output
state
Output
->S0
S1
0
S30
0
S1
S31
1
S2
1
S2
S30
0
S31
1
S30
S31
1
S0
1
S31
S31
1
S0
1










Moore
Present State
Next State



a
b
Output
->S0
S1
S30
1
S1
S31
S2
0
S2
S30
S31
1
S30
S31
S0
0
S31
S31
S0
1









Diagram statenya menjadi :


3.       Diketahui Mesin Mealy tentukan mesin Moore yang eqivalen

Jawab :
Mealy
Present State
Next State




0

1


state
output
state
Output
->A
A
0
B
1
B
C
2
A
0
C
B
1
C
2








Moore
Present State
Next State

Output

0
1

->A
A
B
0
B
C
A
1
C
B
C
2







Sehingga diagram statenya menjadi :



4.       Diketahui Mesin Moore tentukan mesin Mealy yang eqivalen


Jawab
Moore                                                                                                 
Present State
Next State

Output

a
b

->S0
S1
S0
0
S1
S2
S0
0
S2
S2
S3
0
S3
S1
S0
1








mealy
Present State
Next State


Output

a

b


state
output
state
output
->S0
S1
0
S0
0
S1
S2
0
S0
0
S2
S2
0
S3
0
S3
S1
0
S0
1









Sehingga diagram statenya menjadi

5.       Misalkan ada mesin Mealy, ubah ke dalam mesin Moore

Jawab

Mealy                                                                                     
Present State
Next State




0

1


state
output
state
Output
->A
A
0
B
1
B
A
0
B
1







moore
Present State
Next State

Output

0
1

->A
A
B
0
B
A
B
1






Sehingga diagram statenya menjadi

6.       Diketahui Mesin Moore tentukan mesin Mealy yang eqivalen


Jawab

Moore
Present State
Next State

Output

a
b

->S0
S1
S3
1
S1
S3
S1
0
S2
S0
S3
0
S3
S3
S2
1
                                                                          









mealy
Present State
Next State




0

1


state
output
state
Output
->S0
S1
0
S3
1
S1
S3
1
S1
0
S2
S0
1
S3
1
S3
S3
1
S2
0












Sehingga diagram statenya menjadi :

1.       Diketahui Mesin Moore tentukan mesin Maely yang eqivalen


Jawab :
Moore  
Present State
Next State

Output

a
b

->S0
S1
S3
1
S1
S3
S1
0
S2
S0
S3
0
S3
S3
S2
1

mealy

Present State
Next State




0

1


state
output
state
Output
->S0
S1
0
S3
1
S1
S3
1
S1
0
S2
S0
1
S3
1
S3
S3
1
S2
0
                                                                                                                                               
                 








Sehingga diagram statenya menjadi


7.