Anda di halaman 1dari 39

1

Teori Bahasa dan Automata

Mesin Turing

Kurniawan Nur Ramadhani

S1 Teknik Informatika – Fakultas Informatika


2

Mesin Turing
• Di propose oleh Alan M. Turing tahun 1936.
• Perbandingan dengan mesin sebelumnya:
• Mirip dengan FA, karena ada mekanisme kontrol dan terdapat
input tape.
• Perbedaan ada pada pergerakan head yang memungkinkan maju
dan mundur.
• Perbedaan lain pada kemampuan membaca dan menulis pada
tape.
3

Properti Mesin Turing [1]


• Finite number of State.
• Terdapat initial state.
• Salah satu dikenal dengan halt state.
• Halt state : pada saat mesin turing mencapai state ini, mesin akan berhenti
• Halt state berbeda dengan accepted state, dari sisi jika di mesin sebelumnya
mencapai accepted state, maka masih memungkinkan untuk berpindah ke
state yang lain.
• Initial state di mesin turing tidak diperkenankan sebagai halt state. (minimal
mesin turing terdiri dari 2 state).
4

Properti Mesin Turing [2]


• Tape input
• Mirip dengan string input pada FA / PDA
• Berbeda dari sisi bisa di baca dan di tulis (kemampuan PDA
masih diadopsi).
• Stack PDA hanya pop dan push.
• String input (di FA/PDA) tidak pernah diubah.
5

Properti Mesin Turing [3]


• Machine symbol (machine alphabet)
• Muncul pada input data.
• Tape symbol
• Machine symbol + simbol lain
• Contoh simbol lain ini adalah blank.
• Untuk komunikasi blank dinotasikan dengan Δ
• Δ memiliki panjang yakni 1.
• Δ membedakan x y dengan x y melalui cara xΔy, dengan xΔΔy.
6

Properti Mesin Turing [4]


• Aksi yang bisa dilakukan oleh mesin turing : write dan move.
• Write dibangun dengan operasi mereplace simbol yang ditunjuk
head, dilanjutkan berpindah ke state yang lain.
• Move dibangun dengan operasi bergerak ke kiri atau ke kanan
dari current head, dilanjutkan berpindah ke state yang lain.
7

Properti Mesin Turing [5]


• Semantik dari aksi mesin turing :
• (p, x) = (q, y) berarti jika current state adalah p, dan simbol yang ditunjuk head adalah
x, maka kita gantikan x dengan y, dan current state berubah ke q.
• (p, x) = (q, L) berarti jika current state adalah p, dan simbol yang ditunjuk head adalah
x, maka head bergeser ke kiri, dan current state berubah ke q.
• (p, x) = (q, R) berarti jika current state adalah p, dan simbol yang ditunjuk head adalah
x, maka head bergeser ke kanan, dan current state berubah ke q.
8

Representasi Mesin Turing


Input Tape

Head
Left End

Arah Pergerakan
State Indicator
4
3 i
2 h
1
9

Halt State vs Abnormal Termination


• Ada beberapa kondisi yang menyebabkan mesin turing
berhenti (Halt State, Abnormal Termination)
• Halt state berarti mesin langsung berhenti, (selamat)
• Abnormal termination mesin berhenti karena error tidak bisa
bergerak ke arah kiri pada saat head sudah berada di left end.
• Non terminating loop : kondisi mesin yang tidak pernah
berhenti dikarenakan bergerak ke kanan terus menerus.
10

Diagram Transisi pada Mesin Turing [1]


• State dinotasikan dengan lingkaran.
• Initial state dinotasikan dengan lingkaran ditunjuk panah
awal (seperti di mesin sebelumnya).
• Halt state dinotasikan dengan lingkaran ganda.
• Busur transisi di beri label pasangan simbol yang dipisahkan
dengan slash.
• Bagian pertama adalah simbol yang harus ditunjuk oleh head.
• Bagian kedua adalah aksi yang harus dikerjakan (write, left atau
right)
11

Diagram Transisi pada Mesin Turing [2]


