Model Komputasi (Kuliah2)

62
Model Komputasi Bagaimana kita memodelkan sebuah komputasi

Transcript of Model Komputasi (Kuliah2)

Model Komputasi

Bagaimana kita memodelkan sebuah komputasi

Tujuan

• Memberikan apresiasi terhadap pentingnya konsep : model Komputasi”

• Mengenal beberapa contoh menarik yang mencerminkan aspek kunci dari sistem nyata dalam bentuk (struktur) sederhana

Materi

1. Model Komputasi: Tujuan dan Tipe2. Konstruksi dengan Rol dan Jangka 3. Teori Bahasa dan Automata4. Grammar dan Bahasa: Hirarki Chomsky5. Algoritma Markov6. Random access machines (RAM)7. Programming languages, [un-]decidability

Tujuan dan Tipe Model Komputasi

• Hampir setiap pernyataan yang rasional tentang komputasi adalah benar dalam satu model, tetapi akan salah dengan model lain

• Definisi akurat tentang model komputasi sangat esensial untuk membuktikan bahwa hasil “negatif = salah) tidak mungkin

• Special purpose models vs. universal models of computation (dapat mensimulasikan satu sama lain).

Algoritma dan Keterhitungan

• Algorithm dan computability keduanya pada awalnya hanyalah konsep intuisi

• Keduanya dapat tetap intuisi sepanjang kita hanya ingin menunjukkan bahwa hasil spesifik dapat dihitung dengan mengikuti algoritma yang spesifik

• Biasanya penjelasan informal dapat meyakinkan seseorang, dengan latar belakang cukup, bahwa algoritma tertentu dapat memberikan hasil spesifik

• Semuanya akan berubah jika kita ingin menunjukkan bahwa hasil yang diinginkan tidak dapat dihitung (not computable)

Algoritma dan Keterhitungan

• Pertanyaan yang muncul: “Apa alat yang dimungkinkan kita gunakan?” atau “Siapa yang dapat memastikan semua hal yang tak dapat dihitung?”

• Upaya membuktikan hasil negatif terkait dengan ketiadaan algoritma tertentu memaksa kita untuk mencari definisi algoritma yang cermat dan akurat

Problema Matematika

• Matematika telah lama menginvestigasi masalah tipe : objek apa yang dapat dibangun, hasil apa yang diperoleh yang dapat dihitung dengan menggunakan operasi primitif yang terbatas

• Sebagai contoh, pertanyaan tentang persamaan polinomial mana yang dapat diselesaikan dengan menggunakan operasi-operasi +, -, *, / dan ekstraksi akar telah membuat matematikawan sibuk selama berabad-abad. Persoalan ini diselesaikan oleh Niels Henrik Abel (1802 - 1829 )

• Pada tahun 1826: akar-akar polinomial derajat ≤ 4 dapat diekspressikan dalam bentuk radikal (akar-akarnya), sementara derajat ≥ 5 secara umum tidak mungkin

Konstruksi dengan Rol dan Jangka

• Dengan catatan yang sama, kita mencoba memberikan satu masalah geometri yang bersejarah dengan menggunakan rol dan kompas dan menunjukkan bagaimana perubahan sedikit saja dalam asumsi dapat mengubah secara drastis hasil objek yang dapat dibangun

Apa yang bisa dilakukan dengan rol, jangka, pensil dan kertas?

Plato (427-347 B.C.) menganggap bahwa hanya rol dan jangka yang merupakan alat yang cocok untuk konstruksi geometri• Objek primitif : titik, garis lurus (terbatas atau tidak), lingkaran• Operasi primitif:

– Diketahui 2 titik P, Q; buat sebuah garis melalui kedua titik– Diketahui 2 titik P, Q; buat sebuah lingkaran dengan pusat P dan

melalui titik Q– Diketahui 2 garis L, L’, atau 2 lingkaran C, C’, atau sebuah garis L

