Teori Bahasa dan Automata Moore Machine & Mealy Machine
FSA dengan Output Dalam FSA (DFA) kita tidak memperdulikan output hanya menerima atau tidak (accepter) FSA dapat di konstruksi untuk mendapatkan output : Moore Machine : menghasilkan himpunan output dari himpunan input yg di berikan (output bergantung pada state) Mealy Machine : menghasilkan himpunan output dari himpunan input yg di berikan (output bergantung pada transisi dan state)
Moore Machine Pada mesin Moore, output akan berasosiasi dengan state. Mesin Moore didefinisikan dalam 6 (enam) tupel, M = (Q, , , S, , ), dimana: Q = himpunan state = himpunan symbol input = fungsi transisi S = state awal, S Q = himpunan output = fungsi output untuk setiap state
Moore Machine Contoh: himpunan output merupakan sisa pembagian (modulus) suatu bilangan dengan 3, input dalam bilangan biner (0,1) Konfigurasi mesin sebagai berikut : Q = q0,q1,q2 = 0,1 = 0,1,2 (himp output mod dari 3 maka sisanya adalah (0,1,2)) S = q0 (q0) = 0 (q1) =1 (q2) =2 q1 q2 q0 1 2 5 mod 3 = ? 9 mod 3 = ?
Mealy Machine Mesin Mealy didefinisikan dalam 6 tupel : M = (Q, , , S, , ), dimana: Q = himpunan state = himpunan symbol input = fungsi transisi S = state awal, S Q = himpunan output = fungsi output untuk setiap transisi Contoh: Buat Mesin Mealy yang menghasilkan output Ya (Y) atau Tidak (T) bila menerima string yg memiliki 2 simbol berurutan. Himpunan input {0,1}
Konfigurasi mesin sebagai berikut : q1 q2 q0 1 q1 q2 0/T q0 1/T 0/Y 1/Y Konfigurasi mesin sebagai berikut : Q = q0,q1,q2 = 0,1 = Y,T S = q0 Fungsi output : (q0,0) = T (q0,1) = T (q1,0) = Y (q1,1) = T (q2,0) = T (q2,1) =Y
Ekuivalensi Moore dan Mealy Ekivalensi Mealy Moore Contoh sebelumnya: - Pada mesin Mealy Jumlah state = 3, Jumlah output = 2 - Jumlah state pada mesin Moore yg ekuivalen = 6 - Konfigurasi mesin Moore yg dibentuk: Q = q0Y, q0T, q1Y,q1T, q2Y,q2T = 0,1 = Y,T S = q0T (q0Y) = Y (q0T) = T (q1Y) = Y (q1T) = T (q2Y) = Y (q2T) = T q2T q0T q1T q2Y q0Y q1Y 1 T Y
Ekuivalensi Moore dan Mealy Ekivalensi Moore Mealy Contoh sebelumnya: - Menambah label output pada setiap transisi - Menghapus label output pada setiap state - Konfigurasi mesin Mealy yg dibentuk: Q = q0, q1, q2 = 0,1 = 0,1,2 S = q0 (q0,0) = 0 (q0,1) = 1 (q1,0) = 2 (q1,1) = 0 (q2,0) = 1 (q2,1) = 2 q2 q0 q1 1/0 0/1 0/0 1/1 0/2 1/2
Contoh: Tentukan Konfigurasi dari mesin Moore berikut : Jelaskan kegunaannya? Ubah mesin Moore tersebut menjadi mesin Mealy yang ekuivalen ! q0 q1 1 Moore Machine
Teori Bahasa dan Automata Tata Bahasa Bebas Konteks/Context Free Grammar (Parsing)
Context Free Grammar (CFG) Pada aturan produksi: Tidak ada batasan pada hasil produksi (β) , batasannya hanyalah di ruas kiri () yg merupkan sebuah symbol variabel. Contoh aturan produksi yang termasuk CFG: B CDeFg D BcDe
The funny old man rides the brown bicycle. Parsing Sebuah pohon (tree) adalah suatu graph terhubung tidak sirkuler, yang memiliki satu simpul (node)/vertex disebut akar (root) dan dari situ memiliki lintasan ke setiap simpul. Contoh parsing dalam sebuah bahasa: The funny old man rides the brown bicycle.
Parse Tree Pohon penurunan (derivation tree/parse tree) memperoleh suatu string dengan cara menurunkan simbol- simbol variabel menjadi simbol-simbol terminal. Setiap simbol variabel akan diturunkan menjadi terminal, sampai tidak ada yang belum tergantikan. Contoh : Tata bahasa bebas konteks memilki aturan produksi: S AB A aA a B bB b Buatlah parse tree untuk memperoleh string ‘aabbb’ S A B a b a
Leftmost / Rightmost Derivation Penurunan terkiri (leftmost derivation): symbol variabel terkiri yang diperluas terlebih dahulu. Penurunan terkanan (rightmost derivation): symbol variabel terkiri yang diperluas terlebih dahulu Contoh : Tata bahasa bebas konteks memilki aturan produksi: S aAS a A SbA ba Buatlah penurunan untuk memperoleh string ‘aabbaa’ Dengan penurunan terkiri: S aAS aSbAS aabAS aabbaS aabbaa Dengan penurunan terkanan: S aAS aAa aSbAa aSbbaa aabbaa
Leftmost / Rightmost Derivation Meskipun proses penurunannya berbeda akan tetap memiliki pohon penurunan yang sama. S a A b
Ambiguitas Ambiguitas terjadi bila terdapat lebih dari satu pohon penurunan yang berbeda untuk memperoleh suatu string. Contoh: Terdapat tata bahasa bebas konteks dgn aturan produksi: S SbS ScS a Bisa dilakukan penurunan string ‘abaca’ dgn dua cara: S SbS SbScS SbSca Sbaca abaca S ScS SbScS abScS abacS abaca
S ScS SbScS abScS abacS abaca Ambiguitas Untuk string yang sama (‘abaca) dapat dibuat pohon penurunan yang berbeda (ambigu). S ScS SbScS abScS abacS abaca a S b c S c b a S SbS SbScS SbSca Sbaca abaca