Anda di halaman 1dari 75

Dokumen ini merupakan bagian kedua Kuliah Teori Komputasi (MAT40414 3).

Dokumen ini hanya sebagai penunjang pelaksanaan perkuliahan. Untuk memahami materi kuliah, Anda wajib membaca : 1.Diktat Kuliah 2.Hand-out (berisi materi yang tidak ada dalam diktat) 3.Buku Acuan yang digunakan

Bagian kedua
5. Bahasa dan Mesin Abstrak 6. Tata Bahasa Regular dan Himpunan Regular 7. Pengenalan Bahasa oleh Mesin 8, Tata Bahasa Bebas Konteks 9. Automata Push Down 10.Mesin Turing

5. Bahasa & Mesin Abstrak


Apa hubungan antara bahasa > < mesin abstrak ? telah kita pelajari, diberikan tata bahasa G, maka L(G) = ? diberikan mesin abstrak M, maka L(M) = ? automata hingga

Bahasa & Mesin Abstrak


Bagaimana mesin mengenal bahasa ? i.e Bagaimana mesin mengenal untai ?
telah kita pelajari, bagaimana automata hingga mengenal untai Menggambarkan, tata bahasa yang digunakan oleh automata hingga

Kita perhatikan lagi, bagaimana automata hingga mengenal suatu untai diberikan untai w untuk diperiksa oleh automata hingga M, apakah diterima/dikenal atau tidak Menentukan bahasa yg dikenal/dibangkitkan oleh M

Mesin abstrak ?
input xxxx output
dipahami /tdk

aku kua

aturan-aturan
bagaimana bentuknya?

dipahami tidak

Automata Hingga
diagram transisi tabel transisi

mesin dalam keadaan s0 membaca

a beralih ke keadaan s0 mesin dalam keadaan s0 membaca b beralih ke keadaan s1

Bahasa dan Automata Hingga


Pengenalan Untai
Diberikan automata hingga M dan untai x = x1 xn x dikenal/tidak oleh M ? -----x = aabba M = (S, I, f, s0 , F), S = {s0, s1}, I = {a, b}, F = {s0} Proses komputasi pemeriksaan untai : f(s0, aabba) = f(f(f(f(f(s0, a), a), b), b), a) = f(f(f(f(s0, a), b), b), a) = f(f(f(s0, b), b), a) = f(f(s1, b), a) = f(s0, a) = s0 s0 : keadaan penerima, maka untai aabba diterima oleh M aabba L(M)

Automata hingga & pengenalan untai

(s0, aabba) |M |M |M |M |M Jadi, (s0, aabba)

(s0, abba) M(s , aabba) M(s0,abba) (s0, bba) M(s0,bba) (s1, ba) M(s1, ba) (s0, a) M(s0, a) (s0, ^), untai selalu berakhir dgn ^ |M* (s0, ^)
0

Perhatikan baik-baik bagaimana urutan - pola pemeriksaan yg dilakukan !

Perhatikan pola umum pemeriksaan oleh automata hingga

Perhatikan : x = x1x2 .xn


(i) x1 dibaca,
simbol terminal

x2 .xn belum dibaca


simbol non terminal

x = x1x2 x3. xn (ii) x2 dibaca, x3 .xn belum dibaca


simbol terminal . simbol non terminal

(n) dst, dibaca

xn

x1x2 .xn-1xn telah semua terbaca

Dari pola pembacaan tsb, tahukah kita tata bahasa yg digunakan oleh automata hingga ?

Perhatikan tata bahasa regular


G = (VN ,VT, S, P), dgn VN = {S, A) ; VT = {x1, x2, , xn ) P = { S x1A, A x2A, , A xn} Samakah pola penurunan L(G) dan pola pembacaan untai x = x1x2 .xn SAMA Kesimpulan : automata hingga menggunakan tata bahasa REGULAR

6. Tata

bahasa Regular
&

Himpunan Regular

Tata bahasa Regular & himpunan Regular Tata bahasa regular G1 : P = {S^ , Sa, S aA, A aA, A a} = {S^ | a | aA, A aA | a} Pembentukan kalimat : S^ | Sa | SaA | S aA | aa aaA . perhatikan pola pembentukannya ! aa a
L(G1) = ?

Tata bahasa Regular & himpunan Regular Tata bahasa regular G2: P = {Sa |b | bA, A bA | b} Pembentukan kalimat: S a | S b | S bA | S bA bb bbA .. perhatikan pola pembentukannya ! bb.b
L(G2) = ?