dan sebuah lingkaran C; buat sebuah titik baru P pada perpotongan antar objek tsb

• Objek komposit (gabungan) : struktur sembarang yang dibangun dari objek primitif dengan menggunakan urutan operasi primitif

Contoh

1. Gambarkan sebuah garis L dan sebuah titik P pada L, buat sebuah garis L’ melalui titik P dan tegak lurus dengan L.

2. Buat sepasang garis L, L’ dengan sudut perpotongan of 90º, 60º, 45º, 30º, secara berturut-turut

3. Sebuah segmen berupa triple (L, P, Q) dengan titik P, Q berada pada L. Sebuah segmen dengan panjang 1 dapat diperoleh atau dapat dibangun secara acak untuk menentukan unit ukuran, sudut dan panjang berbeda-beda dengan cara:

– Mulai dari sudut tertentu, buat tambahan sudut dengan operasi bisection, perjumlahan dan pengurangan

– Mulai dari segmen panjang 1, lakukan penambahan panjang dengan operasi primitif : bisection, tambah, kurang kali, bagi atau akar pangkat 2

Gambar

Hasil Pengamatan

• Konstruksi dengan menggunakan rol dan jangka dapat direduksi menjadi pertanyaan apakah bilangan tertentu dapat diekspressikan denan menggunakan operasi-operasi rasional dan akar

• Teorema: Konstruksi dengan rol dan jangka yang diusulkan dimungkinkan iff bilangan yang didefinisikan secara analitik untuk menghasilkan geometri tertentu menggunakan operasi rasional dan akar

• Bangun yang mungkin: poligon dengan 17 sisi sam

Mungkin / Tidak Mungkin

• Konstruksi yang mungkin: poligon sama sisi dengan 17 sisi “17-gon” (Carl Friedrich Gauss 1777-1855)

• Bagaimana dengan: heptagon sama sisi, “7-gon” (Gauss).

• Selesaikan x3 = 2

Perubahan kecil

• Diketahui AOB = 3x dalam satuan derajat. Penggaris CB mempunyai tanda D dengan jarak CD = radius = 1.

• Geser C sepanjang sumbu x sampai D terletak pada lingkaran, sehingga ACB = x.

• Perhatikan gambar berikut:

• Perubahan kecil saja dalam model komputasi dapat memberikan konsekuensi besar

• Untuk itu, kita perlu definisi akurat

Contoh soal• Persamaan kuadrat x2 + bx + c = 0 mempunyai

akar-akar x1, x2 = (-b ± sqrt(b2 - 4c)) / 2. • Buktikan bahwa dalam konstruksi dengan rol dan

jangka seperti gambar berikut, segmen x1 and x2 merupakan solusi dari persamaan kuadrat di atas

Solusi

• Substitusikan xc = - b/2 dan yc = ( 1 + c ) / 2 ke dalam persamaan lingkaran (x - xc)2 + (y - yc)2 ,

• set y = 0 untuk mendapatkan persamaan kuadrat x2 + bx + c = 0 dimana akar-akarnya adalah x1 dan x2 seperti diharapkan .

Teori Bahasa dan Automata

Teori Bahasa• Teori bahasa membicarakan bahasa formal (formal language),

terutama untuk kepentingan perancangan kompilator (compiler) dan pemroses naskah (text processor).

• Bahasa formal adalah kumpulan kalimat. Semua kalimat dalam sebuah bahasa dibangkitkan oleh sebuah tata bahasa (grammar) yang sama.

• Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa berbeda.

• Dikatakan bahasa formal karena grammar diciptakan mendahului pembangkitan setiap kalimatnya.

• Bahasa Natural/manusia bersifat sebaliknya; grammar diciptakan untuk meresmikan kata-kata yang hidup di masyarakat. Dalam pembicaraan selanjutnya ‘bahasa formal’ akan disebut ‘bahasa’ saja.

Beberapa Pengertian Dasar

