bab 4: decrease-and-conquer analisis algoritma: agenda. · 11/3/2016 4 three major varian of...

7
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, 3 rd 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

Upload: voxuyen

Post on 08-Mar-2019

215 views

Category:

Documents


0 download

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

11/3/2016

7

1-25

Analisis Algoritma:Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,

Pearson Education, Inc., Addison-Wesley