bab 4: decrease-and-conquer analisis algoritma: agenda. · 11/3/2016 4 three major varian of...
TRANSCRIPT
11/3/2016
1
1-1
Analisis Algoritma:
Fakultas Teknologi dan Desain
Program Studi Teknik Informatika
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition, Pearson Education, Inc., Addison-Wesley
Bab 4: Decrease-and-Conquer
Agenda.
• Definition
• Three Major Varian of Decrease-and-Conquer
• Insertion Sort
• Topological Sort
Analisis Algoritma | 2
Definition
• Decrease-and-conquer, sebuah teknik yang berdasar pada relasi antara solusi untuk suatu kasus dan solusi untuk bagian yang lebih kecil dari kasus tersebut.
• Pendekatan yang digunakan: top-down-approach atau bottom-up-approach (incremental approach)
• 3 bentuk variasi dari teknik decrease-and-conquer:
1. decrease by constant;2. decrease by constant factor;3. variable size decrease
Analisis Algoritma | 3
Three Major Varian of Decrease-and-Conquer
Decrease by Constant Variation.
• Ukuran kasus diperkecil (reduce) dengan nilai konstanta yang sama pada setiap iterasi sebuah algoritma.
• Pada umumnya nilai konstantanya adalah 1.
• Contoh kasus: Decrease by constant.
89 12 57 8 16 25 11
Problem: Urutkan deret bilangan acak di atas menggunakan metode selection sort yang mengakomodir decrease-by-constant!
Analisis Algoritma | 4
11/3/2016
2
Latihan 1.
Kasus: Decrease by constant.
U – N – I – V – E – R – S – I – T –A – S
Problem 1: Tunjukkan penerapan decrease-by-constant untuk mengurutkan alphabet acak di atas menggunakan metode selection sort!
Analisis Algoritma | 5
Three Major Varian of Decrease-and-Conquer Three Major Varian of Decrease-and-Conquer
Insertion Sort.
• Insertion sort menggunakan metode deacrese-by-constant untuk melakukan proses pengurutan suatu deret.
• Contoh kasus: Insertion sort.
Problem: Tentukan prosedur pengurutan deret secara ascending menggunakan metode sorting insertion sort!
Analisis Algoritma | 6
Insertion Sort
Latihan 2.
Kasus: Insertion Sort
Problem: Urutkan deret bilangan di bawah ini menggunakan metode sorting insertion sort!
89 12 57 16 25 11 75
Analisis Algoritma | 7
Decrease by a Constant Factor Variation.
• Ukuran kasus diperkecil (reduce) dengan nilai faktor konstanta yang sama pada setiap iterasi sebuah algoritma.
• Pada umumnya nilai faktor konstantanya adalah 2.
• Beberapa algoritma variasi decrese-and-conquer ini adalah:
• binary search; dan• russian peasant multification.
Analisis Algoritma | 8
Three Major Varian of Decrease-and-Conquer
11/3/2016
3
Three Major Varian of Decrease-and-Conquer
Decrease by a Constant Factor Variation.
Binary Search.
• Binary search adalah sebuah algoritma yang digunakan untuk mencari nilai tertentu, baik pada suatu deret bilangan yang acak atau telah terurut.
• Contoh kasus: Prosedur pencarian bilangan sembarang tertentu.
Problem: Tentukan prosedur untuk melakukan pencarian suatu bilangan pada suatu deret terurut tertentu.
Analisis Algoritma | 91-10
Analisis Algoritma:
Fakultas Teknologi dan Desain
Program Studi Teknik Informatika
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition, Pearson Education, Inc., Addison-Wesley
Three Major Varian of Decrease-and-Conquer
Latihan 3.
Kasus: Pencarian bilangan tertentu sembarang.
12 20 34 41 80 89 100
Problem 1: Tentukan pseudocode untuk melakukan pencarian bilangan 80 pada deret terurut diatas.
Analisis Algoritma | 11
Three Major Varian of Decrease-and-Conquer
Russian Peasant Multiplication.
• Russian peasant multiplication adalah algoritma yang digunakan untuk mencari hasil perkalian 2 buah bilangan bulat positif, baik bilangan positif genap maupun ganjil.
• Terdapat 2 formula yang digunakan dalam algoritma ini berdasarkan jenis bilangan 𝒏:
• Jika 𝒏 merupakan bilangan genap
Analisis Algoritma | 12
11/3/2016
4
Three Major Varian of Decrease-and-Conquer
• Jika 𝒏 merupakan bilangan ganjil
• Contoh kasus: Russian peasant multiplication.
50 * 65
Problem: Selesaikan operasi perkalian diatas menggunakan algoritma russian peasant multiplication.
Analisis Algoritma | 13
Three Major Varian of Decrease-and-Conquer
Analisis Algoritma | 14
Three Major Varian of Decrease-and-Conquer
Variable Size Deacrease Variation.
• Ukuran kasus berkurang (size-reduction) dari operasi algoritma sebelumnya.
• Algoritma yang menggunakan varian decrese-and-conquer ini adalah Euclid’s algorithm.
𝒈𝒄𝒅(𝒎, 𝒏) = 𝒈𝒄𝒅(𝒏,𝒎𝒎𝒐𝒅 𝒏)
Analisis Algoritma | 15
Topological Sorting
• Topological sorting (toposort): “merupakan suatu urutan linear setiap simpul dimana setiap 𝒖𝒗 yang saling terhubung secara langsung (direct), simpul 𝒖 muncul sebelum simpul 𝒗 dalam suatu urutan.”
• Topological sorting menerapkan algoritma traversal yang diterapkan pada metode searching DFS (depth first search) dan disajikan dalam bentuk digraph/direct graph.
• Untuk merepresantiskan digraph, maka digunakan adjacency matrix dan adjacency list.
Analisis Algoritma | 16
11/3/2016
5
Topological Sorting
• Adjacency matrix, menggambarkan hubungan antar simpul dalam bentuk matriks.
• Adjacency list, menggambarkan hubungan antar simpul yang diwakili oleh edge.
• Adjacency matrix dan adjacency list merupakan dasar dari algoritma DFS untuk digraph.
• Penerapan algoritma DFS untuk graph pada umumnya dalam bentuk stack penelusuran dan pohon DFS.
Analisis Algoritma | 17
Topological Sorting
Contoh digraph.
Analisis Algoritma | 18
• Gambar digraph disamping dapat diuraikan menjadi:
• tree edges (ab, bc, de)• back edges (ba)• forward edges (ac)• cross edges (dc)
Topological Sorting
• Contoh kasus: DFS algorithm
Problem 1: Tentukan adjacency matrix, adjacency list dan stack penelusuran graph di atas!
Analisis Algoritma | 19
d c
b
f
a e
Topological Sorting
Latihan 4.
Problem: Tentukan pohon DFS, adjacency matrix dan adjacency list 2 buah graph di bawah ini!
Analisis Algoritma | 20
f b
d
c
a
g
e
c
a
f g
b
ed
(a) (b)
11/3/2016
6
Topological Sorting
Problem 2: Terapkan algoritma DFS pada graph di bawah ini untuk menentukan stack penelusuran dan pohon DFS!
Analisis Algoritma | 21
f a
d c d e
b
• Pada digraph, algoritma DFS digunakan untuk menentukan stack penelusuran (traversal stack) untuk menentukan popping-order.
• Popping-order digunakan untuk menentukan topological sorting yang dihasilkan.
• Contoh kasus: Topology sorting & source-removel algorithm
Problem: Tentukan topology sorted list digraph di samping!
Topological Sorting
Analisis Algoritma | 22
Topological Sorting
• Contoh kasus: Topology sorting & source-removel algorithm
Problem 1: Tentukan topology sorted list digraph di samping!
1). DFS2). popping-off order
Problem 2: Dengan menerapkan algoritma source-removel algorithm, urutkan simpul-simpul tersebut!
Analisis Algoritma | 23
Topological Sorting
Latihan 4.
Problem 1: Tentukan topology sorted list digraph dan urutkan simpul-simpul berikut berdasarkan source-removel algorithm!
Analisis Algoritma | 24