• Simbol adalah sebuah entitas / objek abstrak (seperti halnya pengertian titik dalam geometri). Sebuah huruf atau sebuah angka adalah contoh simbol.

• String adalah deretan terbatas (finite) simbol-simbol. Sebagai contoh, jika a, b, dan c adalah tiga buah simbol maka abcb adalah sebuah string yang dibangun dari ketiga simbol tersebut

Beberapa Pengertian Dasar

• Jika w adalah sebuah string maka panjang string dinyatakan sebagai w dan didefinisikan sebagai cacahan (banyaknya) simbol yang menyusun string tersebut. Sebagai contoh, jika w = abcb maka w= 4.

• String hampa adalah sebuah string dengan nol buah simbol. String hampa dinyatakan dengan simbol (atau ^) sehingga = 0. String hampa dapat dipandang sebagai simbol hampa karena keduanya tersusun dari nol buah simbol.

• Alfabet adalah himpunan hingga (finite set) simbol

Operasi Dasar String• Diberikan dua string : x = abc, dan y = 123• Prefik string w adalah string yang dihasilkan dari string w dengan

menghilangkan nol atau lebih simbol-simbol paling belakang dari string w tersebut.– Contoh : string x = abc ab, a, dan adalah semua Prefix(x)

• Proper Prefix string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling belakang dari string w tersebut.– Contoh : ab, a, adalah semua ProperPrefix(x) jika x = abc

• Postfix (atau Sufix) string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dari string w tersebut.– Contoh : string x = abc bc, c, dan adalah semua Postfix(x)

• ProperPostfix (atau PoperSufix) string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dari string w tersebut.– Contoh : bc, c, adalah semua ProperPostfix(x) dari string x =abc

Operasi Dasar String• Head string w adalah simbol paling depan dari string w.

– Contoh : a adalah Head(x)• Tail string w adalah string yang dihasilkan dari string w dengan

menghilangkan simbol paling depan dari string w tersebut.– Contoh : bc adalah Tail(x)

• Substring string w adalah string yang dihasilkan dari string w dengan menghilangkan nol atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.– Contoh : abc, ab, bc, a, b, c, dan adalah semua Substring(x) dari string abc

• ProperSubstring string w adalah string yang dihasilkan dari string w dengan menghilangkan satu atau lebih simbol-simbol paling depan dan/atau simbol-simbol paling belakang dari string w tersebut.– Contoh : ab, bc, a, b, c, dan adalah semua Substring(x) dari string abc

Operasi Dasar String• Subsequence string w adalah string yang dihasilkan dari string w

dengan menghilangkan nol atau lebih simbol-simbol dari string w tersebut.– Contoh : abc, ab, bc, ac, a, b, c, dan adalah semua Subsequence(x)

dario abc• ProperSubsequence string w adalah string yang dihasilkan dari

string w dengan menghilangkan satu atau lebih simbol-simbol dari string w tersebut.– Contoh : ab, bc, ac, a, b, c, dan adalah semua Subsequence(x) dari

abc• Concatenation adalah penyambungan dua buah string. Operator

concatenation adalah concate atau tanpa lambang apapun.– Contoh : concate(xy) = xy = abc123

Operasi Dasar String

• Alternation adalah pilihan satu di antara dua buah string. Operator alternation adalah alternate atau .

• Contoh : alternate(xy) = xy = abc atau 123• Kleene Closure : x* = xxxxxx… = xx x …• Positive Closure : x+ = xxxxxx… = xx x …

Beberapa Sifat Operasi

• Tidak selalu berlaku : x = Prefix(x)Postfix(x)• Selalu berlaku : x = Head(x)Tail(x)• Tidak selalu berlaku : Prefix(x) = Postfix(x) atau

Prefix(x) Postfix(x)• Selalu berlaku : ProperPrefix(x)

ProperPostfix(x)• Selalu berlaku : Head(x) Tail(x)

Beberapa Sifat Operasi

