Anda di halaman 1dari 30

BAB XII

MESIN TURING
Pengertian Mesin Turing

FSA memiliki keterbatasan terhadap memory, yaitu hanya


mengenal state sekarang dan input berikutnya

PDA memiliki keterbatasan akses, yaitu hanya


diperbolehkan mengakses top of stack

Mesin Turing memiliki kemampuan yang lebih tinggi


daripada FSA maupun PDA

Mesin Turing adalah implementasi dari Natural Language


(Bahasa tipe 0)
Cara Kerja Mesin Turing (I)

Mesin Turing memiliki memory berupa sebuah tape (pita)


yang berisi sederetan cell

Setiap cell menyimpan sebuah simbol tunggal

Tape tidak memiliki cell pertama dan cell terakhir

Tape dapat memiliki cell dalam jumlah tidak terbatas

Terdapat sebuah head yang digunakan untuk mengakses


tape pada bagian mana saja, dengan urutan bagaimanapun
Cara Kerja Mesin Turing (II)

Head dapat bergerak ke kiri maupun kanan untuk


membaca input dari pita sekaligus menulis ke pita

Mesin Turing dapat dianalogikan seperti komputer


sederhana, dengan state sebagai memory, tape sebagai
secondary storage, dan fungsi transisi sebagai program

Bagian pita yang belum ditulisi dianggap berisi simbol b

Suatu string diterima jika pada akhir pergerakan head,


state berada pada state akhir (final state)
Cara Kerja Mesin Turing (III)

Fungsi transisi (q1, a) = (q1, a, R) akan berarti:


(q1, a) dengan state q1, head menunjuk karakter a
(q1, a, R) state tetap di q1, head tidak menulis apa-apa, dan
head akan bergerak ke kanan

Fungsi transisi (q1, b) = (q1, a, R) akan berarti:


(q1, b) dengan state q1, head menunjuk karakter b
(q1, a, R) state tetap di q1, head akan menulis a, dan head
akan bergerak ke kanan

Fungsi transisi (q1, b) = (q2, b, L) akan berarti:


(q1, b) dengan state q1, head menunjuk karakter b
(q1, b, L) state berpindah ke q2, head tidak menulis apa-apa,
dan head akan bergerak ke kiri
Bentuk Formal Mesin Turing

Sebuah Mesin Turing memiliki bentuk formal:


M = (Q, , , , S, F, b)
dimana:
Q = himpunan state
= himpunan simbol input
= simbol pada tape (termasuk blank)
= fungsi transisi
S = state awal, S Q
F = himpunan state akhir, F Q
b = simbol kosong (blank) (b )
Contoh 1: Mesing Turing (I)

Terdapat sebuah Mesin Turing:


M = (Q, , , , S, F, b)
dimana:
Q = {q1, q2}
= {a, b}
= {a, b, b}
S = {q1}
F = {q2}
b=b
= (q1, a) = (q1, a, R)
(q1, b) = (q1, a, R)
(q1, b) = (q2, b, L)
Contoh 1: Mesing Turing (II)
Apakah string abbaa diterima?

Penyelesaian (panah putus-putus pada head adalah hasil sebelum,


panah tebal pada head adalah hasil sesudah):

1. state: q1 a b b a a
input: a
: (q1, a) = (q1, a, R) q1 q1

2. state: q1 a a b a a
input: b
: (q1, b) = (q1, a, R) q1 q1

3. State: q1 a a a a a
input: b
: (q1, b) = (q1, a, R) q1 q1
Contoh 1: Mesin Turing (III)

4. state: q1
a a a a a
input: a
: (q1, a) = (q1, a, R) q1 q1

5. state: q1
a a a a a b
input: a
: (q1, a) = (q1, a, R) q1 q1

6. state: q1 a a a a a b
input: b
: (q1, b) = (q2, b, L) q2 q1
Contoh 1: Mesin Turing (III)

Karena state terakhir adalah q2 yang merupakan final state,


maka string abbaa diterima
PITA TURING
MACHINE

a b b a a

Head
Finite State q1
Control
PITA TURING
MACHINE

a b b a a

Head
Finite State
q1
Control
PITA TURING
MACHINE

a a b a a

Head
Finite State Control q1
PITA TURING
MACHINE

a a a a a

Head
Finite State Control q1
PITA TURING
MACHINE

a a a a a

Head
Finite State Control q1
PITA TURING
MACHINE

a a a a a b

Head
Finite State Control q1
PITA TURING
MACHINE

a a a a a b

Head
Final State
Finite State Control q2
Contoh 2: Mesin Turing (I)

Terdapat sebuah Mesin Turing:


M = (Q, , , , S, F, b)
dimana:
Q = {q0, q1, q2, q3, q4}
= {0, 1}
= {0, 1, X, Y, b} 0 1 X Y b
S = {q0} q0 (q1, X, R) (q3, Y, R)
F = {q4} q1 (q1, 0, R) (q2, Y, L) (q1, Y, R)
b=b q2 (q2, o, L) (qo, X, R) (q2, Y, L)
q3 (q3, Y, R) (q4, b, L)
q4
Contoh 2: Mesin Turing (II)