Tata bahasa Regular & himpunan Regular Himp regular : himp kalimat (kata) yang dibangkitkan oleh tata bahasa regular Ekpresi regular : anggota himp regular
Contoh sebelumnya: 1. ^, a, aa, aaa, aaa 2. a, b, bb, bbb, bbb

Tata bahasa Regular & himpunan Regular


Ekspresi regular sepanjang himp I, secara rekursif didefinisikan sbg: : himp tak mengandung untai simbol : suatu ekspresi regular ^ : himp yg hanya mengandung simbol ^ : suatu ekspresi regular untai hampa simbol x : suatu ekpresi regular, bila x I x : himp yg hanya mengandung 1
simbol x

simbol AB, AB, dan A* : ekpresi regular, bila A dan B : ekspr regular AB : himp A dirangkaikan himp B
A B : himp A digabung himp B A* : penutup himp A Contoh ?

7. Pengenalan Bahasa oleh mesin


Teorema Kleene : Himp disebut regular jik-ka himp tsb dikenal oleh automata hingga Buat AH yg berhubungan ! Tunjukkan bhw
1. 2. 3. 4. 5. 6. dikenal oleh automata hingga (AH) {^} dikenal oleh AH {x} dikenal oleh AH AB dikenal AH bila A dan B dikenal oleh AH AB dikenal oleh AH bila A dan B dikenal AH A* dikenal oleh AH bila A dkenal AH

Pengenalan Bahasa oleh mesin


Hubungan mesin abstrak dan tata bahasa 1. M : mesin abstrak bahasa apa yg dibangkitkan oleh M ? M bekerja berdasarkan tata bahasa apa ? 2. G : tata bahasa mesin apakah yg membangkitkan L(G) ? mesin apakah yg bekerja berdasarkan G ?

Pengenalan Bahasa oleh mesin


Kesimpulan : Tata bahasa regular mesin automata hingga (i) Bahasa regular dpt dibangkitkan dgn menggunakan mesin automata hingga (ii) Automata hingga bekerja berdasarkan tata bahasa regular
Dapatkah bahasa selain regular dibangkitkan oleh automata hingga ? Adakah mesin lain?

Latihan :
membentuk AH dari suatu tata bhs yg diberikan

L(G1) = {a} AH ? L(G2) = {a, b} AH ? L(G3) = {an | n = 0, 1, . } AH ? L(G4) = {anb| n = 0, 1, . } AH ? L(G5) = {a}{b} AH ?
AH ?

L(G6) = {an | n=0, 1, }{b}

Adakah algoritma (i) membentuk tata bhs regular dari automata hingga ? (ii) membentuk automata hingga dari tata bhs regular ?

Pembentukan Tata Bahasa dari Mesin


(i) Bagaimana membentuk tata bahasa regular dari AHD (ii) Bagaimana membentuk tata bahasa regular dari AHN ?

(i)Pembentukan tata bhs regular dari AHD


AHD M = (K, I, f, S, F). K : himpunan keadaan, S : keadaan awal. himp I, dlm tata bhs merupakan VT. Akan dibentuk TBR, G = (V,V, S, P), S : simbol awal Algoritma:

1. Tetapkan V = I, S = S, V = S 2. Jika Ap, Aq K dan a I, maka : f(Ap , a) = Aq ekuivalen dengan produksi


Contoh ?

AHD dengan F = {S} dan fungsi transisi f sbb K S A B C 0 B C S A 1 A S C B P:


f(S,0) = B S 0B f(A,0) = C A 0C f(B,0) = S B 0 f(C,0) = A C 0A f(S,1) = A S 1A f(A,1) = S A 1 f(B,1) = C B 1C f(C,1) = B C 1B

G = (VT,VN , S, P), dengan VT = {0,1}, VN = {S, A, B, C}, S = S, dan P = {S 0B, S 1A, A 0C, B 1C, C 0A, C 1B, A 1, B 0}

(ii) Pembentukan AHN dari tata bhs regular


Diberikan TBR G = (VT,VN, S, P). Akan dibentuk AHN M = (K, I, f, S, F), (K : himp keadaan, S : keadaan awal) awal Algoritma:

1. Tetapkan I = V T , S = S, K = VN 2. Produksi Ap a Aq ekuivalen dengan f(A, ap ) = Aq Produksi Ap a ekuivalen dengan f(Ap, a) = X, dimana X VN 3. K = K {X} 4. F = {X}

Contoh ? Bagaimana membentuk AHD dari TBR?

