Handout TIF207 Ch 4 Decrease and Conquer
11/3/2016
Bab 4: Decrease-and-Conquer
Analisis Algoritma:
Agenda.
•
•
•
•
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
Definition
Three Major Varian of Decrease-and-Conquer
Insertion Sort
Topological Sort
Fakultas Teknologi dan Desain
1-1 Informatika
Program Studi Teknik
Analisis Algoritma |
Definition
2
Three Major Varian of Decrease-and-Conquer
• Decrease-and-conquer, sebuah teknik yang berdasar pada relasi
antara solusi untuk suatu kasus dan solusi untuk bagian yang
lebih kecil dari kasus tersebut.
Decrease by Constant Variation.
• Pendekatan yang digunakan: top-down-approach atau bottom-upapproach (incremental approach )
• Pada umumnya nilai konstantanya adalah 1.
• Ukuran kasus diperkecil (reduce) dengan nilai konstanta yang
sama pada setiap iterasi sebuah algoritma.
• 3 bentuk variasi dari teknik decrease-and-conquer :
1. decrease by constant;
2. decrease by constant factor ;
3. variable size decrease
• 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 |
3
Analisis Algoritma |
4
1
11/3/2016
Three Major Varian of Decrease-and-Conquer
Latihan 1.
Three Major Varian of Decrease-and-Conquer
Insertion Sort.
Kasus: Decrease by constant.
• Insertion sort menggunakan metode deacrese-by-constant untuk
melakukan proses pengurutan suatu deret.
• Contoh kasus: Insertion sort.
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 |
Problem: Tentukan prosedur pengurutan deret secara ascending
menggunakan metode sorting insertion sort!
5
Insertion Sort
Latihan 2.
Kasus: Insertion Sort
Problem: Urutkan deret bilangan di bawah ini menggunakan metode
sorting insertion sort!
Analisis Algoritma |
6
Three Major Varian of Decrease-and-Conquer
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.
89 12 57 16 25 11 75
• Beberapa algoritma variasi decrese-and-conquer ini adalah:
• binary search; dan
• russian peasant multification.
Analisis Algoritma |
7
Analisis Algoritma |
8
2
11/3/2016
Three Major Varian of Decrease-and-Conquer
Analisis Algoritma:
Decrease by a Constant Factor Variation.
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
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 |
Fakultas Teknologi dan Desain
1-10 Informatika
Program Studi Teknik
9
Three Major Varian of Decrease-and-Conquer
Latihan 3.
Three Major Varian of Decrease-and-Conquer
Russian Peasant Multiplication.
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.
• 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
Analisis Algoritma |
11
merupakan bilangan genap
Analisis Algoritma |
12
3
11/3/2016
Three Major Varian of Decrease-and-Conquer
• Jika
Three Major Varian of Decrease-and-Conquer
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
14
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.”
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 |
Analisis Algoritma |
• 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.
15
Analisis Algoritma |
16
4
11/3/2016
Topological Sorting
• Adjacency matrix, menggambarkan hubungan antar simpul dalam
bentuk matriks.
Topological Sorting
• Gambar digraph disamping dapat diuraikan
menjadi:
Contoh digraph.
•
•
•
•
• Adjacency list, menggambarkan hubungan antar simpul yang
diwakili oleh edge.
• Adjacency matrix dan adjacency list merupakan dasar dari
algoritma DFS untuk digraph.
tree edges (ab, bc, de)
back edges (ba)
forward edges (ac)
cross edges (dc)
• Penerapan algoritma DFS untuk graph pada umumnya dalam
bentuk stack penelusuran dan pohon DFS.
Analisis Algoritma |
17
Analisis Algoritma |
Topological Sorting
• Contoh kasus: DFS algorithm
d
c
Topological Sorting
Latihan 4.
Problem: Tentukan pohon DFS, adjacency matrix dan adjacency list 2
buah graph di bawah ini!
f
f
b
a
18
b
c
a
g
e
c
d
Problem 1: Tentukan adjacency matrix, adjacency list dan stack
penelusuran graph di atas!
a
(a)
Analisis Algoritma |
19
e
b
d
e
f
g
(b)
Analisis Algoritma |
20
5
11/3/2016
Topological Sorting
Topological Sorting
• Pada digraph, algoritma DFS digunakan untuk menentukan stack
penelusuran (traversal stack) untuk menentukan popping-order .
Problem 2: Terapkan algoritma DFS pada graph di bawah ini untuk
menentukan stack penelusuran dan pohon DFS!
• Popping-order digunakan untuk menentukan topological sorting
yang dihasilkan.
f
d
a
c
b
d
• Contoh kasus: Topology sorting &
source-removel algorithm
Problem: Tentukan topology sorted list digraph
di samping!
e
Analisis Algoritma |
21
Analisis Algoritma |
Topological Sorting
• Contoh kasus: Topology sorting & source-removel algorithm
22
Topological Sorting
Latihan 4.
Problem 1: Tentukan topology sorted list
digraph di samping!
1). DFS
2). popping-off order
Problem 1: Tentukan topology sorted list digraph dan urutkan simpulsimpul berikut berdasarkan source-removel algorithm!
Problem 2: Dengan menerapkan algoritma
source-removel algorithm, urutkan
simpul-simpul tersebut!
Analisis Algoritma |
23
Analisis Algoritma |
24
6
11/3/2016
Analisis Algoritma:
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
1-25
7
Bab 4: Decrease-and-Conquer
Analisis Algoritma:
Agenda.
•
•
•
•
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
Definition
Three Major Varian of Decrease-and-Conquer
Insertion Sort
Topological Sort
Fakultas Teknologi dan Desain
1-1 Informatika
Program Studi Teknik
Analisis Algoritma |
Definition
2
Three Major Varian of Decrease-and-Conquer
• Decrease-and-conquer, sebuah teknik yang berdasar pada relasi
antara solusi untuk suatu kasus dan solusi untuk bagian yang
lebih kecil dari kasus tersebut.
Decrease by Constant Variation.
• Pendekatan yang digunakan: top-down-approach atau bottom-upapproach (incremental approach )
• Pada umumnya nilai konstantanya adalah 1.
• Ukuran kasus diperkecil (reduce) dengan nilai konstanta yang
sama pada setiap iterasi sebuah algoritma.
• 3 bentuk variasi dari teknik decrease-and-conquer :
1. decrease by constant;
2. decrease by constant factor ;
3. variable size decrease
• 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 |
3
Analisis Algoritma |
4
1
11/3/2016
Three Major Varian of Decrease-and-Conquer
Latihan 1.
Three Major Varian of Decrease-and-Conquer
Insertion Sort.
Kasus: Decrease by constant.
• Insertion sort menggunakan metode deacrese-by-constant untuk
melakukan proses pengurutan suatu deret.
• Contoh kasus: Insertion sort.
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 |
Problem: Tentukan prosedur pengurutan deret secara ascending
menggunakan metode sorting insertion sort!
5
Insertion Sort
Latihan 2.
Kasus: Insertion Sort
Problem: Urutkan deret bilangan di bawah ini menggunakan metode
sorting insertion sort!
Analisis Algoritma |
6
Three Major Varian of Decrease-and-Conquer
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.
89 12 57 16 25 11 75
• Beberapa algoritma variasi decrese-and-conquer ini adalah:
• binary search; dan
• russian peasant multification.
Analisis Algoritma |
7
Analisis Algoritma |
8
2
11/3/2016
Three Major Varian of Decrease-and-Conquer
Analisis Algoritma:
Decrease by a Constant Factor Variation.
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
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 |
Fakultas Teknologi dan Desain
1-10 Informatika
Program Studi Teknik
9
Three Major Varian of Decrease-and-Conquer
Latihan 3.
Three Major Varian of Decrease-and-Conquer
Russian Peasant Multiplication.
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.
• 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
Analisis Algoritma |
11
merupakan bilangan genap
Analisis Algoritma |
12
3
11/3/2016
Three Major Varian of Decrease-and-Conquer
• Jika
Three Major Varian of Decrease-and-Conquer
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
14
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.”
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 |
Analisis Algoritma |
• 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.
15
Analisis Algoritma |
16
4
11/3/2016
Topological Sorting
• Adjacency matrix, menggambarkan hubungan antar simpul dalam
bentuk matriks.
Topological Sorting
• Gambar digraph disamping dapat diuraikan
menjadi:
Contoh digraph.
•
•
•
•
• Adjacency list, menggambarkan hubungan antar simpul yang
diwakili oleh edge.
• Adjacency matrix dan adjacency list merupakan dasar dari
algoritma DFS untuk digraph.
tree edges (ab, bc, de)
back edges (ba)
forward edges (ac)
cross edges (dc)
• Penerapan algoritma DFS untuk graph pada umumnya dalam
bentuk stack penelusuran dan pohon DFS.
Analisis Algoritma |
17
Analisis Algoritma |
Topological Sorting
• Contoh kasus: DFS algorithm
d
c
Topological Sorting
Latihan 4.
Problem: Tentukan pohon DFS, adjacency matrix dan adjacency list 2
buah graph di bawah ini!
f
f
b
a
18
b
c
a
g
e
c
d
Problem 1: Tentukan adjacency matrix, adjacency list dan stack
penelusuran graph di atas!
a
(a)
Analisis Algoritma |
19
e
b
d
e
f
g
(b)
Analisis Algoritma |
20
5
11/3/2016
Topological Sorting
Topological Sorting
• Pada digraph, algoritma DFS digunakan untuk menentukan stack
penelusuran (traversal stack) untuk menentukan popping-order .
Problem 2: Terapkan algoritma DFS pada graph di bawah ini untuk
menentukan stack penelusuran dan pohon DFS!
• Popping-order digunakan untuk menentukan topological sorting
yang dihasilkan.
f
d
a
c
b
d
• Contoh kasus: Topology sorting &
source-removel algorithm
Problem: Tentukan topology sorted list digraph
di samping!
e
Analisis Algoritma |
21
Analisis Algoritma |
Topological Sorting
• Contoh kasus: Topology sorting & source-removel algorithm
22
Topological Sorting
Latihan 4.
Problem 1: Tentukan topology sorted list
digraph di samping!
1). DFS
2). popping-off order
Problem 1: Tentukan topology sorted list digraph dan urutkan simpulsimpul berikut berdasarkan source-removel algorithm!
Problem 2: Dengan menerapkan algoritma
source-removel algorithm, urutkan
simpul-simpul tersebut!
Analisis Algoritma |
23
Analisis Algoritma |
24
6
11/3/2016
Analisis Algoritma:
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
1-25
7