Analisis Algoritma & Struktur Data

Slides:



Advertisements
Presentasi serupa
Modul Matematika Diskrit
Advertisements

Definisi Rekursif Ada kalanya kita mengalami kesulitan untuk mendefinisikan suatu obyek secara eksplisit. Mungkin lebih mudah untuk mendefinisikan obyek.
PENDAHULUAN : ALJABAR ABSTRAK
BAB II HIMPUNAN.
Pertemuan I-III Himpunan (set)
Himpunan: suatu kumpulan dari obyek-obyek.
Himpunan.
Pertemuan ke-2 Pencacahan Matakuliah : I0252 / Probabilitas Terapan
Fungsi Definisi : Misalkan A dan B himpunan. Relasi biner f dari A ke B merupakan suatu fungsi jika setiap elemen di dalam A dihubungkan dengan tepat satu.
BAB II HIMPUNAN.
KOMBINATORIAL.
Matematika Diskrit bab 2-Himpunan
Matematika Diskrit bab 2-Himpunan
MATRIKS, RELASI & FUNGSI
Notasi Asimptotik Team Fasilkom.
Pertemuan ke 4.
BAB 3 MATRIKS, RELASI, DAN FUNGSI
MUG2A3 MATEMATIKA DISKRIT
BAB III MATRIKS, RELASI DAN FUNGSI
Algoritma rekursif dan relasi rekurensi
Oleh : Devie Rosa Anamisa
Pertemuan ke 4.
Matematika Diskrit bab 2-Himpunan
Teori Himpunan.
Modul Matematika Diskrit Pertemuan ke-4
BAB II HIMPUNAN.
Matematika Diskrit bab 2-Himpunan
Fungsi Oleh: Sri Supatmi,S.Kom Rinaldi Munir, Matematika Diskrit
Pendahuluan.
Permutasi dan Kombinasi
Permutasi.
Matematika Diskrit Himpunan Sri Nurhayati.
BAB 4 INDUKSI MATEMATIKA.
Matematika Diskrit (1) Himpunan.
Pertemuan 6 HIMPUNAN.
Matematika Diskrit bab 2-Himpunan
Erna Sri Hartatik Matematika 1 Pertemuan 1 Himpunan.
Permutasi dan kombinasi
Kontrak Perkuliahan KALKULUS I Ayundyah Kesumawati Kode Mata Kuliah
Pendahuluan.
Disusun Oleh: Novi Mega S
NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)
TEORI HIMPUNAN Dosen Pembimbing Gisoesilo Abudi Powerpoint Templates.
BAB II HIMPUNAN.
Teori Himpunan (Set Theory)
PENGERTIAN HIMPUNAN Himpunan merupakan kumpulan objek-objek (benda). Objek-objek yang dimaksud di sini adalah elemen atau anggota himpunan tersebut CARA.
Matematika Diskrit Himpunan
Teori Himpunan.
PENGERTIAN HIMPUNAN Himpunan merupakan kumpulan objek-objek (benda). Objek-objek yang dimaksud di sini adalah elemen atau anggota himpunan tersebut CARA.
BAB II HIMPUNAN.
HIMPUNAN Himpunan : kumpulan benda atau objek yang didefinisikan secara jelas. Kelompok berikut yang merupakan himpunan adalah : 1. Kelompok siswa cantik.
HIMPUNAN.
BAB III MATRIKS, RELASI DAN FUNGSI
Modul 4 : Analisis Algoritma & Struktur Data
Transparansi Kuliah Kedua Matematika Diskrit
TEORI URUTAN PADA GEOMETRI
Analisa Algoritma Asimtotik.
PENGERTIAN HIMPUNAN Himpunan merupakan kumpulan objek-objek (benda). Objek-objek yang dimaksud di sini adalah elemen atau anggota himpunan tersebut CARA.
PENDAHULUAN : ALJABAR ABSTRAK
TEORI BILANGAN INDUKSI MATEMATIKA
Matematika Diskrit Himpunan Sri Nurhayati.
Model dan Fungsi Matematika
Logika Matematika Teori Himpunan
KOMBINATORIAL.
Dr. Mufid Nilmada, SSi., MMSI
GRUP SIKLIK.
Notasi Asimptotik Team Fasilkom.
PENGERTIAN HIMPUNAN Himpunan merupakan kumpulan objek-objek (benda). Objek-objek yang dimaksud di sini adalah elemen atau anggota himpunan tersebut CARA.
Notasi Asimptotik Team Fasilkom.
Matematika Diskrit bab 2-Himpunan Himpu nan Oleh : Sri Supatmi,S.Kom.
Transcript presentasi:

