materi

Chapter 6: Finite Automata dengan Output (Mesin Moore dan Mesin Mealy)

Konsep & Pembahasan Terperinci

1. Dua Perbedaan Fundamental Moore vs Mealy

ParameterMesin MooreMesin Mealy
Penempatan OutputBerada di dalam setiap state (asosiasi state murni)Berada di setiap cabang transisi (asosiasi pasangan state & input)
Panjang Outputwout=win+1|w_{\text{out}}| = |w_{\text{in}}| + 1wout=win|w_{\text{out}}| = |w_{\text{in}}|
Pemicu OutputBergantung hanya pada state saat iniBergantung pada state saat ini DAN simbol input yang dibaca
Output AwalMengeluarkan output bawaan state awal q0q_0 sebelum membaca simbol pertamaTidak mengeluarkan output sebelum membaca simbol pertama

2. Definisi Formal Mesin Moore dan Mealy

A. Mesin Moore

Didefinisikan sebagai 5-tuple:

Mo=(Q,Σ,τ,δ,q0)M_o = (Q, \Sigma, \tau, \delta, q_0)
  • QQ : Himpunan berhingga state.

  • Σ\Sigma : Alfabet simbol masukan (input), contoh: {a,b}\{a, b\}.

  • τ\tau : Alfabet simbol keluaran (output), contoh: {0,1}\{0, 1\}.

  • δ\delta : Fungsi transisi state: Q×ΣQQ \times \Sigma \to Q.

  • q0q_0 : State awal (q0Qq_0 \in Q).

(Fungsi output λ\lambda memetakan state langsung ke output: λ:Qτ\lambda : Q \to \tau).

B. Mesin Mealy

Didefinisikan sebagai 5-tuple:

Me=(Q,Σ,τ,δ,q0)M_e = (Q, \Sigma, \tau, \delta, q_0)

Komponen himpunan sama, namun fungsi output menghasilkan simbol keluaran bersamaan dengan transisi:

λ:Q×Στ\lambda : Q \times \Sigma \longrightarrow \tau

Studi Kasus & Tracing Lengkap

1. Mesin Moore 1 (Detektor Pola '101')

  • State: {S0,S1,S2,S3}\{S_0, S_1, S_2, S_3\}, State Awal: q0=S0q_0 = S_0

  • Alfabet Input: Σ={a,b}\Sigma = \{a, b\}, Alfabet Output: τ={0,1}\tau = \{0, 1\}

Tabel Transisi dan Output Moore 1:

State (QQ)Transisi Input aaTransisi Input bbOutput (τ\tau)
S0\to S_0S1S_1S3S_31
S1S_1S3S_3S1S_10
S2S_2S0S_0S3S_30
S3S_3S3S_3S2S_21

Tracing String Masukan w=abaabw = \text{abaab}:

  1. Kondisi Awal: Berada di state S0S_0     \implies Langsung menghasilkan output 1.

  2. Baca simbol a: S0aS1S_0 \xrightarrow{a} S_1     \implies State S1S_1 menghasilkan output 0.

  3. Baca simbol b: S1bS1S_1 \xrightarrow{b} S_1     \implies State S1S_1 menghasilkan output 0.

  4. Baca simbol a: S1aS3S_1 \xrightarrow{a} S_3     \implies State S3S_3 menghasilkan output 1.

  5. Baca simbol a: S3aS3S_3 \xrightarrow{a} S_3     \implies State S3S_3 menghasilkan output 1.

  6. Baca simbol b: S3bS2S_3 \xrightarrow{b} S_2     \implies State S2S_2 menghasilkan output 0.

  • Rangkuman Alur State: S0aS1bS1aS3aS3bS2S_0 \xrightarrow{a} S_1 \xrightarrow{b} S_1 \xrightarrow{a} S_3 \xrightarrow{a} S_3 \xrightarrow{b} S_2

  • Total Output: 100110 (Panjang input =5= 5, Panjang output =6= 6).


2. Mesin Moore 2 (Penghitung Residu Modulo Biner)

Tabel Transisi dan Output Moore 2:

State (QQ)Transisi Input aaTransisi Input bbOutput (τ\tau)
S0\to S_0S1S_1S0S_00
S1S_1S2S_2S0S_00
S2S_2S2S_2S3S_30
S3S_3S1S_1S0S_01

Analisis Semantik Mesin Moore 2: Perhatikan bahwa satu-satunya state dengan output 1 adalah S3S_3. State S3S_3 hanya dapat dicapai melalui urutan lintasan: S0aS1aS2bS3S_0 \xrightarrow{a} S_1 \xrightarrow{a} S_2 \xrightarrow{b} S_3. Artinya mesin ini mendeteksi pola substring aab!

