TEORI GRAF DAN OTOMATA MESIN TURING Oleh Bagus
TEORI GRAF DAN OTOMATA MESIN TURING Oleh : Bagus Adhi Kusuma, S. T. , M. Eng Program Studi Teknik Informatika STMIK AMIKOM Purwokerto
MESIN TURING (TURING MACHINE/TM) • Mesin Turing adalah model yang sangat sederhana dari komputer. • Secara esensial, mesin Turing adalah sebuah finite automaton yang miliki sebuah tape tunggal dengan panjang tak terhingga yang dapat membaca dan menulis data. • Mesin Turing menggunakan notasi seperti ID-ID pada PDA untuk menyatakan konfigurasi dari komputasinya.
• Stack pada PDA memiliki keterbatasan akses. • Elemen yang dapat diakses hanya elemen yang ada pada top stack. • Pada Mesin Turing, memori akan berupa suatu tape yang pada dasarnya merupakan array dari sel-sel penyimpanan.
Notasi Formal TM Mesin Turing dijelaskan oleh 7 -tuple: M = (Q, , q 0, B, F) Komponen-komponennya adalah: • Q: Himpunan berhingga dari state dari finite control. • : himpunan berhingga dari simbol-simbol input. • : Himpunan dari tape symbol. merupakan subset dari .
• : Fungsi transisi. Argumen (q, X) adalah sebuah state q dan sebuah tape symbol X. Nilai dari (q, X), jika nilai tersebut didefinisikan, adalah triple (p, Y, D), dimana: • p adalah next state dalam Q • Y adalah simbol, dalam , ditulis dalam sel yang sedang di-scan, menggantikan simbol apapun yang ada dalam sel tersebut. • D adalah arah, berupa L atau R, berturut-turut menyatakan left atau right, dan menyatakan arah dimana head bergerak.
• q 0: start state, sebuah anggota dari Q, dimana pada saat awal finite control ditemukan. • B: simbol blank. Simbol ini ada dalam tapi tidak dalam , yaitu B bukan sebuah simbol input. • F: himpunan dari final state, subset dari Q.
Deskripsi Instantaneous (ID) untuk TM • ID digunakan untuk mengetahui apa yang mesin Turing kerjakan. ID direpresentasikan oleh string X 1 X 2 X 3… Xi 1 q. Xi+1 … Xn, dimana: – q adalah state dari TM – Tape head men-scan simbol ke-i dari kiri. – X 1 X 2 …Xn adalah bagian dari tape di antara nonblank pada sel paling kiri dan paling kanan. • Pergerakan TM M = (Q, , q 0, B, F) dinyatakan oleh notasi ├ atau ├. ├*M atau ├* digunakan untuk menunjukkan nol, satu atau lebih pergerakan dari TM.
CONTOH 1: • Diberikan TM yang menerima bahasa {0 n 1 n | n 1}. M = ({q 0, q 1, q 2, q 3, q 4}, {0, 1, X, Y, B}, , q 0, B, {q 4}) Fungsi transisi diberikan sebagai berikut:
• Misalkan mesin Turing M diberi masukan 0011. Pada keadaan awal, mesin Turing M berada dalam state q 0, men-scan 0 yang pertama, yaitu ID M awal adalah q 00011. • Urutan pergerakan M adalah: q 00011├ Xq 1011├ X 0 q 111├ Xq 20 Y 1├ q 2 X 0 Y 1├ Xq 00 Y 1├ XXq 1 Y 1 ├ XXYq 11├ XXq 2 YY├ Xq 2 XYY ├ XXq 0 YY├ XXYq 3 Y├ XXYYq 3 B├ XXYYBq 4 B
• Contoh pergerakan yang lain diberikan input 0010. • Urutan pergerakan M adalah: q 00010├ Xq 1010├ X 0 q 110├ Xq 20 Y 0├ q 2 X 0 Y 0├ Xq 00 Y 0├ XXq 1 Y 0├ XXYq 10├ XXY 0 q 1 B • Dalam state q 1, M tidak memiliki pergerakan pada tape symbol B. • Dengan demikian M tidak menerima input yang diberikan.
Diagram Transisi untuk TM • Diagram transisi terdiri dari sebuah himpunan dari node yang menyatakan state-state dari Mesin Turing • sebuah arc dari state q ke state p diberi label oleh satu atau lebih item dengan bentuk X/Y D, dimana X dan Y adalah tape symbol, dan D adalah arah, kiri (L) atau kanan (R). • Bahwa bila (q, X) = (p, Y, D) diperoleh label X/Y D pada arc dari q ke p.
• Dalam diagram arah D dinyatakan dengan tanda untuk “left” dan untuk “right”. • Start state ditandai dengan kata “start” dan sebuah panah yang masuk ke dalam state tersebut. • Final state ditandai dengan putaran ganda.
Diagram transisi Mesin Turing pada Contoh 1:
Contoh 2: • Mesin Turing berikut menghitung fungsi , yang dinamakan monus atau proper substraction. • Fungsi ini didefinisikan oleh m n = max(m n, 0). Bahwa, m n = m n jika m n dan 0 jika m < n. • Mesin Turing yang melakukan operasi ini adalah M = ({q 0, q 1, . . . , q 6}, {0, 1, B}, , q 0, B)
Aturan untuk fungsi transisi :
Diagram transisi dari mesin Turing M:
Ilustrasi TM Sebagai Sebuah ‘Mesin’ Pita TM : Terbatas di kiri. Setiap sel berisi sebuah karakter dari kalimat yang akan dikenali. Di kanan kalimat terdapat tak hingga simbol hampa. Head : Membaca dan menulisi sel pita TM, bisa bergerak ke kiri atau ke kanan. FSC : Otak dari TM, diimplementasikan dari algoritma pengenalan kalimat.
Ilustrasi TM Sebagai Sebuah ‘Graf Berarah’ 1. Sebagaimana graf, TM terdiri dari beberapa node dan beberapa edge. Dari satu node mungkin terdapat satu atau lebih edge yang menuju node lainnya atau dirinya sendiri. 2. Sebuah node menyatakan sebuah stata (state). Dua stata penting adalah stata awal S (start) dan stata penerima H (halt). Sesaat sebelum proses pengenalan sebuah kalimat, TM berada pada stata S. Jika kalimat tersebut dikenali maka, setelah selesai membaca kalimat tersebut, TM akan berhenti pada stata H.
3. Sebuah edge mempunyai ‘bobot’ yang dinotasikan sebagai triple : (a, b, d). a adalah karakter acuan bagi karakter dalam sel pita TM yang sedang dibaca head. Jika yang dibaca head adalah karakter a maka a akan dioverwrite dengan karakter b dan head akan berpindah satu sel ke arah d (kanan atau kiri).
4. Kondisi crash akan terjadi jika ditemui keadaan sebagai berikut : TM sedang berada pada stata i. Jika TM sedang membaca simbol ax ¹ a 1 ¹ a 2 ¹ … ¹ an maka TM tidak mungkin beranjak dari stata i. Jadi pada kasus ini penelusuran (tracing) TM ber-akhir pada stata i.
Contoh 3: Rancanglah sebuah mesin turing pengenal bahasa L = {a n b n | n 0) ! Jawab: L tersebut terdiri dari 2 kelompok kalimat yaitu e dan non-e. Kelompok non-e adalah : ab, aabb, aaabbb, dan seterusnya. Untuk dapat menerima kalimat e TM harus mempunyai edge dari S ke H dengan bobot (e , R).
TM menerima kalimat-kalimat : ab, aabb, aaabbb, dan seterusnya, dengan algoritma sebagai berikut : 1. Mulai dari S, head membaca simbol a. 2. Head membaca simbol a. Tandai simbol a yang sudah dibaca tersebut, head bergerak ke kanan mencari simbol b pasangannya. 3. Head membaca symbol b. Tandai symbol b yang sudah dibaca tersebut. Head bergerak ke kiri mencari symbol a baru yang belum dibaca/ditandai. 4. Ulangi langkah 2 dan 3 5. Head sampai ke H hanya jika semua simbol a dan simbol b dalam kalimat a n b n selesai dibaca.
Algoritma tersebut dapat lebih diperinci lagi sebagai berikut : 1. Mulai dari S, head membaca simbol a. 2. Overwrite a tersebut dengan suatu simbol (misalkan A) untuk menandakan bahwa a tersebut sudah dibaca. Selanjutnya head harus bergerak ke kanan untuk mencari sebuah b sebagai pasangan a yang sudah dibaca tersebut. i. Jika yang ditemukan adalah simbol a maka a tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain a dioverwrite dengan a juga dan head bergerak ke kanan. ii. Jika TM pernah membaca simbol b ada kemungkinan ditemukan simbol B. Simbol B tersebut harus dilewati (tidak boleh dioverwrite), artinya B diover-write dengan B juga dan head bergerak ke kanan.
3. Head membaca simbol b, maka b tersebut harus dioverwrite dengan simbol lain (misalnya B) untuk menandakan bahwa b tersebut (sebagai pasangan dari a) telah dibaca, dan head bergerak ke kiri untuk mencari simbol A. i. Jika ditemukan B maka B tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain B dioverwrite dengan B juga dan head bergerak ke kiri. ii. Jika ditemukan a maka a tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain a dioverwrite dengan a juga dan head bergerak ke kiri. 4. Head membaca simbol A, maka A tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain A dioverwrite dengan A juga dan head bergerak ke kanan.
5. Head membaca simbol a, ulangi langkah 2 dan 3. 6. (Setelah langkah 3) head membaca simbol A, maka A tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain A dioverwrite dengan A juga dan head bergerak ke kanan. 7. Head membaca simbol B, maka B tersebut harus dilewati (tidak boleh dioverwrite), dengan kata lain B dioverwrite dengan A juga dan head bergerak ke kanan. 8. Head membaca simbol e, maka e dioverwrite dengan e dan head bergerak ke kanan menuju stata H.
Skema graf Mesin Turing di atas adalah :
- Slides: 26