0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
165 tayangan62 halaman
Model Komputasi memberikan penjelasan tentang pentingnya konsep model komputasi dan beberapa contoh model komputasi sederhana yang merepresentasikan sistem nyata, seperti konstruksi dengan rol dan jangka, teori bahasa dan automata, serta algoritma Markov.
Model Komputasi memberikan penjelasan tentang pentingnya konsep model komputasi dan beberapa contoh model komputasi sederhana yang merepresentasikan sistem nyata, seperti konstruksi dengan rol dan jangka, teori bahasa dan automata, serta algoritma Markov.
Hak Cipta:
Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online dari Scribd
Model Komputasi memberikan penjelasan tentang pentingnya konsep model komputasi dan beberapa contoh model komputasi sederhana yang merepresentasikan sistem nyata, seperti konstruksi dengan rol dan jangka, teori bahasa dan automata, serta algoritma Markov.
Hak Cipta:
Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online dari Scribd
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.