Tracing Masukan Panjang w=abaabbaaabaabw = \text{abaabbaaabaab}:

  • Output yang dihasilkan: 00000100001001 (Panjang input =13= 13, Panjang output =14= 14).

  • Simbol 1 muncul tepat saat akhiran aab selesai dibaca.


3. Mesin Mealy (Transduser Komplemen Biner)

Tabel Transisi dan Output Mealy:

State (QQ)Input aa: Next StateInput aa: OutputInput bb: Next StateInput bb: Output
S0\to S_0S1S_10S3S_30
S1S_1S3S_31S2S_21
S2S_2S3S_30S3S_31
S3S_3S3S_31S0S_01

Tracing String Masukan w=aabbaw = \text{aabba}:

  1. Berada di S0S_0, baca a     \implies Pindah ke S1S_1, keluarkan 0.

  2. Berada di S1S_1, baca a     \implies Pindah ke S3S_3, keluarkan 1.

  3. Berada di S3S_3, baca b     \implies Pindah ke S0S_0, keluarkan 1.

  4. Berada di S0S_0, baca b     \implies Pindah ke S3S_3, keluarkan 0.

  5. Berada di S3S_3, baca a     \implies Pindah ke S3S_3, keluarkan 1.

  • Total Output: 01101 (Panjang input =5= 5, Panjang output =5= 5).

Latihan Soal & Pembahasan

Level 1 - Basic

Soal 1.1

Jika sebuah string masukan memiliki panjang n=10n = 10, tentukan panjang string keluaran pada Mesin Moore dan Mesin Mealy.

Soal 1.2

Di manakah posisi simbol output diletakkan pada diagram transisi Mesin Mealy?


Pembahasan/Jawaban

1.1 Pada Mesin Moore, panjang output =n+1=11= n + 1 = 11. Pada Mesin Mealy, panjang output =n=10= n = 10.

1.2 Pada Mesin Mealy, output diletakkan pada busur/jalur transisi dengan format notasi input / output (misalnya a / 1).


Level 2 - Intermediate

Soal 2.1

Lakukan tracing pada Mesin Mealy di atas untuk string masukan w=bababbw = \text{bababb}, dan buktikan apakah output yang dihasilkan adalah 011011 secara tepat.


Pembahasan/Jawaban

  • S0bS3S_0 \xrightarrow{b} S_3, output: 0

  • S3aS3S_3 \xrightarrow{a} S_3, output: 1

  • S3bS0S_3 \xrightarrow{b} S_0, output: 1

  • S0aS1S_0 \xrightarrow{a} S_1, output: 0

  • S1bS2S_1 \xrightarrow{b} S_2, output: 1

  • S2bS3S_2 \xrightarrow{b} S_3, output: 1

Urutan output gabungan: 011011. Terbukti menghasilkan deretan output yang tepat.


Level 3 - Advanced

Soal 3.1

Mengapa Mesin Moore selalu menghasilkan satu simbol output lebih banyak daripada panjang string masukan?


Pembahasan/Jawaban

Karena pada Mesin Moore, nilai output terikat langsung pada state, bukan pada transisi. Begitu mesin diaktifkan (power on), mesin sudah langsung menempati state awal q0q_0 dan seketika itu pula mengeluarkan output bawaan dari q0q_0 (pada saat t=0t=0), bahkan sebelum satu pun simbol dari string masukan dibaca. Kemudian, setiap kali satu simbol input dibaca, mesin berpindah state dan mengeluarkan satu output baru. Total output menjadi 1+n1 + n.


Exam Cheat Sheet

  • Rumus Panjang Output:
Moore=w+1Mealy=w\text{Moore} = |w| + 1 \qquad \text{Mealy} = |w|
  • Letak Output:

    • Moore: Di dalam lingkaran state (Si/outS_i / \text{out}).

    • Mealy: Di panah transisi (in/out\text{in} / \text{out}).

  • Tuple 5 Komponen: M=(Q,Σ,τ,δ,q0)M = (Q, \Sigma, \tau, \delta, q_0) dengan τ\tau sebagai alfabet output.

  • Pola Pembacaan: Moore mengeluarkan output state awal di awal eksekusi; Mealy baru mengeluarkan output saat transisi terjadi.


Referensi & Bahan Bacaan

  1. George H. Mealy. A Method for Synthesizing Sequential Circuits (Bell System Technical Journal, 1955).

  2. Edward F. Moore. Gedanken-experiments on Sequential Machines (Princeton University Press, 1956).

  3. Hopcroft, Motwani & Ullman. Finite State Transducers (Stanford Course Notes).

Catatan Penutup

Bab 6 mengalihkan fokus kita ke mesin transduser ber-output. Pada bab selanjutnya, Chapter 7: Minimisasi DFA, kita akan mempelajari algoritma matematis untuk mereduksi jumlah state pada DFA agar diperoleh mesin yang paling efisien.