You are on page 1of 7

Cara Kerja 2-Tape Turing Machine

< yosuasir@yahoo.com>

Soal : Design TM untuk menerima bahasa L = a n b n c n | n 1 dengan menggunakan 2-Tape Turing Machine.

Ide : Tape # 1 digunakan hanya untuk scan saja. Tape # 2 digunakan hanya untuk menyimpan posisi scan serta banyaknya symbol a, b dan c. Karena saya menggunakan transisi STEADY maka tidak perlu ada looping seperti yang biasa ditemukan dalam single tape. Jadi, nggak ada looping di sini. Baca semua a dan kopi semua a ke tape 2. Kalau lihat b yang pertama maka kunci posisi Head # 1 di b dengan cara membuatnya menjadi STEADY. Buat Head # 2 bergeser ke kiri 1 langkah sehingga posisi Head # 2 melihat a. Ubah a yang ada di Tape # 2 menjadi b. Kalau lihat b yang lain maka Head # 1 akan melewati saja. Tetapi pada Tape # 2, Head # 2 akan mengubah a yang ada di Tape # 2 menjadi b. Pada kondisi ini, kalau jumlah a sama dengan jumlah b maka SEMUA a PASTI akan berubah menjadi b (cara kerjanya sama dengan looping). Kalau lihat c yang pertama maka kunci posisi Head # 1 di c dengan cara membuatnya menjadi STEADY. Buat Head # 2 bergeser ke kanan 1 langkah sehingga posisi Head # 2 melihat b. Ubah b yang ada di Tape # 2 menjadi c. Kalau lihat c yang lain maka Head # 1 akan melewati saja. Tetapi pada Tape # 2, Head # 2 akan mengubah b yang ada di Tape # 2 menjadi c. Pada kondisi ini, kalau jumlah b sama dengan jumlah c maka SEMUA b PASTI akan berubah menjadi c (cara kerjanya sama dengan looping).

Selesai !! Kalo jumlah a , b dan c sama banyak maka PASTI akan accept, jika tidak maka REJECT !

Transition diagram :

Contoh kondisi awal (inisialisasi) untuk tape 1 dan tape 2: Tape 1 : String input : aabbcc Tape 2 : String input : Semuanya blank ()

Step-by-Step Transition : Tahap inisialisasi, pada saat ini, Head # 1 sedang melihat a dan Head # 2 sedang melihat Blank.

Menurut transition state, jika Head # 1 melihat a dan Head # 2 melihat Blank maka kedua Head akan bergerak ke arah kanan. Saat bergerak, Head # 1 tidak melakukan apaapa (hanya melewati a) tetapi Head # 2 akan mengubah Blank menjadi a. Jika kita melakukan trace eksekusi sekali lagi maka hasilnya akan tampak seperti gambar dibawah ini :

Gambar ini adalah hasil trace eksekusi pertama. Pada kondisi ini, state telah berpindah dari q0 ke q1. Head # 1 sedang melihat a dan Head # 2 sedang melihat Blank. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan melewati a dan bergerak ke kanan sedangkan Head # 2 akan mengubah Blank menjadi a dan bergerak ke kanan. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Gambar ini adalah hasil trace eksekusi kedua. Pada kondisi ini, state tetap pada berada pada q1. Head # 1 sedang melihat b dan Head # 2 sedang melihat Blank. Kalau trace

eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan melewati b dan tidak bergerak ke mana-mana (Steady/Diam) sedangkan Head # 2 akan melewati Blank dan bergerak ke kiri. Setelah trace eksekusi dilakukan sekali lagi maka hasilnya akan seperti ini :

Pada kondisi ini, state telah berpindah dari q1 ke q2. Head # 1 sedang melihat b dan Head # 2 sedang melihat a. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan melewati b dan bergerak ke kanan sedangkan Head # 2 akan mengubah a menjadi b dan bergerak ke kiri. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Gambar diatas menunjukan bahwa pada kondisi ini, state tetap di q2. Head # 1 sedang melihat b dan Head # 2 sedang melihat a. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan melewati b dan bergerak ke kanan sedangkan

Head # 2 akan mengubah a menjadi b dan bergerak ke kiri. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Gambar diatas menunjukan bahwa pada kondisi ini, state tetap di q2. Head # 1 sedang melihat c dan Head # 2 sedang melihat Blank. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan STEADY/DIAM sedangkan Head # 2 akan melewati Blank dan bergerak ke kanan. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Gambar diatas menunjukan bahwa pada kondisi ini, state telah berpindah dari q2 ke q3. Head # 1 sedang melihat c dan Head # 2 sedang melihat b. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan melewati c dan bergerak

ke kanan sedangkan Head # 2 akan mengubah b menjadi c dan bergerak ke kanan juga. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Gambar diatas menunjukan bahwa pada kondisi ini, state tetap di q3. Head # 1 sedang melihat c dan Head # 2 sedang melihat b. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, Head # 1 akan melewati c dan bergerak ke kanan sedangkan Head # 2 akan mengubah b menjadi c dan bergerak ke kanan. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Gambar diatas menunjukan bahwa pada kondisi ini, state tetap di q2. Head # 1 sedang melihat Blank dan Head # 2 sedang melihat Blank. Kalau trace eksekusi dilakukan lagi, maka menurut transition state, state akan berpindah ke q4, dimana Head # 1 akan STEADY?DIAM sedangkan Head # 2 juga akan STEADY/DIAM. Pada kondisi ini,

transisi telah mencapai final state dan halt/diam di sana. Setelah trace eksekusi dilakukan lagi maka hasilnya akan seperti ini :

Hasil Akhir : Accept !! Good Luck !!!. Semoga bermanfaat !.

You might also like