Analisis Algoritma & Struktur Data Fondasi Matematis

Topik bahasan Bentuk Asimptotis Matematika dasar Summation (Penjumlahan) Rekurensi Set Theory Prinsip Pencacahan

Bentuk Asimptotis Kerumitan (Complexity) suatu algoritma biasanya dinyatakan dalam bentuk asimptotis Ada 3 bentuk asimptotis Notasi T(n) = (g(n)) Notasi T(n) = O(g(n)) Notasi T(n) = Ω(g(n)) Definisi: Suatu fungsi f(n) dikatakan menjadi anggota dari himpunan (g(n)) apabila ada tetapan positif c1, c2, dan n0 sedemikian rupa sehingga f(n) berada diantara c1.g(n) dan c2.g(n), untuk semua nilai n  n0, atau c1.g(n)  f(n)  c2.g(n) untuk n  n0.

Contoh: andaikan f(n) = ½ n2 – 3n maka apakah kompleksitas f(n) = (n2) ? Cari c1 dan c2 sehingga: c1. n2  ½ n2 – 3n  c2 n2 untuk semua n  n0. bila faktor n2 dihilangkan , maka: c1  ½ - 3/n  c2, atau : c2  ½ - 3/n dan c1  ½ - 3/n untuk n  7, maka c1=1/14 dan c2=1/2 Kesimpulan: f(n) = (n2).

Defenisi: Suatu fungsi f(n) dikatakan menjadi anggota himpunan O(g(n)) apabila ada tetapan positif c dan n0 sedemikian rupa sehingga f(n) berada diantara 0 dan c.g(n) untuk semua nilai n  n0, atau 0  f(n)  c.g(n) untuk n  n0. Notasi (g(n)) lebih ketat dibanding O(g(n)), atau (g(n))  O(g(n)) Defenisi: Suatu fungsi f(n) dikatakan menjadi anggota himpunan (g(n)) apabila ada tetapan c dan n0 sedemikian rupa sehingga f(n) berada diatas c.g(n), untuk semua n n0, atau biasa ditulis dalam bentuk: 0  c.g(n)  f(n), untuk semua n  n0. Untuk dua fungsi f(n) dan g(n), maka f(n) = (g(n)) jika dan hanya jika f(n)=O(g(n)) dan juga f(n) = (g(n)).

Matematika Dasar Monotonicity: Suatu fungsi f(n) dikatakan “monoton bertambah” (monotonically increasing) apabila untuk m  n ternyata f(m)  f(n). Sejalan dengan itu maka f(n) dikatakan “monoton berkurang” (monotonically decreasing) apabila untuk m  n ternyata f(m)  f(n). Floor : Untuk setiap bilangan real x, floor(x) adalah bilangan integer terbesar yang lebih kecil atau sama dengan x, dan disimbol sebagai  x .

Ceiling: Untuk setiap bilangan real x, ceiling(x) adalah bilangan integer terkecil yang lebih besar atau sama dengan x, dan disimbol sebagai x . Dengan demikian maka: (x – 1) < floor(x)  x  ceiling(x) < x+1 untuk setiap bilangan real x. Polinomial : polynomial n ber-derajat d adalah fungsi p(n) dalam bentuk: p(n) =  ai ni untuk i=0 … d, dimana konstante a0, a1, a2, ... ad adalah koefisien dari polinomial dimana ad  0. Suatu polinomial disebut positif secara asimptotik apabila ad > 0, sehingga bisa dituliskan bahwa p(n) = (nd).

Exponential: Untuk setiap bilangan real a0 dan m, n maka berikut ini berlaku dalam eksponensial:  a1 = a a-1 = 1/a (am)n = amn (an)m = (am)n am an = am+n Untuk bilangan e = 2.71828... berlaku relasi eskponensial:   ex = 1 + x + x2 / 2! + x3 / 3! + ... =  xi / i! utk i=0 s/d  ex = 1 + x + (x2)

Beberapa sifat logaritma: a = blogb a logc (ab) = logc a + logc b Logaritma: Notasi logaritma yang akan digunakan adalah sebagai berikut: lg n = log2 n (logaritma basis 2) ln n = loge n (logaritma basis bilangan natural e) lgk n = (lg n)k ( pemangkatan logaritma) lg lg n = lg (lg n) (komposisi logaritma) Beberapa sifat logaritma: a = blogb a logc (ab) = logc a + logc b logb an = n logb a logb a = logc a / logc b logb (1/a) = - logb a logb a = 1/loga b alogb n = nlogb a

