Pertemuan 14 Pengantar ke Mesin Turing
Download
Report
Transcript Pertemuan 14 Pengantar ke Mesin Turing
Pertemuan 14
Pengantar ke Mesin Turing
Teori Bahasa dan Otomata (KOM208)
SKS: 3(3-0)
TIK, Subtopik dan Waktu Penyajian
• Tinjauan Instruksional Khusus:
– Mahasiswa akan dapat menjelaskan cara kerja mesin
turing.
• Subtopik:
– Notasi untuk mesin turing
– Diagram transisi dari mesin turing
– Bahasa dari mesin turing
• Waktu penyajian: 1 x 150 menit
Pendahuluan
• 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.
Pendahuluan
• 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.
• Visualisasi dari sebuah mesin Turing diberikan oleh gambar
berikut:
…
B
B
X 1 X2
Xi
Finite
Control
Xn B
B
…
Pendahuluan
• Mesin terdiri dari sebuah finite control, yang dapat
berada dalam sebuah himpunan berhingga dari
state.
• Terdapat sebuah tape yang dibagi ke dalam kotakkotak atau sel-sel.
• Setiap sel dapat menampung sebuah dari
sejumlah berhingga dari simbol.
• Pada awalnya, input yang merupakan string dari
simbol dengan panjang berhingga dipilih dari input
alphabet, ditempatkan pada tape.
Pendahuluan
• Sel-sel tape yang lain, perluasan secara infinite ke kiri dan
ke kanan, pada awalnya menampung simbol khusus yang
dinamakan blank.
• Blank bukan sebuah input symbol, dan mungkin terdapat
simbol tape yang lain disamping input symbol dan blank.
• Terdapat sebuah tape head yang selalu ditempatkan pada
salah satu dari sel-sel tape.
• Mesin turing dikatakan men-scan sel tersebut. Pada
awalnya, tape head berada pada sel paling kiri yang
menampung input.
Pergerakan mesin Turing
• Sebuah pergerakan mesin Turing adalah sebuah
fungsi dari state dari finite control dan tape symbol
yang di-scan.
• Dalam satu pergerakan, mesin Turing akan:
– Merubah state. Next state dapat sama dengan current
state.
– Menulis sebuah tape symbol dalam sel yang di-scan.
Tape symbol ini mengganti symbol apapun yang ada
dalam sel tersebut. Secara opsional, simbol yang
dituliskan dapat sama dengan simbol yang sekarang
ada dalam tape.
– Memindahkan tape head ke kiri atau ke kanan.
Notasi formal Mesin Turing
Mesin Turing dijelaskan oleh 7-tuple:
M = (Q, , , , q0, 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 .
Notasi formal Mesin Turing
• : 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.
Notasi formal Mesin Turing
• q0: 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
Mesin Turing
• ID digunakan untuk mengetahui apa yang mesin
Turing kerjakan. ID direpresentasikan oleh string
X1X2X3… Xi-1qXiXi+1 … Xn, dimana:
– q adalah state dari TM
– Tape head men-scan simbol ke-i dari kiri.
– X1X2 …Xn adalah bagian dari tape di antara nonblank
pada sel paling kiri dan paling kanan.
• Pergerakan TM M = (Q, , , , q0, B, F) dinyatakan
oleh notasi ├ atau ├. ├*M atau ├* digunakan
untuk menunjukkan nol, satu atau lebih
pergerakan dari TM.
ID untuk Mesin Turing
• Anggap (q, Xi) = (p, Y, L), yaitu pergerakan
selanjutnya adalah ke kiri. Maka
X1X2… Xi-1qXiXi+1 … Xn
├ X1X2… Xi-2pXi-1 YXi+1 … Xn
• Pergerakan ini menyatakan perubahan ke
state p.
• Tape head sekarang diposisikan di sel i-1.
ID untuk Mesin Turing
• Jika i = n dan Y = B maka simbol B yang
ditulis pada Xn berhubungan dengan urutan
tak hingga dari blank-blank yang mengikuti
dan tidak muncul dalam ID selanjutnya.
Dengan demikian
•
X1X2 ...Xn-1 q Xn├ X1X2… Xn-2p Xn-1
ID untuk Mesin Turing
• Terdapat dua pengecualian:
– Jika i=1, maka M bergerak ke blank ke bagian
kiri dari X1. Dalam kasus ini,
qX1X2 ...Xn├ pBYX2… Xn
– Jika i = n dan Y = B maka simbol B yang ditulis
pada Xn berhubungan dengan urutan tak hingga
dari blank-blank yang mengikuti dan tidak
muncul dalam ID selanjutnya. Dengan demikian
X1X2 ...Xn-1 q Xn├ X1X2… Xn-2p Xn-1
ID untuk Mesin Turing
• Anggap (q, Xi) = (p, Y, R), yaitu pergerakan
selanjutnya adalah ke kanan. Maka
X1X2… Xi-1qXiXi+1 … Xn ├ X1X2… Xi-1 YpXi+1 … Xn
• Tape head telah bergerak ke sel i+1. Terdapat dua
pengecualian:
– Jika i = n, maka sel ke-i+1 menampung sebuah blank,
dan sel tersebut bukan bagian dari ID sebelumnya.
Dengan demikian
X1X2 ... Xn-1 qXn├ X1 X2… Xn-1YpB
– Jika i = 1 dan Y = B maka simbol B yang ditulis pada X1
berhubungan dengan urutan tak hingga dari blank-blank
dan tidak muncul dalam ID selanjutnya. Dengan
demikian
qX1X2 ...Xn├ pX2… Xn
Contoh 1
• Diberikan TM yang menerima bahasa {0n1n | n1}.
M = ({q0, q1, q2, q3, q4}, {0, 1},{0, 1, X, Y, B},
, q0, B, {q4})
Fungsi transisi diberikan sebagai berikut:
State
Simbol
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)
q4
-
-
-
-
-
Contoh 1 (lanjutan)
• Misalkan mesin Turing M diberi masukan
0011. Pada keadaan awal, mesin Turing M
berada dalam state q0, men-scan 0 yang
pertama, yaitu ID M awal adalah q00011.
• Urutan pergerakan M adalah:
q00011├ Xq1011├ X0q111├ Xq20Y1├
q2X0Y1├ Xq00Y1├ XXq1Y1 ├ XXYq11├
XXq2YY├ Xq2XYY ├ XXq0YY├ XXYq3Y├
XXYYq3B├ XXYYBq4B
Contoh 1 (lanjutan)
• Contoh pergerakan yang lain diberikan input 0010.
• Urutan pergerakan M adalah:
q00010├ Xq1010├ X0q110├ Xq20Y0├ q2X0Y0├
Xq00Y0├ XXq1Y0├ XXYq10├ XXY0q1B
• Dalam state q1, M tidak memiliki pergerakan pada
tape symbol B.
• Dengan demikian M tidak menerima input yang
diberikan.
Diagram Transisi untuk Mesin Turing
• Diagram transisi terdiri dari sebuah himpunan dari
node-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.
Diagram Transisi untuk Mesin Turing
• 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.
Y/Y
0/0
Y/Y
0/0
start
Diagram
transisi
Mesin Turing
pada Contoh
1:
0/X
q0
1/Y
q1
Y/Y
X/X
B/B
q3
Y/Y
q4
q2
Contoh 2
• Mesin Turing berikut menghitungan 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 = ({q0, q1, ... , q6}, {0, 1}, {0, 1, B}, , q0, B)
Aturan untuk fungsi transisi :
State
q0
q1
q2
q3
q4
q5
q6
0
(q1, B, R)
(q1, 0, R)
(q3, 1, L)
(q3, 0, L)
(q4, 0, L)
(q5, B, R)
-
Simbol
1
(q5, B, R)
(q2, 1, R)
(q2, 1, R)
(q3, 1, L)
(q4, B, L)
(q5, B, R)
-
B
(q4, B, L)
(q0, B, R)
(q6, 0, R)
(q6, B, R)
-
Diagram transisi dari mesin Turing M:
B/ B
0/ 0
start
0/ B
q0
1/ 1
1/ 1
q1
0/ 1
q2
q3
0/ 0
1/ 1
1/ B
B/ B
B/ B
q5
B/ 0
q6
0/ B
1/ B
q4
0/ 0
1/ B
Bahasa dari Mesin Turing,
Mesin Turing dan Halting
Misalkan M = (Q, , , , q0, B, F) adalah mesin Turing. Maka
L(M) adalah himpunan dari string-string w dalam *
sedemikian sehingga q0w p untuk suatu state p dalam
F dan string tape dan .
Mesin Turing dan Halting:
• Notasi acceptance lain yang sering digunakan dalam
mesin Turing adalah acceptance by halting.
• Mesin Turing dikatakan halt jika mesin tersebut masuk ke
sebuah state q, men-scan simbol tape X, dan tidak ada
pergerakan dalam kasus ini; yaitu (q, X) tidak
didefinisikan.
Contoh 3
• Mesin Turing dalam Contoh 2 tidak dirancang
untuk menerima sebuah bahasa, tetapi sebagai
komputasi fungsi aritmatika.
• Perhatikan bahwa M halt pada semua string dari
para 0 dan para 1, karena apapun yang ditemukan
M pada tape-nya, M akan mengganti kelompok
kedua dari para 0
– Jika m dapat menemukan grup tersebut, berlawanan
dengan grup pertama dari para 0, dan dengan demikian
M mencapai state q6 dan halt.
Daftar Pustaka
• John E. Hopcroft, Rajeev Motwani, Jeffrey D.
Ullman. 2001. Introduction to Automata
Theory, Languange, and Computation. Edisi
ke-2. Addison-Wesley