Anda di halaman 1dari 62

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 Tipe
2. Konstruksi dengan Rol dan Jangka
3. Teori Bahasa dan Automata
4. Grammar dan Bahasa: Hirarki Chomsky
5. Algoritma Markov
6. 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 x
3
= 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 x
2
+ 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 x
2
+ 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 c
(atau ^) sehingga c= 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 c 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 c 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 c 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 c 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 c 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 c 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) = x|y = abc atau 123
Kleene Closure : x* = c|x|xx|xxx| = c|x|x
|x |
Positive Closure : x
+
= x|xx|xxx| = x|x |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 c :
cx = xc = x
Beberapa Sifat Operasi
Tiga sifat aljabar alternation :
Operasi alternation bersifat komutatif : x|y = y|x
Operasi alternation bersifat asosiatif : x|(y|z) =
(x|y)|z
Elemen identitas operasi alternation adalah dirinya
sendiri : x|x = x
Sifat distributif concatenation terhadap
alternation : x (y|z) = xy|xz

Beberapa Sifat Operasi
Beberapa kesamaan :
Kesamaan ke-1 : (x*)* = x*
Kesamaan ke-2 : c|x = x |c = x*
Kesamaan ke-3 : (x|y)* =
c|x|y|xx|yy|xy|yx| = 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 :
o, |, dan .
Sebuah produksi dilambangkan sebagai o |,
artinya : dalam sebuah derivasi dapat dilakukan
penggantian simbol o dengan simbol |.
Derivasi adalah proses pembentukan sebuah
kalimat atau sentensial. Sebuah derivasi
dilambangkan sebagai : o |.

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 : V
T
, V
N
, S, dan P, dan dituliskan sebagai
G(V
T
, V
N
, S, P) atau G<V
T
, V
N
, S, P> dimana :
V
T
: himpunan simbol-simbol terminal
(alfabet) kamus
V
N
: himpunan simbol-simbol non terminal
SeV
N
: simbol awal (start symbol)
P : himpunan produksi

Contoh 1:
G
1
: <V
T
= {I, Love, Miss, You}, V
N
= {S,A,B,C},
P = {S ABC, A I, B Love | Miss, C You}>

S ABC
IloveYou
L(G1)={IloveYou, IMissYou}

S
B
I
C
A
You Love
Contoh 2:
G
2
: <V
T
= {a}, V = {S}, P = {S aS|a} >

S aS
aaS
aaa
L(G
2
) ={a
n
| n 1}
L(G
2
)={a, aa, aaa, aaaa,}

S
a S
a
a
Klasifikasi Chomsky
Berdasarkan komposisi bentuk ruas kiri dan ruas kanan
produksinya (o |), Noam Chomsky
mengklasifikasikan 4 tipe grammar :
1. Grammar tipe ke-0 : Unrestricted Grammar (UG)
Ciri : o, | e (V |V )*, o> 0
2. Grammar tipe ke-1 : Context Sensitive Grammar
(CSG)
Ciri : o, | e (V |V ) *, 0 < o s |
3. Grammar tipe ke-2 : Context Free Grammar (CFG)
Ciri : o e V , | e (V |V )*
4. Grammar tipe ke-3 : Regular Grammar/ Regular
Expression (RG/RE)
Ciri : o e V , | e {V , V V } atau o e V , | e {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 cant 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 =
xyz and y y P
Penurunan * bersifat transitive, reflexive
Contoh:
u * v iff w
0
, w
1
, ... w
j
, dengan j 0, u = w
0
, w
i-1

w
i
, w
j
= 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 e Q : state AWAL
F c 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).
Contoh
1) 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 proses
4) 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.

Anda mungkin juga menyukai