n! =  (2 n) (n/e)n (1 + (1/n)) n! = O(nn) n! = (2n) n! = (n lg n) Factorial : Notasi n! dibaca sebagai faktorial n dapat didefinisikan untuk n  0, sebagai berikut: n! = 1 bila n=0, = n.(n-1)! bila n>0. dengan kata lain, n! = 1.2.3 ... N Pendekatan Stirling: n! =  (2 n) (n/e)n (1 + (1/n)) n! = O(nn) n! = (2n) n! = (n lg n)

Fibonacci : bilangan Fibonacci didefinisikan sbb: F(i) = F(i-1) + F(i-2), untuk i  2.   Berdasarkan definisi tersebut maka deret bilangan Fibonacci adalah sbb: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Golden ratio:  = (1 + 5) / 2 = 1.61803 ... ’ = (1 - 5) / 2 = -0.61803 ... Fibonacci F(i) = (i - ’i ) / 5.

Penjumlahan (Summation): a1 + a2 + a3 + ... + an =  ai utk i=1 s/d n.  (c.ak + bk) = c  ak +  bk untuk k=1 s/d n  (f(k)) = (  f(k) ) untuk k =1 s/d n  k = 1 + 2 + 3 + .. + n = n(n+1)/2 = (n2)  xk = 1 + x + x2 + x3 + ... + xk, utk k = 0 s/d n = (xn+1 – 1) / (x – 1) Hn = 1 + ½ + 1/3 + ¼ + ... + 1/n =  1/k untuk k=1 s.d n (harmonik) Teleskopik: n (ak – ak-1) = an – a0 dan n-1 (ak – ak+1) = a0 – an

Product : n ak = a1.a2. a3. ... An Induksi Matematis: Buktikan bahwa persamaan benar untuk n=1 Buktikan bahwa juga benar untuk (n+1) Contoh: n k = ½ n(n+1) Untuk n=1,  k = 1 terbukti karena ½ (1)(1+1) = 1. Untuk n+1, n+1 k = n k + (n+1) = ½ (n+1)(n+2), terbukti karena : = ½ n(n+1) + (n+1) = (n+1)( ½ n + 1) = (n+1) ( ½ (n+2) ) = ½ (n+1)(n+2)  

Rekurensi Kompleksitas algoritma sering dinyatakan dalam bentuk persamaan rekurensi yang melibatkan fungsi asimptotis. Bentuk ini sebenarnya mewakili bentuk rekursif dari suatu program. Misalnya suatu progam “merge-sort” dinyatakan sbb: T(n) = (1) bila n=1 = 2 T(n/2) + (n) bila n > 1 Ada empat cara menyelesaikan rekurensi: subsitusi, iterasi, master dan metoda homogen  

