1 / 22

Analisa Algoritma

Asimtotik. Analisa Algoritma. Deskripsi. Materi ini membahas tentang Notasi asymptotic. Tujuan Instruksional Khusus (TIK) ‏. Menjelaskan Big Oh, Big Omega, Big Teta. Notasi Asimtotik.

Télécharger la présentation

Analisa Algoritma

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. Asimtotik Analisa Algoritma

  2. Deskripsi • Materi ini membahas tentang Notasi asymptotic

  3. Tujuan Instruksional Khusus (TIK)‏ • Menjelaskan Big Oh, Big Omega, Big Teta

  4. Notasi Asimtotik Analisa asimtotik biasa digunakan untuk menyelidiki perilaku suatu fungsi atau hubungan antara 2 fungsi berdasarkan beberapa nilai parameter fungsi tersebut yang cenderung menuju suatu nilai asimtot.

  5. Notasi Big Oh Definisi : bila terdapat 2 buah fungsi f(n) dan g(n)  { f(n), g(n) : Z+ R+ }, maka f(n) adalah “Big-Oh” dari g(n), atau ditulis: f(n) = O(g(n)), bila  konstanta positif c dan n0 f(n) c. g(n), nn0. Dalam hal ini dapat dikatakan bahwa f(n) terbatas keatas oleh c.g(n), yang menunjukkan bahwa f tidak bergerak lebih cepat dari pada g.

  6. Contoh Bila f(n) = n3 + 20 n2 + 100.n, maka dapat dikatakan bahwa f(n) = O(n3). Bukti: n 0, n3 + 20 n2 + 100.n n3 + 20 n3 + 100.n3 = 121. n3. Dengan memilih nilai c = 121 dan n0 = 0, maka definisi tersebut dapat dipenuhi. Untuk fungsi polinomial dengan pangkat sederhana seperti diatas, kita cukup memperhatikan suku dengan pangkat tertinggi, hal ini disebabkan karena suku dengan pangkat tertinggi tersebut memiliki pertumbuhan lebih cepat seiring dengan bertambahnya nilai n; d.p.l. suku dengan pangkat tertinggi akan mendominasi suku-suku yang lain.

  7. Misal f(n) = 2log n dan g(n) = (n / 4)2 • Meskipun untuk a < n < b , f(n) > g(n), namun g(n) ≠ O(f(n)); hal ini disebabkan karena kita tidak dapat menemukan nilai n0∋ g(n) ≤ c.f(n), ∀n ≥ n0, berapapun besarnya nilai c yang kita pilih. • Meskipun demikian kita dapat mengatakan f(n) = O(g(n)), karena kitadapat memilih n0= b dan c = 1 ∋ f(n) ≤ c.g(n), ∀ n ≥ n0.

  8. Sifat Notasi Big-Oh bersifat 1 arah, d.p.l. tidak pernah dinyatakan bahwa bila f(n) = O(g(n)), maka O(g(n)) = f(n). Bila f(n) = O(g(n)) dan h(n) > g(n), n yang cukup besar, maka f(n) = O(h(n)). Contoh: bila f(n) = n2, dapat dikatakan bahwa f(n) = O(n3).

  9. Perbandingan pertumbuhan kuadratis dan linier

  10. Proposisi • Relasi "Big-Oh" bersifat transitif; yakni bila f(n)  O(g(n)) dan g(n) O(h(n)), maka f(n) O(h(n)). • Untuk sembarang fungsi f dan g { f(n), g(n) : Z+ R+ }, berlaku: O(f(n)) = O(g(n)) jika dan hanya jika f(n) O(g(n)) dan g(n) O(f(n)). • Untuk sembarang fungsi f dan g { f(n), g(n) : Z+ R+ }, berlaku: O(f(n))  O(g(n)) jika dan hanya jika f(n) O(g(n)) tetapi g(n) O(f(n)). • Untuk sembarang fungsi f dan g { f(n), g(n) : Z+ R+ }, berlaku: O(f(n) + g(n)) = O(max(f(n), g(n)).

  11. Notasi Omega (Notasi ) Notasi ini menyatakan batas bawah asimtot dari suatu fungsi. Definisi 1.2. : bila terdapat 2 buah fungsi f(n) dan g(n)  { f(n), g(n) : Z+ R+ }, maka f(n) adalah “Big-Omega” dari g(n), atau ditulis: f(n) = (g(n)), bila  konstanta positif c dan n0f(n) c. g(n), nn0. Dalam hal ini dapat dikatakan bahwa f(n) terbatas kebawah oleh c.g(n) yang menunjukkan bahwa f bergerak paling sedikit secepat g.

  12. maka bila dipilih n0 = b dan c = 1, maka dapat dikatakan bahwa g(n)= (f(n)). Meskipun demikian, f(n) (g(n)), karena kita tidak dapat menemukan nilai-nilai c dan n0 yang dapat memenuhi definisi. Corollary : Untuk sembarang fungsi f(n) dan g(n), yang didefinisikan pada kedua definisi di atas , maka berlaku f(n) = (g(n)), jika dan hanya jika g(n) = O(f(n)). Contoh

  13. Notasi Theta ( Notasi Θ ) Notasi ini menyatakan batas keketatan asimtot dari suatu fungsi. Definisi : bila terdapat 2 buah fungsi f(n) dan g(n) ∋ { f(n), g(n) : Z+ →R+ }, maka f(n) adalah “Big-Theta” dari g(n), atau ditulis: f(n) = Θ(g(n)), bila ∃ konstanta positif c1, c2 dan n0∋ c1. g(n) ≤ f(n) ≤ c2. g(n), ∀ n ≥ n0.

  14. Definisi ini menunjukkan bahwa : f(n) = Θ(g(n)), jika dan hanya jika f(n) = O(g(n)) dan f(n) = Ω(g(n)). atau Θ(f(n)) = O(f(n)) ∩ Ω(f(n)).

  15. Relasi ekivalen pada Θ • Notasi Θ memenuhi relasi ekivalen; yakni untuk sembarang fungsi f dan g ∋ { f(n), g(n) : Z+ → R+ }, berlaku: 1. f(n) ∈ Θ(f(n)) (sifat refleksif) 2. jika f(n) ∈ Θ(g(n)), maka g(n) ∈ Θ(f(n)) (sifat simetri) 3. jka f(n) ∈ Θ(g(n)) dan g(n) ∈ Θ(h(n)), maka f(n) ∈ Θ(h(n)) (sifat transitif)

  16. Untuk sembarang fungsi f dan g { f(n), g(n) : Z+ R+ }, maka ketiga pernyataan di bawah ini saling ekivalen: O(f(n)) = O(g(n)), (f(n)) = (g(n)), dan f(n) (g(n)).

  17. Untuk sembarang fungsi f dan g { f(n), g(n) : Z+ R+ }, berlaku f(n) (g(n)) jika dan hanya jika f(n) O(g(n)) dan f(n) (g(n)). Jika f(n) O(g(n)), maka O(f(n)) O(g(n)) f(n) O(g(n)) jika dan hanya jika g(n) (f(n)).

  18. Catatan • Di dalam analisa algoritma, notasi Big-Oh biasa digunakan sebagai batas atas kinerja dari suatu algoritma untuk suatu masalah, sedangkan notasi Ω biasa digunakan untuk menyatakan batas bawah kompleksitas dari persoalan tersebut.

  19. Hubungan antar order Bila f(n) berupa suatu polinomial P(n) = ak.nk + ak-1.nk-1 + … + a1.n + a0 berderajat k dan ak > 0, maka P(n) ( nk) (dalam hal ini g(n) = nk). Harus dibuktikan P(n) O(nk) dan f(n)  Ω(nk).

  20. Bukti : P(n) = ak.nk + ak-1.nk-1 + … + a1.n + a0  ak.nk + |ak-1|.nk + … + |a1|.nk +|a0|. nk  (ak + |ak-1| + … + |a1| + |a0|). nk Dari sini dipilih c = (ak + |ak-1| + … + |a1| + |a0|), sehingga P(n) c. nk , n n0 = 1, dengan demikian P(n) O( nk). Selanjutnya….

  21. P(n) = ak.nk + ak-1.nk-1 + … + a1.n + a0  ak.nk - |ak-1|.nk - 1 … - |a1|.n -|a0| = (1/2 ak.nk +1/2 ak.nk ) - |ak-1|.nk - 1 … - |a1|.n -|a0| =1/2 ak.nk +{1/2 ak.nk - |ak-1|.nk - 1 … - |a1|.n -|a0|}  1/2 ak.nk +{1/2 ak.nk - |ak-1|.nk - 1 … - |a1|.nk - 1 -|a0| nk - 1} = 1/2 ak.nk +{1/2 ak.n - (|ak-1| -… - |a1| -|a0|) } nk - 1 Bila dipilih c = (ak / 2) dan n0 = ( |ak-1| - … - |a1|- |a0|).(2 / ak ), maka P(n) c. nk , n n0. Hal ini berarti P(n)  ( nk).

  22. Latihan • Diketahui f(n)=4x+5 Buktikan bahwa a. f(n) = O(n) b. f(n) =  ( n) c. f(n) = ( n) • Diketahui f(n)=2x2+6x+3 Buktikan bahwa a. f(n) = O(n2) b. f(n) =  ( n2) c. f(n) = ( n2)

More Related