Anda di halaman 1dari 4

Mesin Pengenal Bahasa Untuk setiap kelas bahasa Chomsky, terdapat sebuah mesin pengenal bahasa.

Masing-masing mesin tersebut adalah : Kelas Bahasa Mesin Pengenal Bahasa Unrestricted Grammar (UG Mesin !uring (Turing Machine , !M Context Sensitive Grammar (C"G Linear Bounded Automaton, #B$ Context Free Gammar (C%G $utomata Pushdo&n (Pushdown Automata , P'$ Regular Grammar, (G $utomata )ingga (Finite Automata , %$ Catatan : *. Pengenal bahasa adalah salah satu kemampuan mesin turing. +. #B$ adalah ,ariasi dari Mesin !uring -ondeterministik. .. /ang akan dibahasa dalam kuliah !eori Bahasa dan $utomata adalah : !M (sekilas , %$, dan P'$. III. MESIN TURING 0lustrasi !M sebagai sebuah 1mesin2: Pita TM. !erbatas di kiri. "etiap sel berisi sebuah karakter dari kalimat yang akan dikenali. 'i kanan kalimat terdapat tak hingga simbol hampa. Head : memba3a dan menulisi sel pita !M, bisa bergerak ke kiri atau ke akan Finite State Control (FSC) %"C : otak dari !M, diimplementasikan dari algoritma pengenalan kalimat.

0lustrasi !M sebagai sebuah gra4 berarah : *. "ebagaimana gra4, !M terdiri dari beberapa node dan beberapa edge. 'ari satu node mungkin terdapat satu atau lebih edge yang menu5u node lainnya atau dirinya sendiri. +. "ebuah node menyatakan sebuah stata (state . 'ua stata penting adalah stata a&al " (start dan stata penerima ) (halt . "esaat sebelum proses pengenalan sebuah kalimat, !M berada pada stata ". 6ika kalimat tersebut dikenali maka, setelah selesai memba3a kalimat tersebut, !M akan akan berhenti pada stata ). .. "ebuah edge mempunyai 1bobot2 yang dinotasikan sebagai triple : (a, b, d . a adalah karakter a3uan bagi karakter dalam sel pita !M yang sedang diba3a head. 6ika yang diba3a head adalah karakter a maka a akan di- overwrite dengan karakter b dan head akan berpindah satu sel ke arah d (kanan atau kiri . 7. Kondisi crash akan ter5adi 5ika ditemui keadaan sebagai berikut : 5* (a*, b*, 3* (a+, b+, 3+ i (an, bn, 3n 5n 5+ !M sedang berada pada stata i. 6ika !M sedang memba3a simbol a8 a* a+ 9 an maka !M tidak mungkin beran5ak dari stata i. 6adi pada kasus ini penelusuran (tracing !M berakhir pada stata i.

al :

Contoh : (an3anglah sebuah mesin turing pengenal bahasa # ; <a n b n | n = . 6a&ab : # tersebut terdiri dari + kelompok kalimat yaitu dan non-. Kelompok non- adalah : ab, aabb, aaabbb, dan seterusnya. Untuk dapat menerima kalimat !M harus mempunyai edge dari " ke ) dengan bobot ( , , ( . !M menerima kalimat-kalimat : ab, aabb, aaabbb, dan seterusnya, dengan algoritma sebagai berikut : *. Mulai dari ", head memba3a simbol a. +. )ead memba3a simbol a. !andai simbol a yang sudah diba3a tersebut, head bergerak ke kanan men3ari simbol b pasangannya. .. )ead memba3a simbol b. !andai simbol b yang sudah diba3a tersebut, head bergerak ke kiri men3ari simbol a baru yang belum diba3a>ditandai. 7. Ulangi langkah + dan .. ?. )ead sampai ke ) hanya 5ika semua simbol a dan simbol b dalam kalimat a n b n selesai diba3a. $lgoritma di atas lebih diperin3i lagi sebagai berikut : *. Mulai dari ", head memba3a simbol a. +. !verwrite a tersebut dengan suatu simbol (misalkan $ untuk menandakan bah&a a tersebut sudah diba3a. "elan5utnya head harus bergerak ke "anan untuk men3ari sebuah b sebagai pasangan a yang sudah diba3a tersebut. i 6ika yang ditemukan adalah simbol a maka a tersebut harus dile&ati ( tida" #oleh dioverwrite , dengan kata lain a dioverwrite dengan a $uga dan head bergerak ke "anan. ii 6ika !M pernah memba3a simbol b ada kemungkinan ditemukan simbol B. "imbol B tersebut harus dile&ati (tida" #oleh dioverwrite , artinya B diover%write dengan B $uga dan head bergerak ke "anan. .. )ead memba3a simbol b, maka b tersebut harus dio,er&rite dengan simbol lain (misalnya B untuk menandakan bah&a b tersebut (sebagai pasangan dari a telah diba3a, dan head bergerak ke "iri untuk men3ari simbol $. i 6ika ditemukan B maka B tersebut harus dile&ati (tida" #oleh dioverwrite , dengan kata lain B dioverwrite dengan B $uga dan head bergerak ke "iri. ii 6ika ditemukan a maka a tersebut harus dile&ati (tida" #oleh dioverwrite , dengan kata lain a dioverwrite dengan a $uga dan head bergerak ke "iri. 7. )ead memba3a simbol $, maka $ tersebut harus dile&ati ( tida" #oleh dioverwrite , dengan kata lain $ dioverwrite dengan $ $uga dan head bergerak ke "anan. ?. )ead memba3a simbol a, ulangi langkah + dan .. @. ("etelah langkah . head memba3a simbol $, maka $ tersebut harus dile&ati ( tida" #oleh dioverwrite , dengan kata lain $ dioverwrite dengan $ $uga dan head bergerak ke "anan. :. )ead memba3a simbol B, maka B tersebut harus dile&ati ( tida" #oleh dioverwrite , dengan kata lain B dioverwrite dengan $ $uga dan head bergerak ke "anan. A. )ead memba3a simbol , maka dio,er&rite dengan dan head bergerak ke "anan menu5u stata ).

al A

"kema gra4 Mesin !uring di atas adalah : (, , (

(B, B, ( (a, $, ( " * (a, a, ( (b, B, #

(B, B, # ($, $, ( + (a, a, #

(B, B, ( (, , ( 7 )

($, $, ( . (a, a, # Contoh : #akukan tra3ing dengan mesin turing di atas untuk kalimat-kalimat : aabb, aab. 6a&ab : i (",aabb (*,$abb (*,$abb (+,$aBb (.,$aBb (",$aBb (*,$$Bb (*,$$Bb (+,$$BB (+,$$BB (7,$$BB (7,$$BB (7,$$BB (),$$BB ii (",aab (*,$ab (*,$ab (+,$aB (.,$aB (",$aB (*,$$B (*,$$b 3rash, karena dari node * tidak ada edge dengan bobot komponen pertamanya hampa ( IV. UT!M T HINGG ( H) $) dide4inisikan sebagai pasangan ? tupel : (K, B ! , M, ", C . K : himpunan hingga stata, B ! : himpunan hingga simbol input (al4abet M : 4ungsi transisi, menggambarkan transisi stata $) akibat pemba3aan simbol input. %ungsi transisi ini biasanya diberikan dalam bentuk tabel. " K : stata a&al C K : himpunan stata penerima $da dua 5enis automata hingga : deterministik ($)', '%$ ; deterministic &inite automata dan non deterministik ($)-, -%$ ; non deterministi" &inite automata . - $)' : transisi stata $) akibat pemba3aan sebuah simbol bersi4at tertentu. M($)' : K B ! K - $)- : transisi stata $) akibat pemba3aan sebuah simbol bersi4at tak tentu. M($)- : K B ! +K

al D

IV. ". #to$ata Hingga %eter$inisti& ( H%) Berikut ini sebuah 3ontoh $)' %(K, B ! , M, ", C , dimana : K ; <E=, E*, E+F M diberikan dalam tabel berikut : a b B ! ; <a, bF " ; E= E= E= E* C ; <E=, E*F E* E= E+ E+ E+ E+ 0lustrasi gra4 untuk $)' % adalah sebagai berikut : #ambang stata a&al adalah node dengan anak panah. #ambang stata a&al adalah node ganda. a E= a b E* b a E+ b

Contoh kalimat yang diterima $)' : a, b, aa, ab, ba, aba, bab, abab, baba Contoh kalimat yang tidak diterima $)' : bb, abb, abba $)' ini menerima semua kalimat yang tersusun dari simbol a dan b yang tidak mengandung substring bb. Contoh : !elusurilah, apakah kalimat-kalimat berikut diterima $)' : abababaa, aaaabab, aaabbaba 6a&ab : i M(E=,abababaa M(E=,bababaa M(E*,ababaa M(E=,babaa M(E*,abaa M(E=,baa M(E*,aa M(E=,a E= !ra3ing berakhir di E= (stata penerima kalimat abababaa diterima ii M(E=, aaaabab M(E=,aaabab M(E=,aabab M(E=,abab M(E=,bab M(E*,ab M(E=,b E* !ra3ing berakhir di E* (stata penerima kalimat aaaababa diterima iii M(E=, aaabbaba M(E=, aabbaba M(E=, abbaba M(E=, bbaba M(E*,bbaba M(E+,baba M(E+,aba M(E+,ba M(E+,a E+ !ra3ing berakhir di E+ (bukan stata penerima kalimat aaabbaba ditolak Kesimpulan : sebuah kalimat diterima oleh $)' 5ika tra3ingnya berakhir di salah satu stata penerima.

al *=

Anda mungkin juga menyukai