• Contoh :
•Mesin turing yang bergerak ke kanan hingga ditemukan Δ
a/R

Δ/Δ

b/R
12

Diagram Transisi pada Mesin Turing [3]


• Contoh :
•Mesin turing yang bergerak ke kanan hingga ditemukan a
Δ/R

a/a

b/R
13

Definisi Formal Mesin Turing


• Suatu mesin turing dapat didefinisikan secara formal ke
dalam 6-tuple (S, Σ, , , i, h) di mana
• S himpunan state
• Σ machine alphabet : himpunan nonblank symbol
•  tape symbol : himpunan simbol yang bisa ditulis di tape
•  fungsi transisi
• i initial state
• h halt state
14

Variasi Mesin Turing


1. Two- way Infinite tape
Mesin Turing ini memiliki pita simbol yang tidak terbatas pada kedua ujungnya.
Pada mesin Turing biasa, head tidak dapat bergerak lebih kiri dari sisi pita.
2. Multitrack
Mesin Turing ini memiliki sebuah pita yang memiliki lebih dari satu jalur (track)
penulisan/pembacaan simbol. Simbol-simbol yang berada pada “kolom” yang
sama akan dibaca sekaligus oleh sebuah head tunggal.

14
15

Variasi Mesin Turing


3. Multitape
Mesin Turing ini memiliki beberapa pita yang masing-masing dapat dibaca oleh head
yang saling bebas. Setiap pita memiliki head tersendiri. Aksi yang dilakukan salah satu
head pada pitanya tidak bergantung dari aksi head yang lain.

15
16

Variasi Mesin Turing


4. Multi-dimensional tape
Mesin Turing ini memiliki pita yang multi dimensi. Mesin Turing biasa memiliki
pita yang berdimensi satu. Untuk pita dua dimensi berarti head dapat berpindah
dari satu sel ke sel lain yang terletak pada suatu bidang datar.
5. Multihead
Mesin Turing ini mirip dengan mesin Turing multitape, hanya bedanya mesin
Turing multihead hanya satu pita. Setiap head pada pita tersebut dapat beraksi
saling bebas satu sama lainnya.

16
17

Mesin Turing non-deterministik


• Pada mesin Turing deterministik, fungsi transisi  memiliki nilai
tunggal, sedangkan pada mesin Turing non-deterministik untuk
pasangan status dan simbol tertentu mungkin dijumpai lebih dari
satu aksi.
• Mesin Turing non-deterministik Mn dapat disimulasikan oleh sebuah
mesin Turing deterministik Md. Dasar pemikirannya: untuk setiap
state dan simbol pita, Mn mungkin memiliki lebih dari satu aksi yang
banyaknya berhingga. Misalkan pilihan aksi ini diberi nomor 1, 2, 3,
…, k. Dengan penomoran ini, rangkaian aksi mesin Turing dapat
dinyatakan sebagai rangkaian bilangan dari 1 sampai k.
5/30/2021 17
18

Mesin Turing non-deterministik


• Untuk mensimulasikan Mn, mesin Turing Md menggunakan tiga pita.
Pita pertama menyimpan input yang diolah Mn, pita kedua
digunakan untuk menyimpan rangkaian bilangan 1 sampai dengan k
yang dibangkitkan secara teratur.
• Rangkaian ini akan dihasilkan dengan urutan mulai dari rangkaian
terpendek yang terdiri dari satu simbol, dua simbol, dst.
• Untuk setiap urutan bilangan yang terdapat pada pita kedua, mesin
Md akan mensimulasikan perilaku Mn secara deterministik, yaitu
menggunakan nomor aksi yang sudah dibangkitkan pada pita
kedua.
5/30/2021 18
19

Mesin Turing non-deterministik


• Dengan demikian jika Mn menerima rangkaian simbol
masukan, haruslah ada sebuah rangkaian aksi yang
menerimanya.
• Pita ketiga digunakan untuk menelusuri hasil dari setiap
pilihan aksi yang terdapat pada pita kedua.
• Seluruh pilihan aksi yang ada pada pita kedua akan
dieksekusi hingga pita string diterima (mencapai halt state).