• Setiap Prefix(x), ProperPrefix(x), Postfix(x), ProperPostfix(x), Head(x), dan Tail(x) adalah Substring(x), tetapi tidak sebaliknya

• Setiap Substring(x) adalah Subsequence(x), tetapi tidak sebaliknya

• Dua sifat aljabar concatenation :• Operasi concatenation bersifat asosiatif : x(yz) =

(xy)z• Elemen identitas operasi concatenation adalah

: x = x = x

Beberapa Sifat Operasi

• Tiga sifat aljabar alternation :– Operasi alternation bersifat komutatif : xy = yx– Operasi alternation bersifat asosiatif : x(yz) =

(xy)z– Elemen identitas operasi alternation adalah dirinya

sendiri : xx = x• Sifat distributif concatenation terhadap

alternation : x (yz) = xyxz

Beberapa Sifat Operasi

Beberapa kesamaan :• Kesamaan ke-1 : (x*)* = x*• Kesamaan ke-2 : x = x = x*• Kesamaan ke-3 : (xy)* = xyxxyyxyyx… =

semua string yang merupakan concatenation dari nol atau lebih x, y, atau keduanya

GRAMMAR DAN BAHASA

• Konsep Dasar– Anggota alfabet dinamakan simbol

terminal. – Kalimat adalah deretan hingga simbol-

simbol terminal. – Bahasa adalah himpunan kalimat. Anggota

bahasa mungkin tak terhingga

GRAMMAR DAN BAHASA

Simbol-simbol berikut adalah simbol terminal :• huruf kecil atau bilangan, misalnya : a, b, c, 0,

1, ..• simbol operator, misalnya : +, , dan • simbol tanda baca, misalnya : (, ), dan ;• string yang tercetak tebal, misalnya : if, then,

dan else.

GRAMMAR DAN BAHASA

• Huruf yunani melambangkan string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya, misalnya : , , dan .

• Sebuah produksi dilambangkan sebagai , artinya : dalam sebuah derivasi dapat dilakukan penggantian simbol dengan simbol .

• Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Sebuah derivasi dilambangkan sebagai : .

GRAMMAR DAN BAHASA

Simbol-simbol berikut adalah simbol non terminal /Variabel :• huruf besar, misalnya : A, B, C• huruf S sebagai simbol awal• string yang tercetak miring, misalnya : expr

GRAMMAR DAN BAHASA

• Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya.

• Kalimat adalah string yang tersusun atas simbol-simbol terminal. Kalimat adalah merupakan sentensial, sebaliknya belum tentu.

GRAMMAR

Grammar G didefinisikan sebagai pasangan 4 tuple : VT , VN , S, dan P, dan dituliskan sebagai G(VT , VN , S, P) atau G<VT , VN , S, P> dimana :

• VT : himpunan simbol-simbol terminal (alfabet) kamus

• VN : himpunan simbol-simbol non terminal

• SVN : simbol awal (start symbol)• P : himpunan produksi

Contoh 1:

G1 : <VT = {I, Love, Miss, You}, VN = {S,A,B,C},

P = {S ABC, A I, B Love | Miss, C You}> S ABC IloveYou L(G1)={IloveYou, IMissYou}

S

B

I

CA

YouLove

Contoh 2:

G2 : <VT = {a}, V = {S}, P = {S aSa} >

S aS aaS aaa L(G2) ={an n ≥ 1}

L(G2)={a, aa, aaa, aaaa,…}

S

a S

aa

Klasifikasi ChomskyBerdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya ( ), Noam Chomsky mengklasifikasikan 4 tipe grammar :1. Grammar tipe ke-0 : Unrestricted Grammar (UG)

– Ciri : , (V V )*, > 0

2. Grammar tipe ke-1 : Context Sensitive Grammar (CSG)– Ciri : , (V V ) *, 0 <

3. Grammar tipe ke-2 : Context Free Grammar (CFG)– Ciri : V , (V V )*

