Anda di halaman 1dari 43

Pertemuan 14:

Mesin Turing
(Turing Machine (part-1)
By Anis Rohmadi, S.Kom., M.Kom.
Mesin Turing (bagian 1)
Pokok Bahasan:
1 Review Minggu Lalu

Sejarah & Definisi Mesin Turing


2

Model & Aksi Mesin Turing


3

4 Deskripsi & Unrestricted Grammar → Mesin Turing

5 PDA → CFG & Tambahan Materi


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

Bila dilakukan Operasi Pop, kondisi STACK menjadi

Top of Stack
E
Pembahasan
Materi Minggu Ini:

Mesin Turing/Turing Machine

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.

• Meskipun sederhana, Mesin Turing memiliki kemampuan untuk


menggambarkan perilaku komputer general-purpose.

• Mesin Turing dapat digunakan untuk menghitung kelas fungsi


bilangan bulat yang dikenal sebagai fungsi rekursif sebagian (partial
recursive function).

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.

• Bahasa yang dikenali oleh Mesin Turing adalah bahasa


tanpa-pembatasan (non-restricted language), yang
disebut juga himpunan terenumerasi rekursif (recursively
enumerable set).
15
Model Mesin Turing (1)
• Sebuah mesin Turing terdiri dari komponen-komponen:
1. Pengendali berhingga (finite control)
2. Pita masukan dengan sifat:
- panjangnya tidak berhingga
(ujung kiri terbatas, ujung kanan tidak terbatas)
- dapat dibaca maupun ditulis
- sel yang tidak berisi simbol masukan akan berisi
simbol kosong (blank = B)
• Pada keadaan awal, n sel pertama dari pita masukan berisi rangkaian simbol
yang harus dikenali (dinyatakan sebagai a1, a2, …, an). Sel di sebelah kanan
rangkaian simbol berisi B.

16
Model Mesin Turing (2)
a1 a2 … … an B B B ...

R/W head

Finite State Control

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.

Cara kerja mesin Turing untuk mengenali bahasa L dinyatakan dengan


algoritma berikut:
1. Ganti simbol ‘0’ paling kiri dengan simbol ‘X’.
2. Gerakkan head ke kanan hingga dijumpai simbol ‘1’.
3. Ganti simbol ‘1’ paling kiri dengan simbol ‘Y’
4. Gerakkan head ke kiri hingga dijumpai simbol ‘X’
5. Geser head ke kanan (akan diperoleh ‘0’ paling kiri).
6. Kembali ke langkah 1.

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).

• Jika sebuah string diterima (dikenali), maka mesin Turing M berhenti.


Untuk string yang tidak dikenali (ditolak) ada kemungkinan M tidak
berhenti (looping).

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 ...

Kesimpulan: string ‘000111’ dikenali oleh mesin M.

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

*) L dan R menyatakan gerakan head ke kiri/kanan

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
- 12 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

• Contoh gerakan ke kanan oleh (p, Xi) = (q, Y, R):


X1X2 … Xi – 1p Xi Xi +1 … Xn ├ X1X2 …Xi – 1 Y q Xi + 1 … Xn

• Sebuah string (kalimat) diterima oleh mesin Turing M = (Q, , , ,


q0, B, F) jika mesin tersebut mencapai status akhir. Dengan kata lain suatu kalimat
w diterima oleh M jika terdapat rangkaian deskripsi sesaat:
*
q0 w ├ 1 p 2

yang dalam hal ini p  F dan 12  *

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)

maka komputasi string ‘0011’ oleh mesin Turing M


dinyatakan dalam rangkaian deskripsi sesaat berikut:
q00011 ├ Xq1011├ X0q111├ X q20Y1├ q2X0Y1├
Xq00Y1 ├ XXq1Y1 ├ XXYq11├ XXq2YY ├ Xq2XYY├
XXq0YY├ XXY q3Y ├ XXYYq3B├ XXYYBq4B (accepted!)

34
Unrestricted Grammar → Mesin Turing
• Misalkan w adalah kalimat yang dihasilkan oleh tata bahasa
G = (N, T, S, P).

• Mesin Turing M yang menerima w bekerja dengan cara mensimulasikan


proses penurunan w dari simbol awal S oleh tata bahasa G.

• Input awal yang dibaca oleh M adalah w#S#

• M menerapkan aturan produksi yang ada di P dengan mengubah string


yang terletak di antara ‘#’ sehingga pada pita masukan suatu saat
diperoleh w#w#

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 → 

aaaa#S#  aaaa#ACaB#  aaaa#AaaCB# 


aaaa#AaaDB#  aaaa#AaDaB#  aaaa#ADaaB# 
aaaa#ACaaB#  aaaa#AaaCaB#  aaaa#AaaaaCB# 
aaaa#AaaaaE#  aaaa#AaaaEa#  aaaa#AaaEaa# 
aaaa#AaEaaa#  aaaa#AEaaaa#  aaaa#aaaa#

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.

2. Hans Dulimarta, Catatan Kuliah Matematika Informatika


(Bagian Mesin Turing), Program Magister Informatika ITB,
2003.

42
Thank You

Anis Rohmadi, S.Kom., M.Kom.

Anda mungkin juga menyukai