Apakah string 0011 diterima?


Penyelesaian:

0 0 1 1 X 0 Y 1

q0 q2 q1

X 0 1 1 X 0 Y 1

q0 q1 q2 q2

X 0 1 1 X 0 Y 1

q1 q1 q2 q0
Contoh 2: Mesin Turing (III)

X X Y 1 X X Y Y

q0 q1 q2 q0

X X Y 1 X X Y Y

q1 q1 q0 q3

X X Y Y X X Y Y b

q2 q1 q3 q3

X X Y Y X X Y Y b

q2 q2 q4 q3
Contoh 2: Mesin Turing (IV)

Karena akhir pergerakan bisa mencapai final state, maka


string 0011 diterima
Konfigurasi Mesin Turing

Konfigurasi juga dapat dilakukan pada contoh di atas:


(q0, 0011) |- (q1, x011) |- (q1, x011) |- (q2, x0y1) |-
(q2, x0y1) |- (q0, x0y1) |- (q1, xxy1) |- (q1, xxy1) |-
(q2, xxyy) |- (q2, xxyy) |- (q0, xxyy) |- (q3, xxyy) |-
(q3, xxyyb) |- (q4, xxyyb)
Infinite Loop (I)

Cara lain untuk menentukan suatu string tidak diterima


adalah dengan infinite loop

Contoh:
Q = {q1, q2, q3}
= {a, b} a b b
= {a, b, b} q1 (q2, a, R) (q2, b, R) (q3, b, R)
S = {q1} q2 (q1, a, L) (q1, b, L) (q3, b, L)
F = {q3} q3

b=b
Infinite Loop (II)

Untuk string ab:


(q1, ab) |- (q2, ab) |- (q1, ab) |- (q2, ab) |- (q1, ab) |-
(q2, ab) |- ...

Perhatikan bahwa konfigurasi di atas menunjukkan infinite


loop, dengan demikian string ab tidak diterima oleh
Mesin Turing
Kombinasi Dua Mesin Turing (I)

Jika:
M1 = (Q1, , , 1, S1, F1, b)
M2 = (Q2, , , 2, S2, F2, b)
maka:
M1M2 = M3 = (Q3, , , 3, S3, F3, b)
di mana:
Q3 = Q1 Q2
S3 = S1
F3 = F2
Kombinasi Dua Mesin Turing (II)

Fungsi transisi dari M3 (3) dibentuk dengan:


- Semua transisi 2
- Transisi-transisi 1 yang tidak menuju ke state-state F1
- Transisi-transisi 1 yang menuju ke state-state F1 diganti
menuju S2
Contoh: Kombinasi Dua Mesin Turing (I)

Terdapat dua buah Mesin Turing:


M1 = (Q1, , , 1, S1, F1, b) M2 = (Q2, , , 2, S2, F2, b)
di mana: di mana:
Q1 = {q1, q2, q3, q4} Q2 = {p1, p2}
= {a} = {a}
= {a, b} = {a, b}
S1 = {q1} S2 = {p1}
F1 = {q4} F2 = {p2}
1 = (q1, a) = (q2, a, R) 2 = (p1, a) = (p2, a, R)
(q1, b) = (q2, b, R) (p2, b) = (p2, a, R)
(q2, a) = (q3, a, R)
(q2, b) = (q3, b, L)
(q3, a) = (q4, a, R)
(q3, b) = (q4, b, R)
Contoh: Kombinasi Dua Mesin Turing (II)

M3 = (Q3, , , 3, S3, F3, b)


di mana:
Q3 = {q1, q2, q3, q4, p1, p2}
= {a}
= {a, b}
S3 = {q1}
F3 = {p2}
3 =(p1, a) = (p2, a, R) (q2, a) = (q3, a, R)
(p2, b) = (p2, a, R) (q2, b) = (q3, b, L)
(q1, a) = (q2, a, R) (q3, a) = (p1, a, R)
(q1, b) = (q2, b, R) (q3, b) = (p1, b, R)
Contoh Soal: Mesin Turing

Dari contoh kombinasi Mesin Turing di atas:


- Apakah M1 menerima string:
a, aa, aaa, aaaa
- Apakah M2 menerima string:
a, aa, aaa, aaaa
- Bagaimana perilaku mesin M1 dan M2?
- Bagaimana perilaku mesin M3?
Dalil Mesin Turing (II)

Beberapa argumen lain tentang dalil Mesin Turing adalah:

- Semua yang bisa dilakukan oleh komputer digital bisa


dilakukan oleh Mesin Turing

- Belum ada yang bisa mengajukan masalah yang bisa


dipecahkan dengan algoritma, yang mana tidak bisa
dibuat Mesin Turing untuknya

- Model-model alternatif telah diajukan untuk komputasi


mekanis, tetapi tidak ada yang lebih powerful dari Mesin
Turing

Anda mungkin juga menyukai