4. Grammar tipe ke-3 : Regular Grammar/ Regular Expression (RG/RE)– Ciri : V , {V , V V } atau V , {V , V V }

Klasifikasi Chomsky

Tipe sebuah grammar (atau bahasa) ditentukan dengan aturan sebagai berikut :• A language is said to be type-i (i =1, 2, 3)

language if it can be specified by a type-i grammar but can’t be specified any type-(i-1) grammar

• Sebuah bahasa tipe-i (i = 0, 1, 2, 3) jika bahasa tsb dapat dideskripsikan / dispesifikasikan dengan grammar tipe-i tetapi tidak dapat dispesifikasikan dengan grammar tipe (i-1)

Hubungan antar Grammar

Tipe 0

Tipe 1

Tipe 2

Tipe 3

Hirarki Chomsky

• Noam Chomsky: menjelaskan 3 model untuk mendeskripsikan bahasa (IRE Trans. Information Th. 2, 113-124, 1956).

• Contoh : Sentence Noun Verb Noun, e.g.: Bob loves Alice Sentence Sentence Conjunction Sentence, e.g.: Bob loves Alice and

Rome beat Inter• Grammar G(V, A, P, S).

– V: alphabet dengan simbol non-terminal, “variables” dan “grammatical types”;

– A: alphabet dengan simbol terminal, S V: merupakan simbol awal (S = ∈“sentence”);

– P: himpunan produksi tak terurut dalam bentuk L R, dimana L, R (V ∈ A)*∪

Hirarki Chomsky

• Untuk x, y, y’, z (V A)*, u ∈ ∪ v iff u = xyz, v = xy’z and y y’ P∈

• Penurunan “*” bersifat transitive, reflexive• Contoh:

u * v iff w∃ 0, w1, ... wj, dengan j ≥ 0, u = w0, wi-1 wi, wj = v

• Bahasa didefinisikan dengan G: L(G) = { w A* ∈| S * w)

Mesin Pengenal Bahasa

Untuk setiap kelas bahasa Chomsky, terdapat sebuah mesin pengenal bahasa. Automata (bentuk jamak dari automaton) adalah mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.Mesin pengenal bahasa dibedakan seperti pada tabel berikut:

Automata Kelas Bahasa Mesin Pengenal Bahasa

Unrestricted Grammar (UG) Mesin Turing (Turing Machine), TM

Context Sensitive Grammar (CSG) Linear Bounded Automata, LBA

Context Free Gammar (CFG) Pushdown Automata, PDA

Regular Grammar, RG Finite State Automata, FSA

FINITE STATE AUTOMATA (FSA)

FSA didefinisikan sebagai pasangan 5 tupel : (Q, ∑, δ, S, F). dimana• Q : himpunan hingga state • ∑ : himpunan hingga simbol input (alfabet)• δ : fungsi transisi, menggambarkan transisi state FSA

akibat pembacaan simbol input.• Fungsi transisi ini biasanya diberikan dalam bentuk

tabel (aturan)• S Q : state AWAL• F Q : himpunan state AKHIR

Contoh: FSA untuk mengecek parity ganjil

δ 0 1

Gnp Gnp Gjl

Gjl Gjl Gnp

Q ={Gnp, Gjl}∑ = {0,1}S = Gnp, F = {Gjl}

tabel transisi

diagram transisi

• Bilangan genap dengan representasi biner ditandai dengan akhir 0.

• Contoh:2 = 10; 4 = 100; 6 = 110; 8 = 1000; 10 = 1010

Contoh: FSA mengenali bilangan genap dalam representasi biner

0

Algoritma Markov : Model Komputasi Universal

• A.A. Markov (1903-1979) mengembangkan “Theory of algorithms” sekitar 1951.

• Algoritma Markov dapat diinterpretasikan sebagai arsitek komputer dengan memori akses sekuensial: Komputasi dimodelkan sebagai sebuah transformasi deterministik untuk sebuah input string menjadi output string.

