Mesin Turing
(Turing Machine (part-1)
By Anis Rohmadi, S.Kom., M.Kom.
Mesin Turing (bagian 1)
Pokok Bahasan:
1 Review Minggu Lalu
Page 4
Definisi PDA dalam Automata
Push Down Automata (PDA) merupakan mesin otomata dari
bahasa bebas konteks.
PDA digambarkan sebagai tempat penyimpanan yang tidak
terbatas berupa stack/tumpukan.
Stack merupakan kumpulan dari elemen-elemen sejenis dengan
sifat penambahan elemen dan pengambilan elemen melalaui suatu
tempat yang disebut top of stack (puncak stack).
Pengambilan elemen dari stack dinyatakan dengan operasi pop
sedangkan memasukkan elemen kedala stack dengan posisi push.
Page 5
- PDA merupakan mesih otomata dari bebas konteks.
- Mempunyai memori penyimpanan yang tidak terbatas berupa
stack/tumpukan
- Stack/tumpukan memiliki ciri ciri:
1. Memiliki Top of Stack/puncak
2. Aturan pengenisian LIFO (Last In First Out) bukan FIFO (First in First Out)
3. Pop: pengambilan elemen dari stack
4. Push: memasukan element ke dalam stack
Bila dilakukan Opreasi Push, konsidi stack menjadi
D
Top of Stack A Top of Stack
E D
Top of Stack
E
Pembahasan
Materi Minggu Ini:
Page 8
Alan Mathison Turing, (23 June 1912 – 7 June 1954), was an
English mathematician, logician, cryptanalyst, and computer
scientist. He was highly influential in the development of
computer science, providing a formalisation of the concepts
of "algorithm" and "computation" with the Turing machine,
which played a significant role in the creation of the modern
computer. Turing is widely considered to be the father of
computer science and artificial intelligence.[3]
Alan Mathison Turing (lahir 23 Juni 1912 – meninggal 7 Juni
1954 pada umur 41 tahun) di Maide Vale, London, Inggris, ia
adalah seorang peneliti matematika dan komputer, dan
pahlawan perang Inggris.
Dia adalah dari peneliti-peneliti komputer modern digital
pertama. Selain itu dia adalah orang pertama yang berpikir
menggunakan komputer untuk berbagai keperluan. Dia
mengatakan bahwa komputer dapat menjalankan berbagai
program. Dia juga memberikan ide tentang mesin Turing,
mesin yang dapat menjalankan sekumpulan perintah. Turing
juga yang mencetuskan tes Turing. Namanya diabadikan
dalam nama Penghargaan Turing. Sumber: Wikipedia.org
9
Definition of Turing Machine
A Turing machine is a
mathematical model of computation
that defines an abstract machine that
manipulates symbols on a strip of tape
according to a table of rules.
Despite the model's simplicity,
given any computer algorithm, a
Turing machine capable of simulating
that algorithm's logic can be
constructed. By Wikipedia.org
Page 10
Turing’s theoretical machines were turned into room-sized reality
Read more: https://www.newscientist.com/article/mg23130803-200-how-alan-
turing-found-machine-thinking-in-the-human-mind/#ixzz6xF8aio17
Page 11
Definisi Mesin Turing (1)
Mesin Turing adalah model komputasi
teoretis yang ditemukan oleh Alan Turing,
berfungsi sebagai model ideal untuk melakukan
perhitungan matematis. Walaupun model ideal
ini diperkenalkan sebelum komputer nyata
dibangun, model ini tetap diterima kalangan
ilmu komputer sebagai model komputer yang
sesuai untuk menentukan apakah suatu fungsi
dapat selesaikan oleh komputer atau tidak
(menentukan computable function). Mesin
Turing terkenal dengan ungkapan " Apapun
yang bisa dilakukan oleh Mesin Turing pasti bisa
dilakukan oleh komputer."
Page 12
Definisi Mesin Turing (2)
Sebuah mesin turing terdiri atas barisan
sel tersusun berupa pita yang dapat bergerak
maju mundur, komponen aktif baca/tulis pita
yang memiliki status per-hitungan serta dapat
mengubah/menulisi sel aktif yang ada di pita
tadi, dan suatu kumpulan instruksi bagaimana
komponen baca/tulis ini harus melakukan
modifikasi terhadap sel aktif pada pita, serta
bagaimana menggerakkan pita tersebut. Pada
setiap langkah dalam komputasi, mesin ini akan
dapat mengubah isi dari sel yang aktif,
mengubah status dari komponen baca/tulis, dan
mengubah posisi pita ke kiri atau ke kanan.
Page 13
Sejarah Mesin Turing (1)
• Diusulkan pada tahun 1936 oleh Alan Turing, seorang
matematikawan Inggris sebagai model matematis sederhana
sebuah komputer.
14
Sejarah Mesin Turing (2)
• Sama seperti Finite State Automata dan Push Down
Automata yang dapat mengenali bahasa formal, maka
mesin Turing juga dapat berperan sebagai mesin pengenal
bahasa formal.
16
Model Mesin Turing (2)
a1 a2 … … an B B B ...
R/W head
17
Model Mesin Turing (3)
• Perbedaan mesin Turing dengan FSA dan PDA
FSA/PDA Mesin Turing
1. Pita masukan hanya dapat 1. Pita masukan dapat
dibaca. dibaca dan ditulis.
2. Head hanya dapat 2. Head dapat digerakkan ke
digerakkan ke kanan kiri maupun ke kanan.
3. Pita masukan hanya berisi 3. Pita masukan juga
string masukan. berfungsi sebagai tempat
penyimpanan yang pada
pengaksesannya tidak
dibatasi. *)
*) Bandingkan dengan tempat penyimpanan PDA yang hanya dapat diakses sebagai stack
18
Aksi Mesin Turing
• Perilaku mesin Turing bergantung pada simbol masukan yang berada
pada posisi head baca/tulis dan status dari Finite Control.
• Dalam setiap gerakannya, mesin Turing dapat melakukan salah satu dari
aksi berikut:
1. Berubah status.
2. Menuliskan simbol pada pita masukan. Aksi penulisan ini
mengubah simbol yang sebelumnya berada pada sel tsb.
3. Menggerakkan head ke kiri atau ke kanan.
19
Contoh: Mesin Turing M akan digunakan untuk mengenali bahasa L =
{0n1n | n 1}. Contoh string di dalam L misalnya
01, 0011, 000111, 00001111, dst.
20
• Jika pada saat bergerak ke kanan untuk mencari ‘1’ , mesin Turing M
menjumpai simbol B, maka berarti banyaknya ‘0’ lebih dari banyaknya ‘1’.
Kesimpulannya, string masukan tidak dikenali.
• Jika pada saat bergerak ke kiri M tidak menjumpai lagi ‘0’, maka M
memeriksa apakah masih ada ‘1’. Bila habis maka string diterima
(dikenali).
21
Contoh: String masukan adalah 000111
X 0 0 1 1 1 B B ...
X 0 0 Y 1 1 B B ...
X 0 0 Y 1 1 B B ...
X X 0 Y 1 1 B B ...
22
X X 0 Y Y 1 B B ...
X X 0 Y Y 1 B B ...
X X X Y Y 1 B B ...
X X X Y Y Y B B ...
X X X Y Y Y B B ...
23
• Dari penjelasan di atas, terlihat ada empat modus kerja yang berbeda dari mesin Turing:
Status Aksi Keterangan
q0 JUMPA 0 Menemukan simbol ‘0’
q1 CARI 1 Mencari simbol ‘1’ ke arah kanan
q2 CARI X Mencari simbol X ke arah kiri
q3 SISA Memeriksa simbol yang tersisa pada pita masukan
• Dalam setiap modus kerja (status), aksi yang dilakukan mesin Turing mungkin menerima/membaca
berbagai simbol pada pita.
• Aksi yang dilakukan dalam setiap modus kerja (status) dapat berbeda-beda.
• Perilaku/gerakan yang lengkap dari mesin Turing pengenal 0n1n ditunjukkan pada tabel berikut:
24
0 1 X Y B
JUMPA 0 (q0) status q1 - - Status q3 -
tulis ‘X’
kanan kanan
CARI 1 status q2 - -
(q1) tulis ‘Y’
kanan kiri kanan
CARI X - status q0
(q2) kiri kanan kiri
SISA - - - status q4
(q3) kanan kanan
string dikenali
Cara membaca tabel ini: Misalkan dalam status q0, jika mesin menerima simbol ‘0’ maka
mesin berubah ke status q1, mengganti simbol ‘0’ dengan X dan menggerakkan head ke
kanan
25
• Notasi yang lebih ringkas:
Tripel (q, a, D) menyatakan aksi bahwa mesin berubah ke
status q, menuliskan simbol a, dan menggerakkan head ke
arah D.
0 1 X Y B
q0 (q1, X, R) - - (q3, Y, R) -
q1 (q1, 0, R) (q2, Y, L) - (q1, Y, R) -
q2 (q2, 0, L) - (q0, X, R) (q2 Y, L) -
q3 - - - (q3, Y, R) (q4, B, R)
26
Definisi Formal Mesin Turing
• Sebuah mesin Turing M dilambangkan dengan notasi formal sbb:
M = (Q, , , , q0, B, F)
yang dalam hal ini,
Q : himpungan berhingga status (a, b, c, … atau q0, q1, q2, …)
: himpunan berhingga simbol-simbol yang muncul di pita
B : melambangkan simbol blank
: himpunan symbol input, subset dari
: fungsi pergerakan yang memetakan Q → Q {L, R}*)
q0 Q : status awal
F Q : himpunan status akhir atau accepted states
27
• Dengan menggunakan notasi formal tersebut, maka mesin Turing pengenal bahasa L =
{0n1n | n 1} dapat ditulis sbb:
M = (Q, , , , q0, B, F)
yang dalam hal ini,
Q = {q0, q1, q2, q3, q4}
= {0, 1, X, Y, B}
= {0, 1, B}
q0 = q0
F = {q4}
(q0, 0) = (q1, X, R); (q0, Y) = (q3, Y, R);
(q1, 0) = (q1, 0, R); (q1, 1) = (q2, Y, L); (q1, Y) = (q1, Y, R);
(q2, 0) = (q2, 0, L); (q2, X) = (q0, X, L); (q2, Y) = (q2, Y, L);
(q3, Y) = (q3, Y, R); (q3, B) = (q4, B, R);
28
29
• Sekuens gerakan mesin Turing ketika menerima input ‘0011’:
0 0 1 0
q0 ------> (q1, X, R) ------> (q1, 0, R) ------> (q2, Y, L) ------>
X 0 Y
(q2, 0, L) ------> (q0, X, R) ------> (q1, X, R) ------> (q1, Y, R)
1 Y X Y
------> (q2, Y, L) ------> (q2, Y, L) ------> (q0, X, R) ------>
Y B
(q3, Y, R) ------> (q3, Y, R) ------> (q4, B, R)
30
Deskripsi Sesaat (mesin Turing)
• Keadaan sebuah Mesin Turing setiap saat dicirikan oleh tiga
hal:
1. Status sekarang (q)
2. Simbol yang sedang diterima/dibaca
3. Posisi head (“nomor sel” yang sedang dibaca) pada pita.
2
1 a
31
• Jika 2 = a, maka konfigurasi sesaat mesin Turing pada
gambar di atas dapat dinyatakan secara tekstual oleh
deskripsi sesaat (instantaneous description):
1 q 2
yang artinya:
- mesin sedang berada pada status q
- 12 adalah string yang tertera pada pita
- mesin sedang membaca simbol paling kiri dari 2
32
• Contoh gerakan ke kiri oleh (p, Xi) = (q, Y, L):
X1X2 … Xi – 1p Xi Xi +1 … Xn ├ X1X2 … qXi – 1 Y Xi + 1 … Xn
33
• Contoh: Q = {q0, q1, q2, q3, q4}, = {0, 1, X, Y, B}, = {0, 1, B}
q0 = q0, F = {q4}, dan fungsi transisi dinyatakan oleh tabel
berikut:
0 1 X Y B
q0 (q1, X, R) - - (q3, Y, R) -
q1 (q1, 0, R) (q2, Y, L) - (q1, Y, R) -
q2 (q2, 0, L) - (q0, X, R) (q2 Y, L) -
q3 - - - (q3, Y, R) (q4, B, R)
34
Unrestricted Grammar → Mesin Turing
• Misalkan w adalah kalimat yang dihasilkan oleh tata bahasa
G = (N, T, S, P).
35
• Contoh: Misalkan tata bahasa G memiliki aturan produksi sbb,
S → ACaB aD → Da
Ca → aaC AD → AC
CB → DB aE → Ea
CB → E AE →
36
Tambahan Materi:
VIDEO TUTORIAL
MESIN TURING
Page 37
PRAKTEK
Page 38
Latihan1:
a) Tuliskan rangkaian deskripsi sesaat (mesin
turing sederhana) jika M menerima input
string 000. Bagaimana kondisi akhir M dan
apa kesimpulan anda?
b)Ulangi a untuk input 0010
39
Latihan2:
• Rancanglah mesin Turing yang menerima
bahasa dengan string bit ‘0’ dan ‘1’ yang sama
banyaknya.
(a) Tuliskan algoritma pengenalan string input
(b) Tuliskan M = (Q, , , , q0, B, F)
(c) Tuliskan rangkaian deskripsi sesaat untuk
string masukan 010101
40
SUMBER MATERI:
IF5110 Teori Komputasi by Rinaldi Munir
Page 41
Sumber:
1. John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman,
Introduction To Automata Theory , Languanges, and
Computation 3rd Edition, Addison Wesley, 2007.
42
Thank You