Design and Analysis of Algorithm
Week 3: Notasi Asymptotic dan Kelas Dasar Efisiensi
Dr. Putu Harry Gunawan1
1Department of Computational Science
School of Computing Telkom University
Outline
1 Review 2 PendahuluanPendahuluan
3 Pengantar tidak formal Pengantar informal 4 Formal Definition
Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References 9 Exercise
Exercise
Exercise 1
What the complexity of the following pseudocode x <- 0
for x <- 0 to n: for y <- 0 to n:
a=c+d
Exercise 2
What the complexity of the following pseudocode x <- 0
for x <- 0 to n: for y <- x to n-3:
a=c+d
Exercise 3
What the complexity of the following pseudocode x <- 0
for x <- 2 to n+2: for y <- x-1 to n:
a=c+d
Example
Example
Find the time complexity of the following codes for basic operation addition (+)
Some algorithms have logarithmic (base 2) complexity:
1. i = n; // i starts from n
2. while (i >= 1) 3. {
4. x = x + 1; // count this line
5. i = i / 2; // i becomes half at the end of every iteration 6. }
Example
Iteration value of i (at the top of loop) number of times line 4
1 n 1
2 2n1 1
3 2n2 1
k 2k−1n 1
k+1 2nk 0
Example
We are interested in what k is (because that’s the number of times the line 4 is executed). In other words,
T (n) = 1 + 1 + 1 + .. + 1 = (k × 1) | < − − kofthem − −− > | To derive k, we look at the relation at the last iteration (kth):
n 2k = 0 log2 n 2k = log2(0) log2n − log(2k) = log2(0) k log2(2) = log2n − log2(0) k = log2n − 1
Thus, T (n) = log2(n) − 1
Outline
1 Review 2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Pendahuluan
Seperti yang sudah dibahas pada bab-bab sebelumnya, ruang lingkup analisis efisiensi berfokus pada naiknya orde jumlah operasi dasar sebagai indikator utama pada algoritma efisien. Untuk membandingkan tingkatan dari orde kenaikan kompleksitas waktu, Computer Scientist menggunakan tiga notasi berikut:
1 O (big oh),
2 Ω (big omega), dan 3 Θ (big theta).
Pendahuluan
Seperti yang sudah dibahas pada bab-bab sebelumnya, ruang lingkup analisis efisiensi berfokus pada naiknya orde jumlah operasi dasar sebagai indikator utama pada algoritma efisien. Untuk membandingkan tingkatan dari orde kenaikan kompleksitas waktu, Computer Scientist menggunakan tiga notasi berikut:
1 O (big oh),
2 Ω (big omega), dan
3 Θ (big theta).
Pendahuluan
Seperti yang sudah dibahas pada bab-bab sebelumnya, ruang lingkup analisis efisiensi berfokus pada naiknya orde jumlah operasi dasar sebagai indikator utama pada algoritma efisien. Untuk membandingkan tingkatan dari orde kenaikan kompleksitas waktu, Computer Scientist menggunakan tiga notasi berikut:
1 O (big oh),
2 Ω (big omega), dan 3 Θ (big theta).
Pendahuluan
Dalam tulisan ini, pengenalan notasi di atas akan disampaikan secara tidak formal(informal ) dalam beberapa contoh dan kemudian secara formal dalam bentuk definisi. Untuk materi selanjutnya kan diperkenalkan notasi:
1 Fungsi t(n) dan g (n) merupakan fungsi tidak negatif terdefinisi pada
himpunan bilangan asli.
2 Fungsi t(n) akan berupa waktu dari berjalannya algoritma (yang
biasanya terindikasi pada jumlah operasi dasar C (n)).
3 Fungsi g (n) akan berupa beberapa contoh fungsi yang digunakan
sebagai perbandingan.
Pendahuluan
Dalam tulisan ini, pengenalan notasi di atas akan disampaikan secara tidak formal(informal ) dalam beberapa contoh dan kemudian secara formal dalam bentuk definisi. Untuk materi selanjutnya kan diperkenalkan notasi:
1 Fungsi t(n) dan g (n) merupakan fungsi tidak negatif terdefinisi pada
himpunan bilangan asli.
2 Fungsi t(n) akan berupa waktu dari berjalannya algoritma (yang
biasanya terindikasi pada jumlah operasi dasar C (n)).
3 Fungsi g (n) akan berupa beberapa contoh fungsi yang digunakan
sebagai perbandingan.
Pendahuluan
Dalam tulisan ini, pengenalan notasi di atas akan disampaikan secara tidak formal(informal ) dalam beberapa contoh dan kemudian secara formal dalam bentuk definisi. Untuk materi selanjutnya kan diperkenalkan notasi:
1 Fungsi t(n) dan g (n) merupakan fungsi tidak negatif terdefinisi pada
himpunan bilangan asli.
2 Fungsi t(n) akan berupa waktu dari berjalannya algoritma (yang
biasanya terindikasi pada jumlah operasi dasar C (n)).
3 Fungsi g (n) akan berupa beberapa contoh fungsi yang digunakan
sebagai perbandingan.
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
informal O(g (n))
Secara tidak formal, O(g (n)) merupakan sebuah himpunan semua fungsi yang orde kenaikannya (order of growth) berada di bawah atau sama dengan fungsi orde kenaikan g (n).
Sebagai contoh: 1 n ∈ O(n2), 2 100n + 5 ∈ O(n2), 3 1 2n(n − 1) ∈ O(n 2).
Jelas bahwa dua fungsi pertama adalah fungsi linier sehingga memiliki orde di bawah orde kenaikan fungsi g (n) = n2. Sedangkan fungsi ke-tiga merupakan fungsi kuadratik yang memiliki orde kenaikan sama dengan fungsi n2.
informal O(g (n))
Secara tidak formal, O(g (n)) merupakan sebuah himpunan semua fungsi yang orde kenaikannya (order of growth) berada di bawah atau sama dengan fungsi orde kenaikan g (n). Sebagai contoh:
1 n ∈ O(n2),
2 100n + 5 ∈ O(n2), 3 1
2n(n − 1) ∈ O(n 2).
Jelas bahwa dua fungsi pertama adalah fungsi linier sehingga memiliki orde di bawah orde kenaikan fungsi g (n) = n2. Sedangkan fungsi ke-tiga merupakan fungsi kuadratik yang memiliki orde kenaikan sama dengan fungsi n2.
informal O(g (n))
Secara tidak formal, O(g (n)) merupakan sebuah himpunan semua fungsi yang orde kenaikannya (order of growth) berada di bawah atau sama dengan fungsi orde kenaikan g (n). Sebagai contoh:
1 n ∈ O(n2),
2 100n + 5 ∈ O(n2), 3 1
2n(n − 1) ∈ O(n 2).
Jelas bahwa dua fungsi pertama adalah fungsi linier sehingga memiliki orde di bawah orde kenaikan fungsi g (n) = n2. Sedangkan fungsi ke-tiga merupakan fungsi kuadratik yang memiliki orde kenaikan sama dengan fungsi n2.
informal O(g (n))
Dilain pihak,
1 n3∈ O(n/ 2),
2 0.000001n3∈ O(n/ 2), 3 n4+ n + 1 /∈ O(n2).
Jelas bahwa, fungsi n3 dan 0.000001n3 merupakan fungsi kubik yang memiliki orde kenaikan lebih dari n2. Begitu pula dengan polinomial n4+ n + 1 memiliki orde kenaikan orde empat.
informal O(g (n))
Dilain pihak,
1 n3∈ O(n/ 2),
2 0.000001n3∈ O(n/ 2), 3 n4+ n + 1 /∈ O(n2).
Jelas bahwa, fungsi n3 dan 0.000001n3 merupakan fungsi kubik yang memiliki orde kenaikan lebih dari n2. Begitu pula dengan polinomial n4+ n + 1 memiliki orde kenaikan orde empat.
informal Ω(g (n))
Notasi ke-dua Ω(g (n)), menyatakan himpunan dari semua fungsi yang memiliki orde kenaikan lebih besar atau sama dengan g (n). Sebagai comtoh:
1 n3 ∈ Ω(n2), 2 1
2n(n − 1) ∈ Ω(n2), tetapi
3 100n + 5 /∈ Ω(n2).
informal Ω(g (n))
Notasi ke-dua Ω(g (n)), menyatakan himpunan dari semua fungsi yang memiliki orde kenaikan lebih besar atau sama dengan g (n). Sebagai comtoh:
1 n3∈ Ω(n2), 2 1
2n(n − 1) ∈ Ω(n2), tetapi
3 100n + 5 /∈ Ω(n2).
informal Θ(g (n))
Terakhir, Θ(g (n)) merupakan himpunan semua fungsi yang memiliki orde kenaikan sama dengan g (n). Contoh semua fungsi kuadratik an2+ bn + c dengan a > 0 berada pada Θ(n2). Hal ini juga terjadi pada fungsi lain seperti n2+ sin n dan n2+ log n, kenapa?
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal 4 Formal Definition
Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Definisi O(g (n))
Definition
Sebuah fungsi t(n) dikatakan berada dalam O(g (n)), dinotasikan sebagai t(n) ∈ O(g (n)), jika t(n) terbatas di atas oleh suatu konstanta positif dikalikan dengan fungsi g (n) untuk n yang terus membesar. Atau dapat dikatakan bahwa terdapat beberapa konstanta positif c dan beberapa bilangan bulat tak-negatif n0 sehingga
t(n) ≤ cg (n) for all n ≥ n0. (4.1)
Definisi O(g (n))
Dapat diilustrasikan melalui Gambar 1.
Figure : Notasi Big-Oh: t(n) ∈ O(g (n)).
Contoh O(g (n))
Example
Mari kita buktikan secara formal 100n + 5 ∈ O(n2).
Jelas bahwa 100n + 5 ≤ 100n + 5(untuk semua n ≥ 5),
= 101n ≤ 101n2.
Sehingga terbukti terdapat c = 101 dan n0 = 5. Catatan bahwa, definisi memberikan sembarang nilai c dan n0, sehingga terdapat cara lain untuk membuktikan, yaitu
100n + 5 ≤ 100n + 5n(untuk semua n ≥ 1), = 105n ≤ 105n2.
Sehingga terbukti dengan c = 105 dan n0 = 1.
Contoh O(g (n))
Example
Mari kita buktikan secara formal 100n + 5 ∈ O(n2). Jelas bahwa 100n + 5 ≤ 100n + 5(untuk semua n ≥ 5),
= 101n ≤ 101n2.
Sehingga terbukti terdapat c = 101 dan n0 = 5. Catatan bahwa, definisi memberikan sembarang nilai c dan n0, sehingga terdapat cara lain untuk membuktikan, yaitu
100n + 5 ≤ 100n + 5n(untuk semua n ≥ 1), = 105n ≤ 105n2.
Sehingga terbukti dengan c = 105 dan n0 = 1.
Contoh O(g (n))
Example
Mari kita buktikan secara formal 100n + 5 ∈ O(n2). Jelas bahwa 100n + 5 ≤ 100n + 5(untuk semua n ≥ 5),
= 101n ≤ 101n2.
Sehingga terbukti terdapat c = 101 dan n0 = 5. Catatan bahwa, definisi memberikan sembarang nilai c dan n0, sehingga terdapat cara lain untuk membuktikan,
yaitu
100n + 5 ≤ 100n + 5n(untuk semua n ≥ 1), = 105n ≤ 105n2.
Sehingga terbukti dengan c = 105 dan n0 = 1.
Contoh O(g (n))
Example
Mari kita buktikan secara formal 100n + 5 ∈ O(n2). Jelas bahwa 100n + 5 ≤ 100n + 5(untuk semua n ≥ 5),
= 101n ≤ 101n2.
Sehingga terbukti terdapat c = 101 dan n0 = 5. Catatan bahwa, definisi memberikan sembarang nilai c dan n0, sehingga terdapat cara lain untuk membuktikan, yaitu
100n + 5 ≤ 100n + 5n(untuk semua n ≥ 1), = 105n ≤ 105n2.
Sehingga terbukti dengan c = 105 dan n0 = 1.
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal 4 Formal Definition
Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Definisi Ω(g (n))
Definition
Sebuah fungsi t(n) dikatakan berada dalam Ω(g (n)), dinotasikan sebagai t(n) ∈ Ω(g (n)), jika t(n) terbatas di bawah oleh suatu konstanta positif dikalikan dengan fungsi g (n) untuk n yang terus membesar. Atau dapat dikatakan bahwa terdapat beberapa konstanta positif c dan beberapa bilangan bulat tak-negatif n0 sehingga
t(n) ≥ cg (n) untuk setiap n ≥ n0. (4.2)
Definisi Ω(g (n))
Dapat diilustrasikan melalui Gambar 2.
Figure : Notasi Big-Omega: t(n) ∈ Ω(g (n)).
Contoh Ω(g (n))
Example
Akan dibuktikan bahwa n3∈ Ω(n2):
n3 ≥ n2 untuk semua n ≥ 0. Sehingga terbukti dengan c = 1 dan n0 = 0.
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal 4 Formal Definition
Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Definisi Θ(g (n))
Definition
Sebuah fungsi t(n) dikatakan berada dalam Θ(g (n)), dinotasikan sebagai t(n) ∈ Θ(g (n)), jika t(n) terbatas di atas dan bawah oleh suatu konstanta positif dikalikan dengan fungsi g (n) untuk n yang terus membesar. Atau dapat dikatakan bahwa terdapat beberapa konstanta positif c1 dan c2 dan beberapa bilangan bulat tak-negatif n0 sehingga
c2g (n) ≤ t(n) ≤ c1g (n) untuk setiap n ≥ n0. (4.3)
Definisi Θ(g (n))
Dapat diilustrasikan melalui Gambar 3.
Figure : Notasi Big-Theta: t(n) ∈ Θ(g (n)).
Contoh Θ(g (n))
Example
Akan dibuktikan bahwa 12n(n − 1) ∈ Θ(n2). Perta akan dibuktikan untuk pertaksamaan sebelah kanan (batas atas):
1 2n(n − 1) = 1 2n 2−1 2n ≤ 1 2n 2 untuk semua n ≥ 0.
Kedua, akan dibuktikan pertaksamaan sebelah kiri (batas bawah) 1 2n(n − 1) = 1 2n 2− 1 2n ≥ 1 2n 2− 1 2n 1 2n untuk semua n ≥ 2. = 1 4n 2
Sehingga terbukti dengan c2= 14, c1 = 12 dan n0 = 2.
Contoh Θ(g (n))
Example
Akan dibuktikan bahwa 12n(n − 1) ∈ Θ(n2). Perta akan dibuktikan untuk pertaksamaan sebelah kanan (batas atas):
1 2n(n − 1) = 1 2n 2−1 2n ≤ 1 2n 2 untuk semua n ≥ 0.
Kedua, akan dibuktikan pertaksamaan sebelah kiri (batas bawah) 1 2n(n − 1) = 1 2n 2− 1 2n ≥ 1 2n 2− 1 2n 1 2n untuk semua n ≥ 2. = 1 4n 2
Sehingga terbukti dengan c2= 14, c1 = 12 dan n0 = 2.
Contoh Θ(g (n))
Example
Akan dibuktikan bahwa 12n(n − 1) ∈ Θ(n2). Perta akan dibuktikan untuk pertaksamaan sebelah kanan (batas atas):
1 2n(n − 1) = 1 2n 2−1 2n ≤ 1 2n 2 untuk semua n ≥ 0.
Kedua, akan dibuktikan pertaksamaan sebelah kiri (batas bawah) 1 2n(n − 1) = 1 2n 2− 1 2n ≥ 1 2n 2− 1 2n 1 2n untuk semua n ≥ 2. = 1 4n 2
Sehingga terbukti dengan c2= 14, c1 = 12 dan n0 = 2.
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Teorema polinomial
Theorem
Jika diberikan fungsi polinomial berderajan m,
T (n) = amnm+ am − 1nm−1+ · · · + a1n + a0 maka T (n) ∈ O(nm).
Teorema
Theorem
Andaikan T1(n) ∈ O(f (n)) and T2(n) ∈ O(g (n)), maka
1 T1(n) + T2(n) ∈ O(f (n)) + O(f (n)) ∈ O(max(f (n), g (n))) 2 T1(n)T2(n) ∈ O(f (n))O(g (n)) = O(f (n)g (n))
3 O(cf (n)) = cO(f (n)), c adalah sembarang konstanta 4 f (n) ∈ O(f (n))
Teorema
Theorem
Andaikan T1(n) ∈ O(f (n)) and T2(n) ∈ O(g (n)), maka
1 T1(n) + T2(n) ∈ O(f (n)) + O(f (n)) ∈ O(max(f (n), g (n)))
2 T1(n)T2(n) ∈ O(f (n))O(g (n)) = O(f (n)g (n)) 3 O(cf (n)) = cO(f (n)), c adalah sembarang konstanta 4 f (n) ∈ O(f (n))
Teorema
Theorem
Andaikan T1(n) ∈ O(f (n)) and T2(n) ∈ O(g (n)), maka
1 T1(n) + T2(n) ∈ O(f (n)) + O(f (n)) ∈ O(max(f (n), g (n))) 2 T1(n)T2(n) ∈ O(f (n))O(g (n)) = O(f (n)g (n))
3 O(cf (n)) = cO(f (n)), c adalah sembarang konstanta 4 f (n) ∈ O(f (n))
Teorema
Theorem
Andaikan T1(n) ∈ O(f (n)) and T2(n) ∈ O(g (n)), maka
1 T1(n) + T2(n) ∈ O(f (n)) + O(f (n)) ∈ O(max(f (n), g (n))) 2 T1(n)T2(n) ∈ O(f (n))O(g (n)) = O(f (n)g (n))
3 O(cf (n)) = cO(f (n)), c adalah sembarang konstanta
4 f (n) ∈ O(f (n))
Teorema
Theorem
Andaikan T1(n) ∈ O(f (n)) and T2(n) ∈ O(g (n)), maka
1 T1(n) + T2(n) ∈ O(f (n)) + O(f (n)) ∈ O(max(f (n), g (n))) 2 T1(n)T2(n) ∈ O(f (n))O(g (n)) = O(f (n)g (n))
3 O(cf (n)) = cO(f (n)), c adalah sembarang konstanta 4 f (n) ∈ O(f (n))
Contoh
Example
Misalkan T1(n) ∈ O(n) dan T2(n) ∈ O(n2) , maka
1 T1(n) + T2(n) ∈ O(max(n, n2)) = O(n2) 2 T1(n)T2(n) = O(n · n2) = O(n3)
Contoh
Example
O(5n2) = O(n2)
Contoh
ExampleDiketahui T (n) = (n + 2) log(n2+ 1) + 5n2 maka kompleksitas waktu O(n)-nya adalah?
Misalkan
T (n) = (n + 2) log(n2+ 1) + 5n2 = f (n)g (n) + h(n)
Dengan pencarian satu-satu didapat:
1 f (n) = (n + 2) ∈ O(n) 2 g (n) = log(n2+ 1), karena
log(n2+ 1) ≤ log(2n2) = log 2 + log n2
= log 2 + 2 log n ≤ 3 log n untuk n > 2
3 h(n) = 5n2 ∈ O(n2)
Contoh
ExampleDiketahui T (n) = (n + 2) log(n2+ 1) + 5n2 maka kompleksitas waktu O(n)-nya adalah?
Misalkan
T (n) = (n + 2) log(n2+ 1) + 5n2 = f (n)g (n) + h(n)
Dengan pencarian satu-satu didapat:
1 f (n) = (n + 2) ∈ O(n) 2 g (n) = log(n2+ 1), karena
log(n2+ 1) ≤ log(2n2) = log 2 + log n2
= log 2 + 2 log n ≤ 3 log n untuk n > 2
3 h(n) = 5n2 ∈ O(n2)
Contoh
ExampleDiketahui T (n) = (n + 2) log(n2+ 1) + 5n2 maka kompleksitas waktu O(n)-nya adalah?
Misalkan
T (n) = (n + 2) log(n2+ 1) + 5n2 = f (n)g (n) + h(n)
Dengan pencarian satu-satu didapat:
1 f (n) = (n + 2) ∈ O(n)
2 g (n) = log(n2+ 1), karena
log(n2+ 1) ≤ log(2n2) = log 2 + log n2
= log 2 + 2 log n ≤ 3 log n untuk n > 2
3 h(n) = 5n2 ∈ O(n2)
Contoh
ExampleDiketahui T (n) = (n + 2) log(n2+ 1) + 5n2 maka kompleksitas waktu O(n)-nya adalah?
Misalkan
T (n) = (n + 2) log(n2+ 1) + 5n2 = f (n)g (n) + h(n)
Dengan pencarian satu-satu didapat:
1 f (n) = (n + 2) ∈ O(n) 2 g (n) = log(n2+ 1), karena
log(n2+ 1) ≤ log(2n2) = log 2 + log n2
= log 2 + 2 log n ≤ 3 log n untuk n > 2
3 h(n) = 5n2 ∈ O(n2)
Contoh
Example Maka,
T (n) = (n + 2) log(n2+ 1) + 5n2 ∈ O(n)O(log n) + O(n2) = O(n log n) + O(n2)
= O(max(n log n, n2)) = O(n2)
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Kelas 1
Kelas Nama Komentar 1 constant
Efisinsi kasus terbaik. Kompleksitas O berarti waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan.
Kelas log n
Kelas Nama Komentar
log n logarithmic
Kompleksitas waktu logaritmik berarti laju per-tumbuhan waktunya berjalan lebih lambat dari-pada pertumbuhan n. Algoritma yang ter-masuk kelompok ini adalah algoritma yang memecahkan persoalan besar dengan mentrans-formasikannya menjadi beberapa persoalan yang lebih kecil yang berukuran sama (misalnya algo-ritma pencarian biner).
Kelas n
Kelas Nama Komentar
n linear
Algoritma yang waktu pelaksanaannya lanjar umumnya terdapat pada kasus yang setiap elemen masukannya dikenai proses yang sama, misalnya algoritma pencarian beruntun. Bila n dijadikan dua kali semula, maka waktu pelaksanaan algo-ritma juga dua kali semula.
Kelas n log n
Kelas Nama Komentar
n log n linearithmic
Waktu pelaksanaan yang n log n terdapat pada al-goritma yang memecahkan persoalan menjadi be-berapa persoalan yang lebih kecil, menyelesaikan tiap persoalan secara independen, dan meng-gabung solusi masing- masing persoalan.
Kelas n
2Kelas Nama Komentar
n2 quadratic
Algoritma yang waktu pelaksanaannya kuadratik hanya praktis digunakan untuk persoalan yang berukuran kecil. Umumnya algoritma yang ter-masuk kelompok ini memproses setiap ter-masukan dalam dua buah looping bersarang, misalnya pada algoritma urut maks.
Kelas n
3Kelas Nama Komentar
n3 cubic
Seperti halnya algoritma kuadratik, algoritma ku-bik memproses setiap masukan dalam tiga buah looping bersarang, misalnya algoritma perkalian matriks.
Kelas 2
nKelas Nama Komentar 2n exponential
Algoritma yang tergolong kelompok ini mencari so-lusi persoalan secara ”brute force”, misalnya pada algoritma mencari sirkuit Hamilton.
Kelas n!
Kelas Nama Komentar
n! factorial
Seperti halnya pada algoritma eksponensial, al-goritma jenis ini memproses setiap masukan dan menghubungkannya dengan n − 1 masukan lain-nya, misalnya algoritma Persoalan Pedagang Ke-liling (Travelling Salesperson Problem).
Tabel fungsi kenaikan
Nilai masing-masing fungsi untuk kenaikan n.
log n n n log n n2 n3 2n n! 0 1 0 1 1 2 1 0.3010299957 2 0.6020599913 4 8 4 2 0.6020599913 4 2.4082399653 16 64 16 24 0.9542425094 9 8.588182585 81 729 512 362880 1.2041199827 16 19.2659197225 256 4096 65536 20922789888000 1.5051499783 32 48.1647993062 1024 32768 4294967296 2.63130836933694E+035
Plot fungsi kenaikan
Figure : Nilai masing-masing fungsi untuk kenaikan n.
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
Limit orde
Untuk mempermudah mengidentifikasi kompleksitas waktu O, Ω dan Θ, maka cara membandingkan dapat pula dilakukan.
Definition
Terdapat tiga kasus utama dalam membandingkan waktu komputasi:
lim n→∞ t(n) g (n) =
0, artinya t(n) memiliki orde lebih rendah dari g (n) c, artinya t(n) memiliki orde sama dengan g (n) ∞, artinya t(n) memiliki orde lebih tinggi dari g (n) Catatan bahwa dua kasus pertama mengidentifikasikan t(n) ∈ O(g (n)), dua kasus terakhir mengidentifikasikan t(n) ∈ Ω(g (n)) dan kasus ke-dua mengidentifikasikan t(n) ∈ Θ(g (n))
Limit orde
Untuk mempermudah mengidentifikasi kompleksitas waktu O, Ω dan Θ, maka cara membandingkan dapat pula dilakukan.
Definition
Terdapat tiga kasus utama dalam membandingkan waktu komputasi:
lim n→∞ t(n) g (n) =
0, artinya t(n) memiliki orde lebih rendah dari g (n) c, artinya t(n) memiliki orde sama dengan g (n) ∞, artinya t(n) memiliki orde lebih tinggi dari g (n) Catatan bahwa dua kasus pertama mengidentifikasikan t(n) ∈ O(g (n)), dua kasus terakhir mengidentifikasikan t(n) ∈ Ω(g (n)) dan kasus ke-dua mengidentifikasikan t(n) ∈ Θ(g (n))
Contoh
Example
Bandingkan orde kenaikan 12n(n − 1) dan n2.
lim n→∞ 1 2n(n − 1) n2 = 1 2n→∞lim n2− n n2 = 1 2n→∞lim(1 − 1 n) = 1 2 Karena hasil limitnya merupakan konstanta positif, yang berarti bahwa memiliki orde sama, maka dapat dinotasikan sebagai 12n(n − 1) ∈ Θ(n2).
Contoh
Example
Bandingkan orde kenaikan 12n(n − 1) dan n2.
lim n→∞ 1 2n(n − 1) n2 = 1 2n→∞lim n2− n n2 = 1 2n→∞lim(1 − 1 n) = 1 2 Karena hasil limitnya merupakan konstanta positif, yang berarti bahwa memiliki orde sama, maka dapat dinotasikan sebagai 12n(n − 1) ∈ Θ(n2).
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References
9 Exercise Exercise
References
References
1 Anany, L. (2003). Introduction to the design and analysis of
algorithms. Villanova University.
Outline
1 Review
2 Pendahuluan
Pendahuluan
3 Pengantar tidak formal Pengantar informal
4 Formal Definition Notasi O Notasi Ω Notasi Θ
5 Properti notasi asimptotik Theorems
6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi
7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde
8 References References 9 Exercise
Exercise
Exercises
1 Tentukan notasi Ω dan Θ untuk T (n) = 2n2+ 6n + 1.
2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n3+ 6n2log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + · · · + n. 4 Tentukan notasi O untuk T (n) = 2 + 4 + · · · + 2n.
5 Tentukan notasi O untuk T (n) = (n + 1)(n + 3)/(n + 2).
Exercises
1 Tentukan notasi Ω dan Θ untuk T (n) = 2n2+ 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n3+ 6n2log n.
3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + · · · + n. 4 Tentukan notasi O untuk T (n) = 2 + 4 + · · · + 2n.
5 Tentukan notasi O untuk T (n) = (n + 1)(n + 3)/(n + 2).
Exercises
1 Tentukan notasi Ω dan Θ untuk T (n) = 2n2+ 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n3+ 6n2log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + · · · + n.
4 Tentukan notasi O untuk T (n) = 2 + 4 + · · · + 2n. 5 Tentukan notasi O untuk T (n) = (n + 1)(n + 3)/(n + 2).
Exercises
1 Tentukan notasi Ω dan Θ untuk T (n) = 2n2+ 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n3+ 6n2log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + · · · + n. 4 Tentukan notasi O untuk T (n) = 2 + 4 + · · · + 2n.
5 Tentukan notasi O untuk T (n) = (n + 1)(n + 3)/(n + 2).
Exercises
1 Tentukan notasi Ω dan Θ untuk T (n) = 2n2+ 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n3+ 6n2log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + · · · + n. 4 Tentukan notasi O untuk T (n) = 2 + 4 + · · · + 2n.
5 Tentukan notasi O untuk T (n) = (n + 1)(n + 3)/(n + 2).
Exercise 1
Tentukan notasi O, Ω dan Θ dari pseudocode x <- 0
for x <- 0 to n: for y <- 0 to n:
a=c+d
Exercise 2
Tentukan notasi O, Ω dan Θ dari pseudocode x <- 0
for x <- 0 to n: for y <- x to n-3:
a=c+d
Exercise 3
Tentukan notasi O, Ω dan Θ dari pseudocode x <- 0
for x <- 2 to n+2: for y <- x-1 to n:
a=c+d
The end of week 3
Thank you for your attention!