Anda di halaman 1dari 72

Dokumen ini merupakan bagian pertama 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 pertama
1. 2. 3. 4. Pendahuluan Mesin Keadaan Hingga Pengantar Bahasa Alami dan Bahasa Formal Automata Hingga

1. Pendahuluan
2 x (3 + 4) = 14
dengan bantuan kalkulator Mudah ! Bagaimana dgn :

Tergantung nilai a, b, c a = 2, b = 2, c = 4, hasil s.d.a Bagaimana untuk nilai a, b, c yg lain?

a+b=? a x (b + c) = ?

Dapatkah digunakan kalkulator ?

Urutan langkah
1. 2. 3. 4. 5. Masukan nilai A, B, C Hitung (kalkulasi) X = B+C Hitung Y = A x X Tulis (keluarkan isi) Y Jika masih diperlukan nilai A, B, C yg lain, kembali ke 1. Jika tidak, selesai Oh, oh, Itu kan algoritma ya ??

Kalkulator (mekanik) : Mesin Fisik (nyata)


Urutan langkah (algoritma) dpt dianggap sebagai MESIN ABSTRAK Lantas, siapa yg menjalankan algoritma ? Kalau mudah, ya manusia.Tapi kalo rumit dan panjang bagaimana ? Yaa, mesin fisik juga tapi yg mempunyai kemampuan untuk mengerti urutan perintah dalam algoritma Ah, ah, itu kan KOMPUTER Oh, jadi dlm KOMPUTER ada mesin abstrak juga agar mampu mengerti urutan perintah Oh makanya namanya KOMPUTER (i.e yg melakukan komputasi)

Kalkulasi - Komputasi
Kalkulasi ?
Harga satuan suatu barang : Rp1000 Jika pembeli beli 3 buah, maka dengan uang Rp.5000, penjual mengembalikan : 5000 3(1000) = 2000 (rupiah)

Komputasi ?
Bedanya ?

A : banyaknya barang yg dibeli B : Banyaknya pembelian = 1000 x A U : uang kembalian = 5000 B Hitung dulu B, kemudian hitung 5000 - B

Oh, oh, oh, kalo gitu sekarang, aku sudah tahu beda makna kalkulasi dan komputasi

Kalkulasi : proses melakukan


perhitungan
dlm penyelesaian masalah

Komputasi: proses menjalankan urutan


langkah-langkah dlm penyelesaian masalah
Urutan langkah-langkah (?) ALGORITMA

Pada contoh : yang menyuruh menjalankan urutan langkah-langkah adalah kita sendiri. Bagaimana kalau yg menjalankan orang lain ?

- Kita harus memberikan urutan perintah yg dpt dipahami - Urutan perintah salah, hasilnya salah
(latihan algoritma sederhana)

Bagaimana kalau yg menjalankan perintah adalah

MESIN ?

Siapa yg melakukan perintah ? Siapa yg diperintah ?

kita (manusia)

mesin

Mesin harus dapat berkomunikasi dgn kita : mengerti bahasa kita memberitahukan siap menerima perintah menerima dan mengerti perintah dapat mengerjakan perintah memberikan hasil yg dikerjakan kepada kita dgn menggunakan bahasa kita memberitahukan bhw sudah selesai melaksanakan perintah

Bagaimana prinsip mesin tsb ?

Interaksi manusia - mesin


MESIN MANUSIA perintah MANUSIA hasil pelaksanaan

?
bahasa manusia bahasa
mesin antar muka : translator
antar muka

bahasa manusia

Proses pemikiran atau abstraksi


bagaimana prinsip mesin tsb ?

Mesin abstrak
sbg model komputasi

mesin abstrak >< mesin nyata apa hubungannya ?


Unsur utama Teori Komputasi : Teori mesin abstrak Teori bahasa
Studi lain (tidak dipelajari dalam kuliah ini): 1.Translasi perintah dalam mesin dan interpretasinya coding & decoding dasar: struktur aljabar 2.Realisasi perintah dan pengaruh akibatnya error correcting code