5/30/2021 19
20

Mesin Turing Decider


• Sebuah mesin Turing M dapat gagal menerima input dengan mencapai qreject state
dan menolak, atau looping.
• Sulit membedakan sebuah mesin yang looping dari mesin yang berjalan dalam
waktu yang lama.
• Lebih disukai mesin Turing yang halt pada semua input; mesin seperti itu tidak
pernah loop.
• Mesin ini disebut decider karena mereka selalu membuat keputusan untuk
menerima atau menolak.
• Mesin ini dapat bersifat non deterministik yang setiap cabangnya memastikan akan
mencapai halt state untuk setiap input yang mungkin.

5/30/2021 20
21

Kombinasi Mesin Turing


• Kita bisa membangun suatu mesin turing menjadi bentuk
yang lebih besar.
• Hal ini sebenarnya sama dengan penggabungan sub modul
pada saat kita membangun program yang lebih besar.
• Untuk melakukannya, mesin turing akan ditransisikan sebagai
suatu diagram transisi, dan kita bisa mengkombinasikannya
sebagaimana operasi union, atau konkatenasi pada FA
22

Konkatenasi [1]
• Bayangkan kita memiliki mesin turing M1 dan M2, serta diagram
transisi T1 dan T2 serta tape symbol,
• Dan kita ingin membangun suatu mesin turing yang lebih besar
dengan melanjutkan melaksanakan M2 pada saat mesin kita selesai
mengerjakan M1.
• Maka untuk operasi ini kita bisa bangun dengan menghilangkan halt
state pada M1, dan menghilangkan initial state pada M2.
• Kemudian untuk menggabungkan mesin itu, untuk setiap x di 
akan kita buatkan busur berlabel x/x dari old halt state M1 ke old
initial state di M2.
23

Penggabungan Konkatenasi Mesin Turing


x/R x/L

p q r s

y/R y/L
a. M1 b. M2

x/R x/x x/L

p q r s

y/R y/y y/L

c. M1 dikonkatenasi dengan M2
24

Teknik Kombinasi Mesin Turing


• Dalam kondisi tertentu, mengkombinasikan mesin turing membutuhkan
beberapa teknik penggabungan yang lebih kompleks.
• Sebagai contoh:
• Mungkin kita ingin menginginkan berhenti di M1 pada saat kita
menemukan x, dan meneruskan ke M2 jika kita menemukan y.
• Atau jika kita punya M1, M2 dan M3, dan kita akan mulai dari M1, dan
berhenti jika selesai M1 menemukan Δ, atau saat selesai M1 ditemukan
x akan kita lanjutkan ke M2, atau saat selesai M1 kita temukan y maka
kita lanjutkan ke M3
25

Aturan Kombinasi Mesin Turing


• Hilangkan initial designation dari semua initial state, namun tidak
pada mesin yang mana kita akan mulai mesin kombinasi kita.
• Hilangkan semua halt state, dan perkenalkan satu halt state baru.
• Untuk setiap old halt state p, dan setiap x di , tambahkan busur
dengan aturan:
• Jika mesin kombinasi harus berhenti saat mencapai p dengan current
symbol x, maka buat busur dari p ke halt state baru dengan label x/x.
• Jika saat mencapai p dengan current symbol x, mesin kombinasi harus
melanjutkan ke mesin M=(S, Σ, , , i, h), maka gambar label x/z dari p
ke q dengan (i, x) = (q, z)
26

Contoh Kombinasi Mesin Turing[1]


x/R

p y/R q

Δ/R
a. Bergerak 1 sel ke kanan
x/R Δ/R
x/x
p y/R p q

Δ/R y/R
b. Menemukan x pertama di kanan dari current sel
27

Contoh Kombinasi Mesin Turing [2]

x/R Δ/R
y/y
p y/R p q

Δ/R x/R
c. Menemukan y pertama di kanan dari current sel
28

Contoh Kombinasi Mesin Turing [3]