Metoda Subsitusi: Contoh: buktikan T(n) = 2T(n/2 + n adalah O(n lg n). Untuk suatu nilai c harus dibuktikan bahwa: T(n)  c.n lg n, subsitusi n dengan n/2, maka T(n/2)  c.[n/2] lg [n/2], tentu saja T(n)  2 (c. [n/2] lg [n/2] ) + n T(n)  c.n lg [n/2] + n T(n) = c.n lg n – c.n.lg 2 + n T(n) = c.n lg n – c.n + n T(n)  c.n lg n atau T(n) adalah O(n lg n)

Selesaikan T(n) = 3 T(n/4) + n T(n) = n + 3 T(n/4) Metoda Iterasi: Selesaikan T(n) = 3 T(n/4) + n T(n) = n + 3 T(n/4) T(n) = n + 3 (n/4 + 3 T(n/16)) T(n) = n + 3 (n/4 + 3 T(n/16  + 3 T(n/64))) T(n) = n + 3 n/4 + 9 n/16 + 27 T(n/64) dst T(n)  n+3n/4 + 9n/16 + 27n/64 + ... + 3log4 n (1)  n  (3/4)i + (nlog4 3) = 4n + o(n) = O(n) Note: suku ke-i adalah 3i n/4i, habis ketika n/4i=1 atau i > log4 n.

Metoda Master: Bentuk umum : T(n) = a T(n/b) + f(n) Theorema: Bila a1 dan b>1 adalah tetapan dan f(n) adalah suatu fungsi, kemudian andaikan T(n) didefinisikan pada bilangan bulat positif melalui rekurensi: T(n) = a T(n/b) + f(n), dimana n/b bisa dinyatakan sebagai n/b atau n/b maka T(n) dapat dibatasi secara asimptotik, sebagai berikut: Bila f(n) = O(nlogb a - ), dimana >0 tetapan, maka T(n) = (nlogb a) Bila f(n) = (nlogb a), maka T(n) = (nlogb a lg n) Bila f(n) = (nlogb a + ), dimana >0 tetapan, dan bila a.f(n/b)  c.f(n) dengan konstante c < 1, dan n cukup besar, maka T(n) = (f(n)).

Contoh: selesaikan T(n) = 9 T(n/3) + n Pada bentuk ini: a = 9, b=3, dan f(n) = n, sehingga dapat diterapkan kasus 1 sehingga T(n) = (nlogb a) = (nlog3 9) = (n2). Perlu diperhatikan bahwa f(n)=O(nlog3 9 - ) dengan =1. Selesaikan T(n) = T(2n/3) + 1. Pada bentuk ini: a=1, b=3/2, dan f(n)=1, sehingga nlogb a = nlog3/2 1 = n0 = 1 dengan demikian dapat diterapkan kasus 2, karena f(n)=(nlogb a) = (1), jadi solusinya adalah: T(n) = (lg n)

selesaikan melalui analogi: Rekurensi Homogen: a0 T(n) + a1 T(n-1) + a2 T(n-2) + ... + ak T(n-k) = 0  selesaikan melalui analogi: a0 xn + a1 xn-1 + a2 xn-2 + ... + ak xn-k = 0 Contoh: selesaikan T(n) – 3 T(n-1) – 4 T(n-2) = 0, n  0 dan kondisi awal T(0)=0, T(1)=1. Analogi: : x2 – 3 x – 4 = 0, x1= -1 dan x2= 4, shg T(n) = c1 (-1)n + c2 4n Subsitusi kondisi awal, memberikan c1= -1/5 dan c2 = 1/5, dengan demikian: T(n) = -1/5 (-1)n + 1/5 4n = 1/5 [ 4n – (-1)n ] = O(4n)

Rekurensi tak Homogen, bentuknya: a0 T(n) + a1 T(n-1) + a2 T(n-2) + ... + ak T(n-k) = bn P(n)  dimana: b adalah tetapan, dan P(n) adalah polinomial dalam n berderajat d. Contoh: selesaikan T(n)=2 T(n-1) + 3n atau: T(n) – 2T(n-1) = 3n sehingga: b=3 dan P(n)=1 kalikan dengan 3 : 3 T(n) – 6 T(n-1) = 3n+1 ganti n dengan n+1 : T(n+1) – 2 T(n) = 3n+1 Perkurangkan keduanya : T(n+1) – 5 T(n) + 6 T(n-1) = 0 Persamaan karakteristik : x2 - 5 x + 6 = 0, solusinya (x-2)(x-3)=0 sehingga penyelesaiannya dapat dilakukan sebagaimana persamaan rekurensi homogen. T(n)=c1.(2n) + c2.(3n) atau O(3n)

Bila mungkin tuliskan bentuk tak homogen menjadi: (a0 xk + a1 xk-1 + a2 xk-2 + ... + ak ) (x – b)d+1= 0 Contoh: selesaikan T(n) – 2T(n-1) = (n+5)3n Disini b=3, P(n)=n+5, polinomial dengan d=1 Bentuk tak homogen menjadi (x-2)(x-3)1+1 atau (x-2)(x-3)2 Solusinya: T(n)=c1.2n + c2.3n + c3.n.3n = O(n.3n )

Set Theory Himpunan (set) adalah kumpulan objek yang disebut elemen himpunan atau anggota (member). Jika objek x adalah elemen dari suatu himpunan S, maka dituliskan sebagai: x  S dan dibaca “x adalah elemen S”. jika y bukan anggota dari S maka ditulis sebagai y  S. Bila 1,2 dan 3 adalah anggota dari himpunan S, maka ditulis: S = {1,2,3} adalah simbol untuk himpunan kosong (empty set), tanpa anggota Z adalah simbol untuk himpunan bilangan bulat (integer) { ... -2, -1, 0, 1, 2, ... } R adalah simbol untuk himpunan bilangan real N adalah simbol untuk himpunan bilangan natural { 0, 1, 2, 3, ...}  adalah simbol “subset”, bila semua elemen A ada didalam B, maka A  B  adalah simbol “proper subset”, bila elemen A ada dalam B, tapi A  B

Beberapa hukum untuk set: empty set laws : A = , A = A Operasi pada set: intersection AB = { x : x  A dan x  B } union AB = { x : x  A atau x  B } difference A – B = { x : x  A dan x  B } Beberapa hukum untuk set: empty set laws : A = , A = A idempotency laws : AA = A, AA = A commutative laws : AB = BA, AB = BA associative laws : A(BC) = (AB)C, A(BC) = (AB)C distributive laws : A(BC) = (AB)  (AC), A(BC) = (AB)  (AC) absorption laws : A(AB) = A, A(AB) = A DeMorgan’s laws : A – (BC) = (A – B)(A – C), A – (BC) = (A – B)(A – C) complement’s laws : ~A adalah set dimana semua elemen A tidak ada= U – A ~(~A) = A, A~A = 0, A~A = U (universe) ~(AB) = ~A  ~B, ~(AB) = ~A  ~B

Contoh: A = {a, b} dan B = {a, b, c} maka : (Cartesian product) dari himpunan A dan B disimbol AxB, adalah himpunan semua pasangan-berurutan (ordered pairs) Contoh: A = {a, b} dan B = {a, b, c} maka : A x B = { (a, a), (a,b), (a, c), (b, a), (b, b), (b, c) } Relasi: Relasi Biner, relasi antara dua objek, ditulis a R b, dimana (a, b)  S. Contoh: { (a,b) : a, b  N, a < b } Relasi Reflexive: adalah relasi a R a , R  AxA yang berlaku bagi semua a  A Relasi Symmetric, bila a R b maka juga b R a, misalnya ‘=‘ adalah symmetric

Relasi Transitive, apabila a R b dan b R c menyebabkan a R c, untuk semua a,b,c  A. Contoh ‘=‘, ‘<‘ dan ‘ ‘ semuanya transitive Fungsi f pada himpunan A dan B merupakan relasi biner pada AxB sehingga untuk semua a A terdapat satu elemen b B sehingga (a,b)  f. Hubungan fungsional sering ditulis sebagai: f : AB atau b = f(a). A disebut domain dan B disebut co-domain. Contoh: relasi biner f = { (a, b) : a N dan b = a mod 2 } adalah sebuah fungsi f : N  {0,1} relasi biner g = {(a, b) : a N dan a + b adalah genap } bukan fungsi karena utk satu nilai a ada lebih dari satu nilai b yang memenuhi

Prinsip Pencacahan Rule of Sum: jumlah cara untuk memilih suatu elemen dari salah satu dari dua himpunan disjoint adalah jumlah kardinalitas dari himpunan tersebut. Apabila A dan B adalah dua himpunan berbatas yang disjoint (tidak ada elemen yang sama pada kedua himpunan) maka |AB| = |A| + |B|. Rule of Product : jumlah cara untuk memilih satu pasangan ter-urut adalah jumlah cara untuk memilih elemen pertama dari pasangan itu dikalikan dengan jumlah cara untuk memilih elemen keduanya. Apabila A dan B adalah dua himpunan berbatas, maka |AxB| = |A|.|B|.

Permutasi k dari n elemen ( k  n) adalah: Permutasi: permutasi pada himpunan berbatas S adalah rentetan ber-urut dari semua elemen S dimana setiap elemen hanya boleh muncul satu kali. Sebagai contoh bila S={a, b, c} maka ada 6 permutasi dari S, yaitu: abc, acb, bac, bca, cab, cba. Permutasi dari himpunan dengan n elemen (n-set), adalah n! (n-faktorial). Permutasi k dari n elemen ( k  n) adalah: n.(n-1).(n-2)...(n-k+1) = n! / (n-k)! Kombinasi: kombinasi sepanjang k, atau k-combination dari himpunan n-set S adalah k-subset dari S. Formula untuk mencacah jumlah k-combination dari n-set adalah: n! C(n,k) = ------------ k! (n – k)!

Binomial Coefficient: C(n,k) adalah koefisien binomial pada ekspansi (x + y)n sebagai berikut: (x + y)n = n C(n,k) xk yn-k Pascal ‘s Identity : C(n+1,k) = C(n,k-1) + C(n,k) Vandermonde’s Identity : C(m+n, r) =  k C(m,r-k) C(n,k) utk k=0..r Pigeonhole Principle : Bila ada N objek ditempatkan dalam k lokasi, maka paling sedikit ada satu lokasi yang memuat N/k objek

Tugas Susun algoritma untuk menghitung bilangan Fibonacci mulai dari n=0 ..100 Buktikan bahwa k 3k = O(3n) ; k=1..n Selesaikan rekurensi T(n) = 2 T(n) + lg n dengan metoda subsitusi Selesaikan rekurensi T(n) = 3 T(n/4) + n lg n dengan metoda master Paling sedikit berapa mahasiswa dalam suatu kelas algoritma agar paling kurang ada enam orang yang akan menerima nilai yang sama dalam sistem penilaian A,B,C,D,E