1 / 29

Analisis Algoritma & Struktur Data

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

edie
Download Presentation

Analisis Algoritma & Struktur Data

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AnalisisAlgoritma & Struktur Data Fondasi Matematis

  2. Topikbahasan • Bentuk Asimptotis • Matematika dasar • Summation (Penjumlahan) • Rekurensi • Set Theory • Prinsip Pencacahan

  3. 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.

  4. 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).

  5. 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)).

  6. 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 .

  7. 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).

  8. Exponential: Untuk setiap bilangan real a0 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)

  9. 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

  10. 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)

  11. 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.

  12. 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

  13. 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)

  14. 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

  15. 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)

  16. 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.

  17. Metoda Master: • Bentukumum : 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)).

  18. 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)

  19. 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)

  20. 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)

  21. 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 )

  22. 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

  23. Operasipada set: • intersectionAB = { x : x  A dan x  B } • union AB = { x : x  A atau x  B } • differenceA – B = { x : x  A dan x  B } • Beberapahukumuntuk 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

  24. (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

  25. 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

  26. 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 |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|.

  27. 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)!

  28. 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

  29. Tugas • Susunalgoritmauntukmenghitungbilangan Fibonacci mulaidari n=0 ..100 • Buktikanbahwak 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

More Related