Pertemuan 2 Konsep dalam Teori Otomata dan Pembuktian
Pertemuan 2 Konsep dalam Teori Otomata dan Pembuktian Formal Teori Bahasa dan Otomata (KOM 208) SKS: 3(3 -0)
TIK, Subtopik dan Waktu Penyajian • Tinjauan Instruksional Khusus: – Mahasiswa mengetahui gambaran umum teori otomata dan akan dapat menjelaskan metode-metode pembuktian formal. • Subtopik: – 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
Pembuktian Menggunakan Teori Himpunan • Jika E dan F menyatakan himpunan, pernyataan E = F berarti bahwa himpunan yang dinyatakan adalah sama. • Bahwa setiap elemen dalam himpunan yang dinyatakan oleh E adalah dalam himpunan yang dinyatakan oleh F, dan sebaliknya.
Contoh 5 • Buktikan bahwa hukum distributif berikut benar: R (S T) = (R S) (R T) • Bukti: • Dalam pernyataan di atas, dinyatakan E = R (S T) F = (R S) (R T)
Contoh 5 (lanjutan) ( ) Jika x E maka x F Langkah Pernyataan Justifikasi 1 x R (S T) Diberikan (hipotesa) 2 x R atau x S T (1) dan definisi union 3 x R atau (x S dan x T) (2) dan definisi interseksi 4 x (R S) (3) dan definisi union 5 x (R T) (3) dan definisi union 6 x (R S) (R T) (4), (5), dan definisi interseksi
Contoh 5 (Lanjutan) • ( ) Jika x F maka x E Langkah Pernyataan Justifikasi 1 x (R S) (R T) Diberikan (hipotesa) 2 x (R S) (1) dan definisi interseksi 3 x (R T) (1) dan definisi interseksi 4 x R atau (x S dan x T) (2), (3) dan penalaran tentang union 5 x R atau x S T (4) dan definisi interseksi 6 x R (S T) (5), dan definisi union
Pembuktian Menggunakan Kontradiksi • Dimulai dengan mengasumsikan hipotesi H dan negasi/inkaran dari kesimpulan C. • Lengkapi pembuktian dengan menunjukkan bahwa sesuatu pernyataan diketahui salah setelah diturunkan secara logis dari H dan bukan C.
Contoh 6 • Buktikan dengan menggunakan kontradiksi bahwa teorema berkut benar: – Misal S adalah subset berhingga dari himpunan tak berhingga U, – Misalkan T adalah komplemen dari S terhadap U, – Maka T tak berhingga. • Hipotesis: H adalah “U adalah himpunan tak hingga”, “S adalah subset berhingga dari U”, dan “T adalah komplemen dari S terhadap U”. • Kesimpulan: C adalah “ T adalah tak berhingga”.
Contoh 6 (Lanjutan) • Bukti dengan kontradiksi: • Dengan menggunakan kontradiksi, kita asumsikan “bukan C” yaitu asumsikan bahwa T adalah berhingga. • Telah diasumsikan bahwa – S dan T adalah berhingga karena S dan T berhingga – T adalah komplemen dari S terhadap U, maka haruslah U berhingga. • Tetapi karena U dalam hipotesa dinyatakan tak hingga, dan himpunan tidak dapat berhingga dan tak berhingga sekaligus, maka kita telah membuktikan pernyataan logis salah.
Pembuktian dengan Counterexample • Kadang-kadang kita ingin membuktikan bahwa suatu pernyataan bukan merupakan teorema, • Seringkali lebih mudah membuktikan bahwa suatu pernyataan bukan teorema daripada membuktikan bahwa suatu pernyataan adalah teorema. • Contoh 7: Apakah pernyataan berikut benar Semua bilangan prima adalah ganjil. • Bukti: – 2 adalah bilangan prima, tetapi 2 adalah genap. – Dalam pembuktian tersebut, kita mencari counterexample yang mengakibatkan pernyataan tidak benar.
Pembuktian dengan Kontrapositif • Bentuk kontrapositif dari pernyataan “IF H THEN C” adalah “IF not C THEN not H”. • Pernyataan dan kontrapositifnya adalah keduanya benar atau keduanya salah sehingga kita dapat membuktikan salah satunya untuk membuktikan yang lain. • Teorema dalam Contoh 3: Jika x 4 maka 2 x x 2, memiliki bentuk kontrapositif : Jika tidak 2 x x 2 maka tidak x 4 atau Jika 2 x < x 2 maka x < 4
Pembuktian Induktif • Pembuktian induktif biasanya digunakan dalam pembuktian yang melibatkan objek yang didefinisikan secara rekursif. • Pembuktian induktif yang sering dijumpai berhubungan dengan integer. • Dalam teori otomata, pembuktian induktif juga diperlukan untuk konsep yang didefinisikan secara rekursif seperti tree dan ekspresi regular.
Induksi pada integer • Anggap diberikan pernyataan S(n) untuk dibuktikan dimana n adalah integer. • Pendekatan umum untuk membuktikan S(n) benar adalah membuktikan – Basis, dimana kita menunjukkan S(i) untuk integer i tertentu, biasanya i = 0 atau i = 1. – Langkah induktif, dimana kita mengasumsikan n i, dimana i adalah integer basis dan tunjukkan bahwa “jika S(n) maka S(n + 1).
Induksi Struktural • Dalam teori otomata, terdapat beberapa struktur yang didefinisikan secara rekursif, sebagai contoh tree dan ekspresi. • Seperti induksi integer, – semua definisi rekursif memiliki basis case, dimana satu atau lebih struktur dasar didefinisikan, dan – langkah induktif, dimana struktur yang kompleks didefinisikan dalam bentuk struktur yang didefinisikan sebelumnya.
Contoh 7 • Berikut adalah definisi rekursif dari tree: – Basis : Sebuah node tunggal adalah tree, dan node tersebut adalah akar dari tree. – Induksi : Jika T 1, T 2, . . . , Tk adalah tree • Tree yang baru dapat dibentuk dengan cara sebagai berikut : – Mulai dengan node baru N, yang merupakan akar dari tree. – Tambahkan salinan dari semua tree T 1, T 2, . . . , Tk. – Tambahkan edge-edge dari node N ke akar-akar dari setiap tree T 1, T 2, . . . , Tk.
Contoh 8 • Berikut adalah definisi rekursif dari ekspresi yang menggunakan operator aritmatik dan , dimana operand-nya adalah bilangan atau variabel. – Basis : Bilangan atau huruf (yaitu variabel) adalah ekspresi. – Induksi : Jika E dan F adalah ekspresi, maka E + F, E * F dan (E) juga ekspresi. • Contoh, 2 dan x adalah ekspresi dari basis, langkah induktif menyatakan bahwa x + 2, (x + 2) dan 2 * (x + 2) adalah ekspresi.
Contoh 8 (lanjutan) Bukti: • Misalkan S(x) adalah pernyataan tentang struktur x yang didefinisikan oleh definisi rekursif tertentu. • Basis: Buktikan S(x) untuk struktur basis x. • Langkah induktif: – Ambil suatu struktur x berdasarkan definisi rekursif dibentuk dari Y 1, Y 2, . . . , Yk. – Asumsikan bahwa pernyataan S(Y 1), S(Y 2) , . . . , S(Yk) dan gunakan pernyataan ini untuk membuktikan S(x).
Konsep dalam Teori Otomata Alphabet • Sebuah alphabet adalah himpunan berhingga dan tak kosong dari simbol. Alphabet disimbolkan oleh . • Contoh: – = {0, 1} alphabet biner – = {a, b, . . . , z}, himpunan semua huruf kecil. – Himpunan semua karakter ASCII.
Konsep dalam Teori Otomata (lanjutan) String • Sebuah string (atau word) adalah deretan simbol berhingga yang dipilih dari alphabet. • Contoh : 011011 dan 1111 adalah string dari alphabet biner = {0, 1}. • String kosong adalah string dimana tidak ada kemunculan simbol. • String tersebut dinotasikan oleh .
Konsep dalam Teori Otomata (lanjutan) • Panjang dari string adalah banyaknya posisi untuk simbol dalam string. • Contoh, 01101 memiliki panjang 5. • Umumnya panjang dari string adalah banyaknya simbol dalam string. • Pernyataan tersebut tidak sepenuhnya benar, sebagai contoh terdapat 2 simbol dalam string 01101 yaitu 0 dan 1, tetapi terdapat 5 posisi untuk simbol, dan panjangnya adalah 5. • Notasi standar untuk panjang string w adalah |w|. Contoh: |011| = 3 dan | | = 0.
Konsep dalam Teori Otomata (lanjutan) • x adalah sebuah substring dari string lain y jika ada string w dan z, keduanya dapat berupa string kosong, sedemikian sehingga y = wxz. • Sebagai contoh, car adalah substring dari carry, car, vicar.
Konsep dalam Teori Otomata (lanjutan) Pangkat dari Alphabet • Jika adalah alphabet, dapat dinyatakan himpunan dari semua string dengan panjang tertentu dari alphabet tersebut dengan menggunakan notasi eksponensial. • Kita mendefinisikan k sebagai himpunan dari string dengan panjang k, setiap string tersebut memiliki simbol dalam .
Konsep dalam Teori Otomata (lanjutan), Contoh 9 • Perhatikan bahwa 0 = { }, untuk alphabet apapun. • Bahwa adalah string yang memiliki panjang 0. Jika = {0, 1} maka 1 = {0, 1} 2 = {00, 01, 10, 11} 3 = {000, 001, 010, 011, 100, 101, 110, 111} dan seterusnya. • Semua string pada alphabet dinotasikan *. • Contoh: {0, 1}* = { , 0, 1, 00, 01, 10, 11, 000, . . . } dan * = 0 1 2 . . .
Konsep dalam Teori Otomata (lanjutan) • Kadang-kadang kita tidak ingin memasukkan string kosong dalam himpunan string. • Himpunan string-string tak kosong dari alphabet dinotasikan +. • Dengan demikian : + = 1 2 3 . . . * = + { }.
Konsep dalam Teori Otomata (lanjutan) Perangkaian String (concatenation) • Misalkan x dan y adalah string, maka xy menyatakan perangkaian dari x dan y, bahwa string dibentuk dengan membuat salinan dari x dan diikuti oleh salinan dari y. • Jika x adalah string yang disusun oleh i simbol, x = a 1 a 2. . . ai dan y adalah string yang disusun oleh j simbol, y = b 1 b 2. . . bj maka xy adalah string dengan panjang i + j, xy = a 1 a 2. . . aib 1 b 2. . . bj • Contoh: x = 01101 dan y = 110, maka xy = 01101110 dan yx = 11001101. • Untuk suatu string w, persamaan w = w dipenuhi. Bahwa adalah identitas untuk perangkaian.
Konsep dalam Teori Otomata (lanjutan) Bahasa • Himpunan string-string yang semuanya dipilih dari *, dimana adalah alphabet, dan L *, maka L adalah bahasa pada . • Perhatikan bahwa bahasa pada tidak harus meliputi string-string dengan semua simbol dari . • Dengan demikian, jika L adalah bahasa pada , diketahui bahwa L adalah bahasa pada alphabet yang merupakan superset dari . • Bahasa umum dapat dipandang sebagai himpunan dari string.
Konsep dalam Teori Otomata (lanjutan), Contoh 10 • Bahasa Inggris, yang merupakan koleksi dari kata-kata dalam bahasa Inggris yang benar. – Kata-kata tersebut merupakan string pada alphabet yang mengandung semua huruf. • Bahasa C atau bahasa pemrograman lainnya. – Dalam bahasa tersebut, program yang benar adalah subset dari string-string yang mungkin yang dibentuk dari alphabet. – Alphabet tersebut adalah subset dari karakter ASCII.
Konsep dalam Teori Otomata (lanjutan) Contoh bahasa dalam teori otomata: • Bahasa dari semua string yang berisi n buah 0 dan diikuti oleh n buah 1, untuk n 0: { , 01, 0011, 000111, . . . } • Himpunan string-string dari 0 dan 1 dengan banyaknya 0 sama dengan banyaknya 1. { , 01, 10, 0011, 0101, 1001. . . } • Himpunan bilangan biner yang memiliki nilai prima {10, 11, 101, 111, 1011, . . . } • * adalah bahasa untuk alphabet • adalah bahasa kosong, merupakan bahasa pada suatu alphabet. • { }, bahasa yang hanya mengandung string kosong, juga merupakan bahasa pada suatu alphabet. Perhatikan bahwa { }
Contoh 11 Berikut adalah contoh bahasa pada = {a, b}: 1. L 1 = { , a, aab} 2. L 2 = {x {a, b}* |x| ≤ 8} 3. L 3 = {x {a, b}* |x| adalah ganjil} 4. L 4 = {x {a, b}* na(x) ≥ nb(x)} 5. L 5 = {x {a, b}* |x| ≥ 2, x diawali dan diakhiri dengan b}
Notasi lain dari Bahasa (1) 1. Berdasarkan string-string yang dikonstruksi di dalamnya. Contoh: L 1 = {ab, bab}* {b}{bb}* 2. Sifat atau karakteristik dari string dalam L, Contoh: L = {byb y {a, b}*}. 3. Definisi rekursif Contoh: Definisi rekursif dari L*: • L* • Untuk suatu x L* dan suatu y L, xy L* • Tidak ada string dalam L* selain yang diperoleh menggunakan aturan 1 dan 2.
Notasi lain dari Bahasa (2) Definisi rekursif untuk bahasa pal dari string-string palindrom pada : • pal • Untuk suatu a , a pal • Untuk suatu x , dan suatu a , axa a pal • Tidak ada string dalam pal selain yang diperoleh menggunakan aturan 1, 2 dan 3.
Notasi lain dari Bahasa (3) Definisi rekursif dari bahasa (LAE) yang string-string di dalamnya berupa ekspresi aljabar dengan tanda kurung penuh (sepasang) untuk setiap operator dengan = {i, (, ), +, }. • i LAE • Untuk suatu x, y LAE, (x+y) dan (x y) adalah anggota dari LAE. • Tidak ada string dalam LAE selain yang diperoleh menggunakan aturan 1 dan 2. Contoh string dalam bahasa tersebut: i, (i+i), (i i), ((i+i) i), ((i (i i))+i).
Perangkaian Bahasa • Jika L 1 dan L 2 adalah bahasa, L 1 dan L 2 *. Perangkaian dari L 1 dan L 2 dinotasikan L 1 L 2 = {xy | x L 1 dan y L 2}. • Sebagai contoh, {hope, fear}{less, fully} = {hopeless, hopefully, fearless, fearfully}. • Untuk L adalah bahasa, L{ } = { }L karena untuk setiap x L, x = x.
Daftar Pustaka • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. 2001. Introduction to Automata Theory, Languange, and Computation. Edisi ke-2. Addison-Wesley • Martin J. C. 2003. Introduction to Languanges and Theory of Computation. Mc. Graw-Hill.
- Slides: 34