Tugas dalam kuliah


(i) Tugas kelas, dikerjakan dalam kelas (ii) Tugas rumah,dikerjakan di luar kelas (iii) Tugas pemrograman, dikerjakan di luar kelas. Tugas ini menggunakan bahasa C++, dan selanjutnya dipresentasikan dalam kelas.

Buku Acuan
1. Harry R.Lewis, Cristos H.Papadimitrou, Elements of Theory of Computation, Prentice-Hall Inc. 2. Zohar Manna, Mathematical Theory of Computation, McGraw-Hill 3. Buku-buku matematika diskret yg relevan

2. Mesin Keadaan Hingga Finite State Machine

mesin seperti apa itu?

Mesin Keadaan Hingga

input

MKH
-himp.hingga keadaan -transisi keadaan

output

uang logam teks: 1 0

segelas minuman 0 1

Cara menyajikan mesin ?


menggunakan graf berarah

menggunakan algoritma

mesin pembuka penutup pintu

Mana keadaan ? Mana input ? Output ?

Tabel transisi ?

Mesin Keadaan Hingga (finite state machine)

1 0 0 1 Input : 1001 transisi keadaan : s0 s0 s1 s3 s1 ouput : 0 1 1 0

Struktur Matematis
MKH merupakan sistem berupa 6-tupel :

M = (S, I, O, f, g, s0)
dengan

S : himpunan hingga keadaan (state) I : himpunan hingga simbol input O : himpunan hingga simbol output f : fungsi transisi, f : S x I S, fungsi keadaan berikut g : fungsi output, g : S x I O. f dan g disajikan dalam 2 cara : 1. tabel transisi 2. diagram transisi
Coba periksa MKH contoh sebelumnya!

Struktur fisis
arah gerak

ap f(si,ap) = sj . g(si,ap ) = ok . si MKH

pita input kepala (head) baca

kepala (head) tulis

ok
arah gerak

pita output

MKH pembaca untai


Pd diagram sebelumnya, untai input 1001 output 0110 1. s0 = f(s0,1) ; 0 = g(s0,1) 3. s 3 = f(s1,0) ; 1 = g(s1,0) 2. s1 = f(s0,0) ; 1 = g(s0,1) 4. s 1 = f(s3,1) ; 0 = g(s3,1) input : x = x0x1x2x3 , fungsi input f ? s0 = f(s 0, x0) = f1(s0, x0) , f = f 1: S x I S s1 = f(s 0, x1) = f(f1(s0, x0),x1)= f2 (s0, x0x1) f2: S x I2 S s3 = f(s 1, x2) = f(f2(s0, x0x1),x2) = f 2 (s0, x0x1x2) f3: S x I3 S .. fn: S x In S s0 = fn(s0, x0x1x2 . xn-1) = f(fn-1(s0, x0x1x2 . xn-2), xn-1)

Bagaimana dgn fungsi output g?


O0 = g(s0,x0) = g1(s0,x0) O1 = g(s1,x1) = g(f1(s0,x0), x1) = g2(s0,x0 x1)

On-1 = g(sn-1,xn-1) = g(fn-1(s0,x0 x1xn-2) = gn(s0,x0 x1xn-1)

gn : S x In O Definisi: jika x = x0x1x2x3 input yg t.d n simbol a : sembarang simbol input, maka pemetaan f dan g dpt diperluas secara rekursif sbb:

(i) f(si, xa) = f(f(si, x),a) (ii) g(si, xa) = g(f(si, x),a)
(iii) g(si, x0 x1x2 . xn-1) = g(si, x0).g(si, x0 x1).. g(si,x0 x1. xn-1)

Mesin penambah 2 bil integer biner : * carry (bawaan) xn xn-1 x1 x0 yn yn-1 y1 y0 +


Diagram keadaan:

s0 : bawaan 0 s1 : bawaan 1
Input: 00 01 10 11

Periksa diagram tsb!

Mesin Ekivalen :

M1 M2 jik ka unt sembarang input yg sama, M1 dan M2 menghasilkan output yang sama

Tujuan : * ekivalensi mesin * mesin minimal

Keadaan Ekivalen, pd mesin M = (S, I, O, f, g, s0) Unt si,sj S, si sj jik-ka g(si,x) = g(sj,x) x I*
Beri contoh ! Teorema 1: Jika s : suatu keadaan dlm MKH, x, y : untai, maka f(s,xy) = f(f(s,x),y) dan g(s,xy) = g(f(s,x),y) Berikan contoh !

Bukti : Gunakan induksi, sesuai dgn panjangnya y


ambil y=a (|y|=1), maka f(s,xa) = f(f(s,x),a) (sesuai (i)) Misal benar unt |y| = n, hipotesa induksi: f(s,xy) = f(f(s,x),y) Tunjukkan benar unt |y|=n+1!

Dari (i), f(s,xya) = f(f(xy),a) = f(f(f(s,x),y),a) Anggap s = f(s,x) = f(f(,s,y),a) = f(s,ya) (sesuai (i)) = f(f(s,x),ya) D.c.s unt g(s,xy) = g(f(s,x),y)

Teorema 2: Jika si sj , maka unt semb barisan input x , berlaku f(si ,x) f(sj ,x)

Bukti :
Def. seblmnya, jika si sj , maka g(si,xy) = g(sj,xy). Teorema 1: g(f(si,x),y) = g(f(sj,x),y), unt suatu y I*. dari def.ekivalensi : f(si ,x) f(sj ,x)
Definisi (k-ekivalen): Pada MKH M = (S,I,O,f,g,s0) Unt integer pos k, si disebut k- ekivalen thd sj ditulis si k sj jika

si k sj

g((si,x) = g(sj,x), unt semua x, dgn |x| k

apa artinya ?

Relasi k-ekivalen merupakan juga relasi ekivalensi, sehingga akan membuat k-partisi P k pd himpunan keadaan S yg k- ekivalennya didefinisikan sbb:
[s] k = [sj |si k sj] dan Pk = [s] k
s S

[s0]1 ={ s0, s4, s5} [s1]1 ={ s1, s2, s3} dan

P1={{s0,s4,s5},{s1, s2, s3}}

periksa melalui tabel trans. Apa yg terlihat?

Teorema 3: Jika untuk integer k, Pk+1 = P k, maka P k = P dan sebaliknya


Teorema 4: Mis. si sj , si k+1 sj jik-ka si ksj dan

aI, f(si,a ) k f(sj,a), serta g(si,a ) k g(sj,a).

Definisi (keekivalenan 2 mesin):

Diberikan M={S,I,f,g,s0} dan M={S,I,f,g,s0} M M, jik-ka untuk semua siS akan terdpt siS sedmkian sehingga si sj .
Definisi (tereduksi):

MKH M = {S,I,f,g,s0} disebut tereduksi jik-ka si sj si = sj unt semua keadaan si, sj S

Teorema 5: Jika diberikan MKH M={S,I,f,g,s 0}, maka akan terdapat mesin ekivalen M sedemikian sehingga S S dan S bersifat tereduksi Definisi (homomorfisma): Diberikan M={S,I,f,g,s0} dan M={S,I,f,g,s0}. : pemetaan dari S ke S Homomorfisma keadaan hingga adalah (f(s,a)) = f((s),a) (g(s,a) = g((s,a))

3. Bahasa Alami dan Bahasa Formal - Pengantar Bahasa Alami : Komunikasi (lisan tulisan) antar dua orang :

..

Bahasa Alami dan Bahasa Formal


Apa Persamaan dan Perbedaaan ? Kalimat berstruktur frasa: Aturan: sintaks

Kalimat dibuat dari frasa Subyek, diikuti Predikat, Obyek. Subyek dibuat dari kt benda, Predikat dari kt kerja, Obyek dari kt benda. Kt Benda = {kucing, nasi, meja}, kt kerja = {makan, jalan}

<kalimat> <subjek> <predikat> <obyek> <kt benda> <kt kerja> <kt benda> proses subst kucing <kt kerja> <kt benda> (penurunan) kucing makan <kt benda> kucing makan nasi
Kalimat lain : kucing makan kucing, kucing makan meja, nasi makan kucing, kucing jalan meja, ..

Periksa semantiknya

Proses penurunan total : <kalimat> * kucing makan nasi penulisan lain : <kalimat> ::= <subyek><pred><obyek> atau |Bila Sdr belajar bhs Pohon Penurunan : Indonesia : di bagian mana dipelajari ? <kalimat> <subyek> <kt benda> <predikat> <kt kerja> <obyek> <kt benda> nasi

kucing makan Buatlah lebih rinci struktur frasa tsb!

Pengertian dasar dlm bahasa alami : 1.himpunan huruf dalam alfabet 2.kata dibentuk oleh rangkaian huruf 3.kalimat dibentuk oleh rangkaian kata (dipisahkan spasi) 4.bahasa dibentuk oleh rangkaian kalimat (dipisahkan spasi) Bahasa alami lebih umum alfabet = {a, b, , z} himp simbol kata = untai yg punyai arti kata = untai rangkaian kata yg punya arti rangkaian untai bahasa alami baku bahasa Kosakata : himp kata himp kata, himp simbol ?

Bahasa (dlm pengertian lebih umum)


Bahasa : himpunan kalimat, himpunan untai Kosakata : himpunan (tak hampa) hingga untai (i.e simbol) bila kosakata adalah himp V (atau ), maka himp semua untai sepanjang V adalah V* (atau *) Simbol : himp alfabet, himp karakter khusus, dsb Untai : untai hampa ^ atau kosakata V = {0,1}, untai : ^ 0 1 01 11 00 101 .. V= {t, i}, untai: ^ t i tt ii titiii panjang untai w = 101, |W| = 3, |titi| = 4

Bahasa (umum)
Untai:
posisi simbol dlm untai w = titi, w(1)=w(3)=t ; w(2) = w(4) = i, posisi {1,2,, |w| } V operasi untai Perangkaian (concatenation) v, w untai sepanjang V, perangkaian vw atau wv sifat : vw wv, ^ : unsur identitas, ^w=w^=w asosiatif, (uv)w = u(vw) Berikan penjelasan struktur aljabar yg terkait !

Himpunan untai & struktur aljabar


V : himp simbol V = {a,b}, V* ={a, aa, .,b,bb, ab,..} V*: himp untai sepanjang V Adakah op.biner, unsur identitas ?
Adakah sifat lain?

struktur : grup ? monoid ?

Bacalah literatur Ttg STRUKTUR ALJABAR !

Bahasa (umum-pengertian dasar) (v)Himpunan untai


V : kosakata (mungkin berupa himp alfabet) V*: himp untai sepanjang V (termasuk ^) Atau {} : himp. yg tak mengandung satupun untai V+ = V* - operasi antar 2 himp untai A, B V, rangkaian (concatenation) : AB atau BA AB = {xy| x A, yB}
A = {a,bb}, B = {b,ab, aa}, AB = {ab, aab,aaa,bbb,bab,baa}

Sifat rekursifitas: A0 = {^} An+1 = An. A, n=0, 1, A = {a,bb}; A0 = {^}, A1 = A0 A={a,bb}, A2 = A1 A=

Bahasa (umum) pengertian dasar


penutup Kleene A V*, A* : penutup Kleene dari A = (vi)subuntai: v subuntai w jik-ka untai x dan y w = xvy
(vii)prefiks dan sufiks jika w = vx x, maka v : prefiks dari w jika w = xv x, maka v : sufiks dari w (vii) Banyaknya munculnya untai : w = ti, w2 =(ti)2= titi rekursivitas: w0 = ^, wi+1 = wi w, i = 0,1, .

pengertian dasar:
(ix)balikan
w : untai. Balikan w ditulis w merupakan w yg nyatakan dari belakang ke depan w = balik, w = kilab 1.jika |w|=0, maka w=w=^ 2.jika |w|=n+2>0, untuk w = ua, a V, maka w=au Umum : untuk 2 untai w dan x, berlaku (wx)=xw
Contoh : (desasdesus) = (desus)(desas)=sesudsased

|x| = 0, maka x=^, dan (wx)=(w^)=w=^w=^w=xw Andaikan unt |x|n, (wx)=xw hipotesa induksi Misal |x|=n+1, dg x = ua,|u|=n, |a|=1, u,a V*

pengertian dasar:
(ix)balikan
maka (wx) = (w(ua)) = ((wu)a) =a(wu)
= auw = (ua)w = xw Teorema : Apabila V : himp berhingga alfabet, maka V* : himp berhingga terhitung. Terdapat pemetaan bijektif f : N V* (perhatikan cara penyusunan kamus)

x=ua .. perangkaian: asosiatif


definisi balikan hipotesa induksi definisi balikan x=ua

Untai dan Bahasa


Perhatikan cara penyuntingan berbantuan komputer menggunakan perangkat lunak (misal microsoft words) - mengetik huruf demi huruf, kata demi kata, kalimat demi
kalimat

menghapus huruf, kata, kalimat menyalin huruf, kata, kalimat mencari kata tertentu dan menggantikan dgn kata lain dsb

4. Automata Hingga

Automata Hingga
Automata Automaton ? Automatis ? Apa bedanya dgn mesin keadaan hingga ?

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

Automata Hingga 5-tupel, M = (S, I, f, s0 ,F)


dengan,

S : himp hingga keadaan I : himp hingga simbol input f : pemetaan S x I S (fungsi transisi keadaan) s0: keadaan awal, s0 S F : himp keadaan akhir (penerima), F S pd contoh, S = {s0, s1}, I = {a, b}, keadaan awal s0, F = {s1}, f: (s0, a) s0 ; (s1, a) s1 ; (s0, b) s1 ; (s1, b) s0 ;

Automata hingga dan Bahasa * pengenalan untai


xxxx
automata dikenal/tdk M
pd contoh, aba atau L(M) ?

xxxx atau L(M) ?

(s0, aba) (s0, ba) (s1, a) (s1,^) (s1)

f(s 0, aba) = f(f(f(s0, a),b,),a) = f(f(s0, b),a) = f(s1, a) = s1

s1 F, aba L(M)

s0 : keadaan penerima

Bahasa dan Automata Hingga


Pengenalan Untai
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 (s0, abba)


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

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

Bahasa yg dibangkitkan automata


Perhatikan automata M

s1 : penerima (akhir)

Untai yg dikenal: b, bb, ab, ab.b, bab, bab..b, abbab,.. ; L(M) = ?

L(M) = {ambn | m=0,1,..; n=1,2, } {ambn ak bn| m=0,1,..; n=1,2, , k=1,2,} }

Bagaimana dengan M :

Automata Hingga Deterministik (AHD) Automata Hingga Nondeterministik (AHN)


Diagram transisi Tabel transisi

Mesin dlm keadaan s1 membaca a, beralih ke keadaan s1 ATAU ke keadaan s2 .


Bandingkan automata hingga deterministik !

AHN
M = (S, I, f, s0 ,F)
dengan,

S : himp hingga keadaan I : himp hingga simbol input f : pemetaan S x I B, B S (fungsi transisi keadaan) s0: keadaan awal, s0 S F : himp keadaan akhir (penerima), F S pd contoh, S = .. , I = .. , F = , s0 = .., f : (s0, a) s0 ; (s1, a) s1 atau (s0, b) s1 ; (s1, a) s0 ;

Pd contoh : aba L(M) ? f(s0, aba) = f(f(f(s 0, a),b,),a) = f(f(s0, b),a) = f(s1, a) = f(s1, ^) f(s0, ^) = (s1) (s0) aba L(M) aba L(M) apa kesimpulannya ? Periksa : bab L(M) ?

Ekivalensi 2 buah AHD


Diberikan 2 buah AHD, yaitu M dan M. M ekivalen M, jik-ka L(M) = L(M). Untuk memeriksa ekivalensi M dan M Algoritma More (hand-out)

Pemeriksaan ekivalensi AHD


Teorema Moore :

Terdapat suatu algoritma untuk menentukan apakah dua buah automata hingga ekivalen atau tidak sepanjang

Algoritma Moore
11. Berikan nama berbeda pd semua keadaan M dan M. Misalkan, M : S, A1, A2 , ... M : S, A1 , A2, ...

2.Buat tabel (n+1) kolom, yaitu kolom: (v,v), (va1,va1), ..., (van,van), sbg
pasangan terurut (keadaan M, keadaan M). 3. Isikan (S,S) pd baris ke-1 kolom (v,v); S, S : keadaan awal M dan M. 4. Jika busur dari S ke A1 dg label a1 dan jika busur dari S ke A1 juga dg label a1, isikan pasangan terurut (A1, A1 ) pd baris ke-1 kolom (va1,va1).
Lakukan juga unt kolom-kolom berikutnya. 5. Jika nilai pasangan terurut pd kolom (v a1,va1) s/d (van,van) yang tidak sama dengan nilai pasangan terurut (v,v), tempatkan nilai tsb pd kolom (v,v) baris-baris berikutnya. Lakukan hal yg sama spt yg dilakukan pd langkah (4). Lanjutkan dengan langkah 6 Jika selama proses dihasilkan nilai pd kolom (v,v), dg v : keadaan penerima sedangkan v bukan, atau sebaliknya, maka M dan M tersebut tidak ekuivalen. Proses dihentikan 7. Jika kondisi (6) tdk dipenuhi dan jika tdk ada lagi pasangan terurut baru yg harus ditempatkan pada kolom (v, v) maka proses dihentikan. M dan M ekuivalen.

Apakah M ekivalen M

Apakah M ekivalen M

AHD - AHN
Teorema : Untuk setiap AHN, terdapat suatu AHD yang ekivalen Bukti : lht diktat Contoh : Pembangunan AHD dari AHN (hand out)

Algoritma pembangunan
1.Tetapkan s0 = s 0 dan I=I 2. Salinlah tabel transisi M ke tabel M (awalnya I=I dan f=f) 3. Setiap keadaan s adalah peta dari pemetaan f dan apabila terdapat s S, maka s tsb ditetapkan sbg keadaan baru dari I 4. Tempatkan s tsb pada kolom keadaan f, dan lakukan pemetaan berdasarkan pemetaan f. 5. Ulangi langkah 3 sampai tdk diperoleh keadaan baru 6. Unsur F adalah semua keadaan yg mengandung keadaan dalam F

Diberikan AHN, M = (S, I, f, s0, F) dgn S={A,B, C}, I={ a, b}, s0= A, F = {C}

Tabel transisi, f :

Buatlah AHD M yg ekivalen !

1. s0 = s0 = A, I =I = {a, b} 2. salinan tabel fs transisi f menghasilkan tabel fs transisi f sbb:

Pd tabel di atas terdpt keadaan baru yaitu {A,B}. Pemetaan terhadap {A,B} : f({A,B},a) = f(A,a) f(B,a) = {A,B}A = {A,B}, dan f({A,B},b) = f(A,b) f(B,b) = CB = {B,C}, shg diperoleh tabel berikut :

Tabel baru

4. Langkah (3) di atas menghasilkan keadaan baru yaitu {B,C}. Dg melakukan pemetaan thd {B,C}, seperti yg telah dilakukan di atas, diperoleh tabel sbb:

5. Setelah langkah (4) di atas tidak terdapat lagi keadaan baru Jadi, AHD yg dihasilkan, M = (S, I, f, s0, F), dgn. S ={A, B, C, {A,B}, {B,C}}, I ={a, b}, s0 = A, F={C, {B,C}}. Sehingga f serta graf transisi dari M adalah f : tabel terakhir file berikut : tekom_3 Graf transisi : Isi : tata bhs formal

Dokumen selanjutnya, Teori Komputasi bagian kedua

Anda mungkin juga menyukai