G = (V T ,VN , S, Q), dgn VT = {a, b}, VN = {S, A, B}, S = S, dan Q = {S aS, S bA, A aA, A aB, B b}
1. I = VT = {a, b}, S = S, K = VN = {S, A, B} 2. S aS f(S,a) = S, S bA f(S,b) = A A aA f(A,a) = A, A aB f(A,a) = B B b f(B,b) = X AHN, M = (K, I, f, S, F), dengan K = {S, A, B, X}, I = {a, b}, S = S, F = {X}, dgn f= K a b S S A Bagaimana membentuk S {A,B} AHD dari TBR? B X X

8. Tata bahasa bebas-konteks (context free grammar)

Tata bahasa bebas-konteks


G = (V ,V T, S, P), P : = A, dgn AVN V= {S, a, b}, P = { S aSb | ^} S aSb | S aSb |
ab aaSbb aabb

S aSb
aaSbb . anbn

L(G) = {anb n | n = 0,1, ..}

Adakah tata bhs regular yg membangkitkan L(G) tsb ?

Tata bahasa bebas-konteks


G = (V ,V T, S, P), P : = A, dgn AVN VN = {S, A, V, P},
prod.

V T = {John, big, green, cheese, ate},

P = {S PVP, P N|AP, A big|green, Ncheese|John, V ate } Kalimat terbentuk dalam L(G) :


John ate cheese big cheese ate green green big green big cheese Big John ate green cheese green John ate green big John Big cheese ate John

adakah ekspresi bebas-konteks (dlm bhs pemrograman) ?

Beberapa pengertian dasar


(diktat hl 69-74)

Simbol non terminal aktif Simbol tercapaikan simbol tak tercapaikan simbol berkelebihan (redundant) Tata bhs bebas konteks dgn untai ^
Teorema: Jika L: bhs bebas konteks yg dibentuk oleh tata bhs bebas konteks yg mengandung produksi- ^, maka akan terdpt tata bhs bebas konteks lain tanpa produksi-^ yg membentuk L juga * aturan penggantian

Simbol non terminal hampa

Beberapa pengertian dasar


(diktat hl 69-74)

Tata bhs bebas konteks dgn produksi satuan Bentuk normal Chomsky Teorema: Jika L : bhs yg dibentuk oleh G, maka terdpt G yg
membentuk bhs semua untai takhampa dari L, yg bersifat bhw semua aturan G berbentuk salah satu dari: simbol nonterm untai terdiri dari hanya simbol nonterm. (*) simbol nonterm satu simbol term. Tata bhs bebas konteks yg hanya memp produksi bentuk (*), disebut berada dalam bentuk normal Chomsky

Contoh ?

Beberapa pengertian dasar


(diktat hl 69-74)

Penurunan paling kiri Lemma : Untuk tata bhs bebas konteks G = (V N,V T,S,P) dan sembarang untai w V T*, S * w jik-ka S *L w

Mesin pembangkit bhs bebas konteks


Automata hingga M aturan produksi : A wB Tata bhs regular !

pada keadaan A mesin membaca w, mesin beralih ke keadaan B Bb pada keadaan B mesin beralih ke keadaan akhir yg diproduksi Bagaimana dgn aturan produksi A wBx ? bebas konteks pada keadaan A mesin membaca w dan beralih ke keadaan B. Setelah itu mesin memproduksi x Mesin hrs berkemampuan unt mengingat : untai apakah yg diproduksi seblm untai x

sarana : memori

9. Automata push-down

Automata push-down
Mesin yg sesuai dgn keperluan : automata hingga dilengkapi dgn memori berstruktur tumpukan (stack) sbg push-down store Jika mesin berada dlm keadaan A, membaca w, mesin menaruh x pada tumpukan, kemudian beralih ke keadaan B Simbol-simbol pada tumpukan dipindahkan kembali sesuai dgn perintah (aturan) yg dikehendaki
a b b a b a b a b a a b tumpukan (stack)

berupa apa Kendali tsb ?

kendali

Struktur mesin : Automata push-down M = (S, A, T, f, s0 , F), Apa bedanya dgn S : himp keadaan Automata hingga ? A : himp simbol input T : himp simbol tumpukan s0 S merupakan simbol awal F S : himp keadaan akhir f : relasi transisi (S x A* x T*) x (S x T*)
atau f : S x A* x T* S x T*
triplet doublet

Automata push-down
operasi, f : S x A* x T* S x T* transisi ((p,u,) , (q,)) f

Push ((p,u,^) , (q,a))


push simbol a taruh simbol a tepat ke puncak tumpukan
x a x

Pop ((p,u,a) , (q, ^))


a x

pop simbol a pindahkan simbol a dari puncak tumpukan


x

Adakah fasilitas tsb dlm C++