• Misalnya ‘1+2’ => ‘3’, dan menurut aturan dibaca dari kiri ke kanan secara sekuensial.

• Sumber: A.A. Markov, N.M. Nagorny: The Theory of Algorithms, (English transl), Kluwer Academic Publishers, 1988.

• Alphabet A = {0, 1, ..}, our examples use A = {0, 1}. Marker

• Alphabet A = {0, 1, ..}, Kita gunakan contoh A = {0, 1}. • Marker alphabet M = { α, β, ..}.• Sequence (urutan) P = P1, P2, .. dari aturan produksi,

yang terdiri dari 2 tipe:– Pi = x y (continue) atau Pi = x ¬ y (terminate), dimana x, y

(A M)*.∈ ∪

• Aturan P = x y diaplikasikan pada data string D jika x merupakan contiguous substring dalam D, dan apabila x digantikan dengan y

• Aturan terminal akan memberhentikan proses

• Algoritma Markov menghitung fungsi parsial f: A* -> A* dengan mentransformasikan data string D, tahap-demi-tahap.

• Pada awal, D adalah input string s A*, dan jika algoritma ∈berhenti, D = f(s).

• Antara nilai initial dan final, D ditransformasikan dengan menggunakan aturan produksi Pi = x y atau Pi = x ¬ y.

• Tranformasi D Pi ( D ) dipilih sesuai dengan eksekusi rule berikut: Gunakan aturan pertama yang berlaku untuk data string D,

gunakan dengan prinsip leftmost pattern match (leftmost derivation).

Contoh1) Ubah semua 0 dengan 1 : P1: 0 1. Tidak diperlukan aturan terminal,

algoritma otomatis berhenti apabila tidak ada lagi aturan yang dapat dijalankan

2) Hasilkan 0 selamanya : P1: ε 0. “ε” adalah nullstring, aturan ini selalu dicocokkan ke kiri dari sembarang input string.

3) Tambahkan prefix ‘101’: P1: ε ¬ 101. Aturan terminal menghentikan proses4) Tambahkan suffix ‘101’. Membutuhkan marker, M = {α}. Hati-hati jika

mengurutkan aturan produksi!• P1: α 0 -> 0 α, P2: α1 1 α, P3: α ¬ 101, P4: ε α• Rule P4 diekesekusi pertama dan menghasilkan markerr α. • P4 muncul terakhir pada aturan produksi yang diproteksi oleh P3 untuk

tidak dijalankan kembali• Prioritas paling tinggi adalah P1 dan P2 memindahkan α dari depan ke

belakang dari data string• Ketika α mencapai posisi yang tepat, aturan terminal P3 mengubahnya

menjadi suffix 101 dan proses berhenti

Notasi• Usually we sequence the rules implicitly by writing them on separate lines. In example 4, the order

in which the• two rules P1: α 0 -> 0 α, P2: α1 -> 1 α appear, i.e. P1 P2 or P2 P1, is irrelevant. In order to emphasize

that a• subset of the rules may be permuted arbitrarily among themselves, we may write these on the same

line:• 4a) α 0 -> 0 α, α1 -> 1 α• α ¬ 101• ε -> α• Moreover, P1 and P2 have a similar structure. With a large alphabet A = { 0, 1, 2, ..} we need |A|

rules of the type• α B -> B α, where the variable B ranges over A. In order to abbrievate the text, we write the

algorithm as :• 4b) α B -> B α• α ¬ 101• ε -> α• This is called a production schema, a meta notation which implies or generates the actual rule

sequence 4a). A• schema rule α B -> B α implies that the relative order of the individual rules generated is irrelevant.

Algorithm design

• How do you invent Markov algorithms for specific tasks? Is there a “software engineering discipline” for Markov

• algorithms that leads you to compose a complex algorithm from standard building blocks by following general

• rules? Yes, the diligent “Markov programmer” soon discovers recurrent ideas.