Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Analisis Algoritma & Struktur Data

Presentasi serupa


Presentasi berjudul: "Analisis Algoritma & Struktur Data"— Transcript presentasi:

1 Analisis Algoritma & Struktur Data
Fondasi Matematis

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

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

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

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

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

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: 
a1 = a a-1 = 1/a (am)n = amn (an)m = (am)n am an = am+n Untuk bilangan e = berlaku relasi eskponensial: ex = 1 + x + x2 / 2! + x3 / 3! =  xi / i! utk i=0 s/d  ex = 1 + x + (x2)

9 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

10 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! = bila n=0, = n.(n-1)! bila n>0. dengan kata lain, n! = 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(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 - 5) / 2 = Fibonacci F(i) = (i - ’i ) / 5.

12 Penjumlahan (Summation):
a1 + a2 + a 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 = n = n(n+1)/2 = (n2)  xk = 1 + x + x2 + x xk, utk k = 0 s/d n = (xn+1 – 1) / (x – 1) Hn = 1 + ½ + 1/3 + ¼ /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 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

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

16 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/ n/ log4 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: 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)).

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

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 : 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 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) { , -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 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

24 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

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

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

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 Susun algoritma untuk menghitung bilangan Fibonacci mulai dari n= 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


Download ppt "Analisis Algoritma & Struktur Data"

Presentasi serupa


Iklan oleh Google