Rancangan M yg menerima bhs L = (wcwR | w {a,b}*

M = {S, A, T, f, s0 , F}, dgn S = {s0, s1}, A={a,b,c}T ={a, b}, F = {s1}, f mengandung 5 transisi: 1.((s0,a,^) , (s0,a)) 2. ((s0,b,^) , (s0,b)) 3. ((s0,c,^) , (s1,^)) 4.((s1,a,a) , (s1,^)) 5. ((s1,b,b) , (s1,^))

Rancangan M yg menerima bhs L = (wwR| w {a,b}*

M = {S, A, T, f, s0 , F}, dgn S = {s0, s1}, A=T ={a, b}, F = {s1}, f mengandung 5 transisi: 1.((s0,a,^) , (s0,a)) 2. ((s0,b,^) , (s0,b)) 3. ((s0,^,^) , (s1,^)) 4.((s1,a,a) , (s1,^)) 5. ((s1,b,b) , (s1,^)) Lakukan komputasi ! Apa bedanya dng seblmnya ?

Automata push-down & tata bhs bebas-konteks


Teorema : klas bhs yg diterima oleh automata pushdown adalah klas bhs bebas-konteks Lema : setiap bhs bebas-konteks diterima oleh automata
push-down jika suatu bhs diterima oleh automata push-down, maka bhs tsb adalah bhs bebas-konteks Sifatnya ? Baca diktat !

tata bahasa mesin


regular automata hingga

bebas-konteks automata push-down peka-konteks ? Automata linear-bounded umum ? Mesin Turing !!!!!!

10. Mesin Turing


(i) sebagai pengenal bahasa (ii) Sebagai sarana melakukan operasi terhadap untai (iii) Mesin Turing Lanjut

Mesin Turing
(i) mesin Turing sebagai

pengenal bahasa

Mesin Turing
model skematis s1 arah s2 s3 s4 s5
kepala baca/tulis kendali

qj

qk

apa bedanya dgn automata hingga ?

perintah/tindakan (qi,sj,sk,qm) atau qisjskqm


Mesin dlm keadaan q i membaca sj menggantikannya dg. sk beralih ke keadaan qm

perintah/tindakan (qi,sj,R,qm) atau qisjRqm


Mesin dlm keadaan q i membaca sj bergerak 1 sel ke kanan, beralih ke keadaan qm

perintah/tindakan (qi,sj,L,qm) atau qisjLqm


Mesin dlm keadaan q i membaca sj bergerak 1 sel ke kiri, beralih ke keadaan qm

Contoh: isi sel s0 s0 s0 s1 s1 s2 s1 s0 s0 s0

Mesin dlm keadaan q i membaca si menggantikannya dg. sk bergerak 1 sel ke kanan, beralih ke keadaan qm

?????

sisj .. sksj .. .. qisjsj .. kursor di si 1. qisiskqj ...qjsksj .. Sk menggantikan S kursor tetap 2. qjskRqm .. skqmsj .. kursor di sj
i

gabungan tindakan

membentuk prosedur

qisiskqj dan qjskRqm

qi (si,sk)Rqm

Mesin Turing T = (A, Q, X, P)


A = {s0, s1, s2, ., sn} Q = {q0, q1, q2, .,qn}
himp.hingga simbol himp.hingga keadaan X = himp.ekspresi (konfigurasi) pita, X A* bentuk umum : qi , dgn A* , qi Q, A* P = himp hingga perintah, dinyatakan sbg kuadrupel A Q {R, L} bentuk umum dasar :

qisjskqm ; qisjRqm ; q isjLqm

Komputasi Mesin Turing


: Pengerjaan urutan perintah atau tindakan (kuadrupel) dalam melakukan tujuan hasil setiap tindakan : deskripsi sesaat (w0, w1, .. ) Komputasi: proses penurunan w0 T* wn dalam hal ini, wi T wi+1 , i=0,1, dgn wf T wg bersifat tertentu
(lht hal.86)

Mesin Turing
(ii) mesin Turing sebagai sarana melakukan operasi terhadap untai

Penggunaan : mesin perangkai untai

q0BRq0, q0aRq1,

q1aRq1, q1bRq1,

q2BBq3, q2aBq4,

q4BLq6 q6Baq1

q0bRq1, q1BRq2, q2bBq5, q5bLq7, q7Bbq1


BBabbba

Mesin perangkai

Tugas (di kelas)


Nyatakan struktur matematis dari mesin Turing di atas.
yaitu : T = (A, Q, X, P), dengan A = ., ; Q = ., ; X = . ; P = ..

Dengan menggunakan mesin di atas, lakukan perangkaian thd untai : baa dan ab

Tugas
Gunakan mesin Turing yang digunakan untuk menghapus (delete) suatu untai yg diberikan, yg ada pada diktat bab mesin penghapus ^^^

Untuk untai input : bab, bbaa, babab


Pada diktat terdapat salah ketik, betulkan dahulu !

Mesin Turing pengenal untai (bahasa)


Memeriksa untai apakah diterima oleh mesin T atau tidak ? xx .. x aabba T diterima / tidak AABBA

diterima : xx..x sesuai dgn tata bhs nya T

Mesin Turing pengenal bahasa


Tata cara penulisan 1.untai input : ditulis dgn huruf kecil
jika suatu huruf sdh dibaca, nyatakan dgn huruf besar (bila perlu) blank ditulis dgn ^ atau (bukan B) 2.Perintah (kuadrupel) pada diagram transisi di samping busur (qi,qj),

qisjskqj ditulis q isjRqj qisj Lqj q i (si,sk)Rqj q i (si,sk)Lqj

(sj , Sk) atau sj , Sk (sj : R) atau sj : R (sj : L) atau sj : L (si,Sk: R) atau si,Sk: R (si,Sk: L) atau si,Sk: L

digunakan selanjutnya

mesin sederhana: pengenal aa

L(T) = {aa}

Bagaimana unt L(T) = {an |n=0,1,2,.} ? singleton

L(T)= {anbn |n=0,1,2,..} ?

Mesin Turing pengenal bahasa Contoh: pengenal L = {anbn | n 0).

Bandingkan dgn diktat

pemeriksaan untuk a2b2

mesin pengenal untai xx..xaba (A={a,b}) Periksa untai aaba ? untai baba ? abab ?

mesin pengenal untai xx..xaba (A={a,b}) awal : q0 ^aaba q0 ^baba ^q1 aaba ^q1 baba ^aq2 aba ^bq1 aba ^aaq2 ba ^baq2 ba ^aabq3 a ^babq3 a ^aabaq4 ^ ^babaq4^ ^aaba^h ^baba^h aaba, baba diterima (dikenal) oleh mesin T
Bagaimana dengan abab ? abaaba ?

Menggunakan fungsi f : Q x A Q x (A {L,R}) f(q0, ^aaba) (q1,^aaba) (q2,^aaba) (q2,^aaba) (q3,^aaba) (q4,^aaba^) (h, ^aaba^) aaba diterima (dikenal) oleh mesin T
T T T T T T

Coba untuk baba, ? abab ? abaaba ?

Gabungan 2 atau lebih mesin Turing


Mesin T1 digabung mesin T2 menjadi mesin T3
penghapus, perangkai

T1 T2 T1

T2

bbxaa bb^aa bbaa

Konsep: fungsi,prosedur, subprogram dlm program

Mesin Turing Lanjut

(iii) Mesin Turing Lanjut

Komputabilitas
Diberikan suatu operasi X dapatkah dikonstruksi mesin Turing untuk melakukan operasi X ? Apabila dapat dikontruksi, maka X disebut computable (dapat dikomputasikan)
Bagaimana ciri-cirinya ? Konsep komputabilitas menjadi inti teori komputasi, disamping konsep lainnya (?)

Hal Lanjut
Turing-computable Turing-decidable Turing-acceptable Theorem : Turing decidable language is Turing- acceptable (not vice-versa) More powerful Turing machine universal mesin Turing Nondeterministic Turing Machine

Inti kajian teori komputasi

Mesin Turing

Hal lanjut :
Kompleksitas komputasi : klas P klas NP, NP komplit Obyek Masalah : TSP siklus Hamilton Dasar matematis : kalkulus proposisi

Ingin mengetahui lebih lanjut ?


Bacalah literatur-literatur tentang : Teori komputasi
BUKAN DIKTAT KULIAH

DIKTAT KULIAH hanya merupakan Pengantar atau Dasar dari Teori Komputasi

Acuan
1. 2. 3. 4. 5. Daves, M. and Weyuker, EW (1983). Computability, Complexity and Language. Academic Press, Inc. Lewis, H and Papadimitriou, CH (1981). Elements of Theory of Computation. Prebtice Hall, Inc. Manna, Z. (1074).Mathematical Theory of Computation, Mc Graw Hill. Rosen, KH (1991). Discrete Mathematics and Its Application. Mc Graw Hill. Tremblay, JP and Manohar, R. (1987). Discrete Mathematical Structure with Application to Computer Science, Mc Graw Hill.