29

Building Block
• Jika kita membangun suatu program hasil gabungan dari
beberapa modul, maka kita bisa mendesain dengan
mengabaikan detail terlebih dahulu.
• Hal yang sama juga pada saat kita membangun suatu mesin
turing. Kita akan abaikan detail (diagram transisi) untuk
membangun mesin yang lebih besar.
x
• Bentuk ini disebut building block B

A
C
y
30

Konvensi dalam perkuliahan


• Kita akan gunakan ¬x untuk menotasikan semua simbol yang bukan x
• Jika kita memiliki bulding block →A→B→C maka dapat kita sederhanakan
menjadi →ABC.
• Notasi pada gambar a berarti kita akan simpan nilai di head yang bernilai x,
y, atau z ke variable ω.
• Notasi pada gambar b berarti kita akan simpan x, atau y di head ke ω setelah
selesai M1, dan meneruskan ke M2, dan kita akan mengerjakan M1 lagi jika
setelah selesai di M2 kita menemukan symbol yang sama seperti di ω.
x M2

ω M1
x, y, z ω x, y ω
} M1 } M2
¬x
M3
(a) (b) (c)
31

Blok Mesin Turing[1]


• Telah kita ketahui bahwa kita bisa membangun mesin turing
yang lebih besar dari mesin-mesin yang lain
• Komponen dasar dari mesin turing:
• Menggerakkan head ke arah kiri
• Menggerakkan head ke arah kanan
• Menuliskan suatu symbol
32

Blok Mesin Turing[2]


x/R

R y/R

Δ/R

x/L

L y/L

Δ/L
x/x

x y/x

Δ/x
33

Blok Mesin Turing[3]


• Dengan mesin-mesin tersebut, kita bisa membangun mesin-
mesin yang lebih besar dengan melakukan kombinasi
terhadap mesin tadi.
• Contoh Rx adalah mesin yang dari current head akan
bergerak ke kanan hingga ditemukan x.

y
R
Δ
34

Blok Mesin Turing[4]


• Mesin lain yang cukup berguna adalah R¬x adalah mesin yang
dari current head akan bergerak ke kanan hingga head
menunjuk bukan x.
• Hal yang sama berlaku untuk mesin L, kita bisa bangun Lx dan
juga L¬x
• Atau juga jika kita menginginkan mesin yang menemukan y,
dan Δ pada blok mesin ke kiri atau ke kanan.
35

Blok Mesin Turing[5]


• Berikut adalah bentuk lengkap dari blok mesin kita
Rx R¬x
y x
R R
Δ

Lx L¬x
y x
L L
Δ
36

Mesin Shift Right


• Mesin shift right adalah mesin yang akan melakukan pergeseran
semua simbol non blank di sebelah kiri dari current head satu sel ke
kanan, dengan mesin akan kembali lagi ke awal posisi head.

x, y ω x, y σ
ΔL } L } RσL

Δ Δ

R RΔRΔω
37

Mesin Shift Left


• Mesin shift left adalah mesin yang akan melakukan pergeseran
semua simbol non blank di sebelah kanan dari current head satu sel
ke kiri, dengan mesin akan kembali lagi ke awal posisi head.

x, y ω x, y σ
ΔR } R } LσR

Δ Δ

L LΔLΔω
38

Latihan [1]
• Dengan mesin turing seperti pada gambar, apakah mesin akan
mencapai halt state jika konfigurasi string adalah : xxxΔΔΔΔΔ… ???
x/R

x/R
Δ/R

Δ/Δ
39

Latihan [2]
• Desain mesin turing yang memiliki tape symbol x, y, dan Δ dan mencari pola
xyxy. Akan mencapai halt jika pola ditemukan.
• Desain mesin turing yang ketika dimulai head berada di leftmost tape, akan
terjadi abnormal termination jika terdapat x di manapun di tape. Jika kita
terapkan pada tape yang tidak ada x-nya, apakah mesin akan dapat
mendeteksi hal itu?

Anda mungkin juga menyukai