290 likes | 534 Views
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
E N D
AnalisisAlgoritma & Struktur Data Fondasi Matematis
Topikbahasan • Bentuk Asimptotis • Matematika dasar • Summation (Penjumlahan) • Rekurensi • Set Theory • Prinsip Pencacahan
BentukAsimptotis • Kerumitan (Complexity) suatualgoritmabiasanyadinyatakandalambentukasimptotis • Ada 3 bentukasimptotis • 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. bilafaktor n2dihilangkan , 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)) lebihketatdibanding 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)).
MatematikaDasar • 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 a0 dan m, n maka berikut ini berlaku dalam eksponensial: • a0 = 1 • 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)
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) • Beberapasifatlogaritma: • 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
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(0) = 0, F(1) = 1, F(i) = F(i-1) + F(i-2), untuk i 2. Berdasarkan definisi tersebut maka deret bilanganFibonacci 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 • Kompleksitasalgoritmaseringdinyatakandalambentukpersamaanrekurensi yang melibatkanfungsiasimptotis. Bentukinisebenarnyamewakilibentukrekursifdarisuatu program. • Misalnyasuatuprogam “merge-sort” dinyatakansbb: T(n) = (1) bila n=1 = 2 T(n/2) + (n) bila n > 1 • Adaempatcaramenyelesaikanrekurensi: subsitusi, iterasi, master danmetodahomogen
MetodaSubsitusi: • Contoh: buktikan T(n) = 2T(n/2 + n adalah O(n lg n). • Untuksuatunilai c harusdibuktikanbahwa: T(n) c.nlg n, subsitusi n dengan n/2, maka T(n/2) c.[n/2] lg [n/2], tentusaja T(n) 2 (c. [n/2] lg [n/2] ) + n T(n) c.nlg [n/2] + n T(n) = c.nlg n – c.n.lg 2 + n T(n) = c.nlg n – c.n + n T(n) c.nlg n atau T(n) adalah O(n lg n)
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 3in/4i, habis ketika n/4i=1 atau i > log4 n.
Metoda Master: • Bentukumum : T(n) = a T(n/b) + f(n) • Theorema: Bila a1 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)
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 dankondisi 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
Operasipada set: • intersectionAB = { x : x A dan x B } • union AB = { x : x A atau x B } • differenceA – B = { x : x A dan x B } • Beberapahukumuntuk set: • empty set laws : A = , A = A • idempotency laws : AA = A, AA = A • commutative laws : AB = BA, AB = BA • associative laws : A(BC) = (AB)C, A(BC) = (AB)C • distributive laws : A(BC) = (AB) (AC), A(BC) = (AB) (AC) • absorption laws : A(AB) = A, A(AB) = A • DeMorgan’s laws : A – (BC) = (A – B)(A – C), A – (BC) = (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) • ~(AB) = ~A ~B, ~(AB) = ~A ~B
(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 : AB 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
PrinsipPencacahan • 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 |AB| = |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: 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 • Susunalgoritmauntukmenghitungbilangan Fibonacci mulaidari n=0 ..100 • Buktikanbahwak 3k = O(3n) ; k=1..n • SelesaikanrekurensiT(n) = 2 T(n) + lg ndenganmetodasubsitusi • SelesaikanrekurensiT(n) = 3 T(n/4) + n lg ndenganmetoda master • Paling sedikitberapamahasiswadalamsuatukelasalgoritma agar paling kurangadaenamorang yang akanmenerimanilai yang samadalamsistempenilaian A,B,C,D,E