Pertemuan 1 Konsep dalam Teori Otomata dan Pembuktian Formal Teori Bahasa dan Otomata (KOM208) SKS: 3(3-0) TIK, Subtopik dan Waktu Penyajian Tinjauan Instruksional Khusus: Subtopik: Mahasiswa mengetahui gambaran umum teori otomata dan akan dapat menjelaskan metode-metode pembuktian formal. Pengantar Finite Automata Representasi struktural Pembuktian Deduktif Pembuktian menggunakan teori himpunan, kontrapositif, kontradiksi dan counterexample. Pembuktian Induktif Alfabet, string dan bahasa Waktu penyajian: 2 x 150 menit Pendahuluan Teori otomata adalah studi tentang peralatan atau “mesin” komputasi abstrak, yang dapat didefinisikan secara matematis. Tujuan utama adalah mendefinisikan: apa yang bisa dilakukan oleh komputer dan apa yang tidak bagaimana komputasi dilakukan Tipe paling sederhana dari mesin abstrak adalah finite automaton atau finite state machine. Prinsip yang mendasari mesin ini adalah sistem pada setiap saat dalam salah satu dari sejumlah state berhingga dan bergerak diantara state-state tersebut dalam merespon sinyal input individual. Kenapa perlu TBO? Memberikan fondasi teori komputasi: Decidability/Computability Tractability/Complexity Konsep bahasa secara formal: Syntax Grammar Parsing Manfaat/Aplikasi Teknik Parsing/Compiler Regular expression (regex) e.g., Searching/Information retrieval Pengenalan Bahasa Alami Simulasi komputasi (dengan automata) Mathematical Background Set theory Relations and functions Recursive definitions Strings and languages Proofs Sets Group of objects represented as a unit May contain any type of object: numbers, symbols, other sets,… Set membership: Non-membership: Subset: Proper subset Empty set: Infinite set contains infinitely many elements E.g., set of integers {…-2, -1, 0, 1, 2,…} Sets Determine the union (), intersection (), difference (-), complement, and power set P(X) = 2X of any given sets. Prove the equality of sets X and Y: show every element of X is an element of Y and vice versa (i.e., show that X Y and Y X to show X = Y.) If X is a set, the notations |X| and card(X) both refer to the number of elements in X. Cartesian Product and Relations Cartesian product builds a set consisting of ordered pairs of elements from two or more existing sets. X Y = {[x, y] | x X and y Y} A binary relation on sets X and Y is a subset of X Y. An n-ary relation on sets X1, X2, ..., Xn is a subset of X1 X2 ... Xn Functions A function from a set X to a set Y is a mapping of elements of X to elements of Y such that each element of X maps to exactly one element of Y. f:XY X is the domain of f. The range of f : X Y is the set {y Y | y = f (x) for some x X}. A total function f from X to Y is a binary relation on X Y such that i. ii. For each x X there is a y Y such that [x, y] f. If [x, y] f and [x, z] f, then y = z. Total Functions f : X Y is one-to-one if each element of X maps to a distinct element in the range. f : X Y is onto if the range is the entire set Y. Finite Automata (FA) merupakan model yang berguna untuk macam-macam perangkat keras dan perangkat lunak, diantaranya: Perangkat lunak untuk merancang dan menguji perilaku rangkaian digital. Lexical analyzer dari sebuah kompilator yang membagi teks input ke dalam unit-unit logik, seperti identifier, keyword dan pungtuasi. Perangkat lunak untuk men-scan teks berukuran besar, seperti koleksi web page, untuk menemukan adanya kata, frasa atau pola yang lain. Perangkat lunak untuk verifikasi sistem yang memiliki sejumlah berhingga state yang berbeda, seperti protokol-protokol komunikasi atau protokol untuk keamanan pertukaran data. Contoh 1 Model FA Sederhana Model switch on/off mengingat apakah switch berada dalam state “on” atau state “off”. Push off on Push • Model memungkinkan user untuk menekan tombol yang memiliki pengaruh berbeda tergantung pada keadaan switch: – Jika switch berada dalam state “off” maka setelah tombol ditekan state berubah menjadi “on”. – Jika switch berada dalam state “on” maka setelah tombol ditekan state berubah menjadi “off”. Komponen dalam FA State dinyatakan oleh lingkaran, dalam Contoh 1 state diberi nama “on” dan “off”. Arc diantara state diberi label “input “ yang menyatakan pengaruh eksternal pada sistem. Dalam Contoh 1 kedua arc diberi label ‘push” yang menyatakan user menekan tombol tertentu. Start state atau initial state merupakan state dimana sistem berada dalam keadaan awal. Dalam Contoh 1 start state adalah off. Selanjutnya, start state ditunjukan oleh kata start dan panah menuju start state tersebut. Final atau accepting state. Dalam Contoh 1 state on dinyatakan sebagai final state. Selanjutnya, final State dinyatakan dalam lingkaran ganda. Contoh 2 Model FA Sederhana • FA untuk mengenali kata “then” • dapat dinyatakan sebagai bagian dari lexical analyzer. t t h th e the n then Input dinyatakan oleh huruf. Start state merupakan string kosong Setiap state memiliki transisi pada huruf selanjutnya dari kata then ke state yang menyatakan prefix selanjutnya yang lebih besar. State “then” adalah accepting state. Grammar Grammar seringkali digunakan dalam perancangan perangkat lunak yang memproses data dengan struktur rekursif. Grammar digunakan dalam salah satu komponen kompilator yaitu parser yang bekerja dengan struktur rekursif dari bahasa pemograman seperti operasi aritmatika, dan kondisional. Sebagai contoh aturan gramatikal EE+E menyatakan bahwa ekspresi dapat dibentuk dari dua ekspresi yang dihubungkan dengan tanda +. Ekspresi regular (1) Ekspresi regular menyatakan struktur dari data, khususnya string teks. Contoh: [A – Z][a – z]*[ ] [A – Z] [A – Z] menyatakan kata-kata yang diawali huruf kapital yang diikuti oleh spasi dan 2 huruf kapital. Ekspresi tersebut mengenali/menerima kata-kata, diantaranya Ithaca NY, It NY, I NY Ekspresi tersebut tidak menerima kata-kata berikut ITHACA NY, Ithaca, ithaca NY, Ithaca ny, Ithaca23 NY, Ithaca 1Y, Palo Alto CA Ekspresi Regular (2) Perhatikan ekspresi berikut ([A – Z][a – z]*[ ])*[ ] [A – Z] [A – Z] Ekspresi tersebut menerima kata-kata, diantaranya Palo Alto CA, Ithaca NY, I Thaca NY, Palo A CA Ekspresi tersebut tidak menerima kata-kata: Palo Alto, palo Alto CA, Palo AltoCA Ekspresi Regular (3) Dalam kedua ekspresi yang diberikan, [A – Z] menyatakan range karakter dari huruf kapital “A” ke “Z” [ ] menyatakan karakter blank simbol * menyatakan “sejumlah” ekspresi yang mendahului Tanda kurung digunakan untuk mengelompokkan komponenkomponen dari ekspresi. Tanda kurung tidak menyatakan karakter dalam teks. Pembuktian Deduktif (1) Pembuktian deduktif terdiri dari serangkaian pernyataan yang memiliki kebenaran. Pembuktian tersebut berawal dari pernyataan awal yang dinamakan hipotesis menuju penyataan kesimpulan. Setiap langkah dalam pembuktian merupakan Prinsip logika yang diterima Fakta yang diberikan Pernyataan sebelumnya dalam pembuktian deduktif Kombinasi dari ketiga bentuk tersebut. Pembuktian Deduktif (1) Hipotesa dapat bernilai benar atau salah, khususnya tergantung pada nilai parameternya. Biasanya hipotesa terdiri dari beberapa pernyataan yang independen yang dihubungkan oleh operator logika AND. Teorema yang dibuktikan dari hipotesa H untuk kesimpulan C ditulis dalam pernyataan IF H THEN C. Contoh 3: pernyataan berikut dapat dibuktikan benar: Jika x 4 maka 2x x2 Contoh 4 Buktikan bahwa teorema berikut benar Jika x adalah penjumlahan dari kuadrat dari empat integer positif, maka 2x x2 Bukti: Langkah Pernyataan Justifikasi 1 x = a2 + b2 + c2 + d2 Diberikan 2 a 1, b 1, c 1, d 1 Diberikan 3 a2 1, b2 1, c2 1, d2 1 (2) dan sifat aritmatika 4 x4 (1), (3) dan sifat aritmatika 5 2x x2 Pernyataan dalam Contoh 1.3 Pembuktian Deduktif (2) Dalam pembuktian pada Contoh 3 dan 4, digunakan aturan logika modus ponens, yaitu jika diketahui H benar dan diketahui “IF H benar THEN C benar” kita simpulkan bahwa C benar. Bentuk “IF H THEN C” dalam teorema sering kali dinyatakan dalam bentuk lain seperti H implies C, H only IF C, C IF H Notasi lain untuk “IF H THEN C” adalah H C. Pembuktian Deduktif (3) Bentuk lain yang sering dijumpai adalah “A IF and only IF B”. Bentuk lain dari pernyataan ini adalah “A IFF B” A ekuivalen dengan B Bentuk “A IFF B” terdiri dari dua pernyataan IF: “IF A then B” and “IF B then A”. Untuk membuktikan pernyataan tersebut benar, kita harus membuktikan 2 pernyataan berikut: “IF B then A” dan “IF A then B” Daftar Pustaka John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001. Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley.