410 likes | 878 Views
Design and Analysis Algorithm. Kontrak Perkuliahan. Kehadiran : > 80% Evaluasi : Setiap materi ada penilaian. Materi I : Pertemuan 1 – 4 Review landasan matematika Kriteria kebaikan suatu algoritme Notasi asimtotik dan laju pertumbuhan fungsi
E N D
Design and Analysis Algorithm Kontrak Perkuliahan Kehadiran : > 80% Evaluasi: Setiapmateriadapenilaian
Materi I : Pertemuan 1 – 4 Review landasan matematika Kriteria kebaikan suatu algoritme Notasi asimtotik dan laju pertumbuhan fungsi Fungsi-fungsi rekursif dan metode penyelesaiannya
Materi II (tentative) : Pertemuan 5 - 9 Teknik perancangan algoritme : Divide and conquer, dynamic programming Materi III (tentative) : Pertemuan 10 - 14 Teknik perancangan algoritme : greedy, backtracking, graph Teori NP-complete dan algoritme-algoritme pendekatan
Analisis Algoritme TIU : Setelah menyelesaikan mata kuliah ini, mahasiswa dapat merancang suatu algoritme yang efisien serta mampu membuat hasil analisisnya. TIK : Mahasiswa dapat menjelaskan konsep2 dasar dalam menganalisis suatu algoritme(Minggu I)
Mahasiswa dapat menjelaskan kriteria kebaikan suatu algoritme dan menganalisis suatu algoritme sederhana (Minggu II) Mahasiswa dapat menjelaskan notasi asimtotik dan menggolongkan fungsi berdasar laju pertumbuhannya (Minggu III) Mahasiswa memahami teknik rekursif serta mampu menggunakan teknik tersebut untuk menganalisis suatu algoritme (Minggu IV)
Mahasiswa dapat menjelaskan karakteristik algoritme divide and conquer serta menggunakannya untuk jenis masalah yang sesuai (Minggu V-VI) Mahasiswadapat menjelaskan karakteristik algoritme pemrograman dinamis serta menggunakannya untuk jenis masalah yang sesuai (Minggu VI-VII) Review paper (Minggu VIII) Mahasiswa dapat menjelaskan karakteristik algoritme greedy serta menggunakannya untuk jenis masalah yang sesuai (Minggu IX-X)
Mahasiswa dapat menjelaskan karakteristik algoritme backtracking serta menggunakannya untuk jenis masalah yang sesuai (Minggu X-XI) Review paper (Minggu XII) Mahasiswa dapat menjelaskan konsep NP-Complete problem dalam menganalisis suatu algoritme (Minggu XIII) Mahasiswadapat menggunakan algoritme pendekatan dalam menyelesaikan masalah NP-complete(Minggu XIV)
Tujuan yang ingin dicapai: Mengukur kompleksitas suatu algoritme Mempelajari teknik-teknik dasar algoritme untuk menyelesaikan masalah-masalah real. Membiasakan diri untuk selalu merespon setiap algoritme baru dengan pertanyaan: Seberapa baik algoritme ini? Apakah ada yang lebih baik?
Referensi: Cormen, T. H, E.L. Charles & L.R. Roland. 2003. Introduction to Algorithms. MIT Press, Cambridge. Buku rujukan lain yang relevan
Tujuan yang ingin dicapai: Mengukur kompleksitas suatu algoritme Mempelajari teknik-teknik dasar algoritme untuk menyelesaikan masalah-masalah real. Membiasakan diri untuk selalu merespon setiap algoritme baru dengan pertanyaan: Seberapa baik algoritme ini? Apakah ada yang lebih baik?
Beberapa istilah yang digunakan: Algoritme: Satu set aturan untuk menyelesaikan masalah dalam jumlah langkah yang terbatas. Program: Implementasi algoritme pada komputer menggunakan bahasa pemrograman tertentu Analisis: Untuk mengetahui seberapa banyak sumber daya yang diperlukan oleh algoritme
Anggapan: Terdapat masalah yang diharapkan dapat diselesaikan menggunakan program komputer Terhadap masalah ini, cari algoritme yang sesuai serta efektif dan efisien Catatan: Masalah yang secara teoritis dapat diselesaikan dengan komputer belum tentu dapat dikerjakan secara praktis (solvable algorithmically), artinya: Program dapat dituliskan serta menghasilkan output yang benar untuk setiap input yang diberikan, dengan asumsi, disediakan sumber daya yang tidak terbatas.
Metode matematika secara efektif dapat digunakan untuk memprediksi banyaknya ruang dan waktu yang diperlukan oleh suatu algoritme tanpa harus mengimplementasikan-nya dalam bahasa pemrograman tertentu. Konsep matematika yang diperlukan, al: Logika matematika, aljabar, kalkulus: fungsi, limit, turunan, integral, sekuens, deret, prinsip2 pembuktian, modular aritmatika, peluang, graf, tree, dsb.
Logika matematika: Proposisi Perangkai dasar Tabel kebenaran Kesetaraan proposisi kompleks Dalil-dalil kesetaraan Argumen Kaidah inferensia : modus ponen, modus tolens, kaidah silogisma
Aljabar, mis: eksponen, logaritma xaxb = xa+b xa/xb = xa-b (xa)b = xab xa+xa = 2 xa≠ x2a log (ab) = log a + log b logab = logkb/logka log an= n log a
Kalkulus: • Fungsi : TentukanDf dan Wf dari fungsi • Limit: Tentukan • Turunan:Tentukan turunan fungsi • Integral: Tentukan integral fungsi
Sekuens dan Kekonvergenannya Konvergen ke 1 konvergen ke 1 divergen
Deret: ∑ an ∑ ai = 1/(1-a) jika 0 < a < 1 dan n → ∞ ∑ i = n(n+1)/2 ≈ ½ n2 ∑ i2 = n(n+1)(2n+1)/6 ≈ 1/3 n3 ∑ ik ≈ ( nk+1)/|k+1|, k ≠ -1
Metode pembuktian: Counter example Kontradiksi Induksi matematika Counter example: Membuktikan bahwa suatu pernyataan salah cukup dengan mengambil salah satu contoh yang mendukung pernyataan tersebut.
Kontradiksi: Mula-mula diasumsikan salah. Bilaini berakibat pada suatu kemustahilan,berarti yang berlaku adalah sebaliknya (benar). Contoh: Buktikan bahwa bilangan prima itu tidak terbatas. Catatan: Setiap bilangan adalah prima atau perkalian prima
Induksi Matematika: Buktikan bahwa : Untuk n ≥ 1 berlaku: ∑ i2 = [n(n+1)(2n+1)]/6 Bilangan Fibonacci ke-i memenuhi sifat Fi < (5/3)i untuk i ≥ 1Catatan : Fi = Fi-1 + Fi-2
Modular Aritmatika: a = b mod n jjk n membagi (a-b) Secara intuitif dapat dikatakan bahwa akan diperoleh sisaan yang sama pada pembagian: a dibagi n atau b dibagi n Contoh : 5 = 1 mod 2, 11 = 2 mod 3 TeoremaJika a = b mod n, maka a+c = b+c mod n Jika a = b mod n, maka ad = bd mod n
Kombinatorika Hukum penjumlahan Hukum perkalian Kombinasi Permutasi Setiap pengguna suatu sistem komputer memiliki sebuah password, yang terdiri atas 6 sampai 8 karakter, dengan setiap karakter adalah huruf kapital atau digit bilangan desimal. Jika setiap password harus memuat minimal satu digit bilangan desimal, ada berapa banyak password yang mungkin?
0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 Diagram Pohon Ada berapa string biner dengan panjang empat yang tidak memiliki dua 1 secara berurutan? bit ke-1 bit ke-2 bit ke-3 bit ke-4 Jadi, terdapat 8 string.
Peluang Diskrit Pencacahan menjadi landasan bagi perhitungan peluang berlangsungnya suatu kejadian. Abad 17: Pascal menentukan kemungkinan untuk memenangkan suatu taruhan yang didasarkan pada keluaran dari dua buah dadu yang dilemparkan berulang-ulang. Abad 18: Laplace mempelajari perjudian dan mendefinisikan peluang suatu kejadian.
Soal Sebuah dadu dilempar 6 kali berturut-turut. Carilah (a) p(muncul tepat empat angka 1). (b) p(tidak ada angka 6 yang muncul).
Solusi (a) Ini adalah contoh dari suatu barisan dengan enam percobaan Bernoulli yang saling bebas, di mana peluang sukses adalah 1/6 dan peluang gagal 5/6. Karena itu, peluang muncul tepat empat angka 1 pada saat dadu dilemparkan 6 kali adalah (b) Dalam kasus ini sukses adalah kemunculan angkaselain 6, yang memiliki peluang 5/6 dan gagal adalah kemunculan angka 6, yang peluangnya 1/6. Maka peluang tidak ada angka 6 yang muncul pada saat dadu dilemparkan 6 kali adalah
Graf Graf G = (V,E) dengan V = himpunan vertex/ simpul E = himpunan edge/ sisi Contoh: 1 2 3 V = {1, 2, 3, 4, 5, 6} E = {(1, 2), (1, 5), (2, 5), (3, 6)} 4 5 6
Digraf Graf G = (V,A) dengan V = himpunan vertex/ simpul A = himpunan arch/ sisi berarah Contoh: 1 2 3 V = {1, 2, 3, 4, 5, 6} A = {(1, 2), (1, 5), (5,2), (3, 6)} 4 5 6
A C B A C B Suatu graf G disebut terhubungkan (connected) jika setiap pasang vertex terhubungkan oleh suatu lintasan (path). Lintasan : Jalur : Trayek : B D E A C D B B
Tree dan Forest Tree : Adalah graf tak berarah, terhubungkan dan tanpa cycle Forest: Adalah graf tak berarah, tanpa cycle dan tak terhubungkan
Contoh: tentukan MST dari graf berikut: v1 2 v2 3 1 4 10 2 7 v3 v4 v5 8 4 6 5 1 v6 v7
Algoritme Prim: v1 2 v2 1 2 v3 v4 v5 4 4 6 1 v6 v7 MST: 16
Algoritme Kruskal: v1 2 v2 1 2 v3 v4 v5 4 6 1 v6 v7 MST: 16
Tugas • Baca buku Cormen bab : Summation • Review landasan matematika yang lain