Anda di halaman 1dari 5

1/4/2016

Bab 6: Transform-and-Conquer
Analisis Algoritma: Agenda.
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
• Introduction
• Instance Simplification
• Representation Change
• Problem Reduction

Fakultas Teknologi dan Desain


Program Studi Teknik
1-1 Informatika
Analisis Algoritma | 2

Introduction Introduction
Transform-and-conquer: teknik yang digunakan dalam • Terdapat tiga variasi utama yang membedakan pengubahan
perancangan algoritma yang akan mengubah (to transform) sebuah (transform) yang dilakukan untuk setiap kasus:
kasus menjadi bentuk lain, kemudian menentukan solusi (to • Instance simplification: menyederhankan kasus ke dalam bentuk yang
conquer) dari bentuk baru kasus tersebut. lebih sederhana agar mudah diselesaikan.
• Representation change: mengubah representasi kasus ke dalam bentuk
representasi yang lebih sederhana agar lebih efisien.
• Problem reduction: mengubah ukuran problem ke dalam ukuran
problem yang lebih mudah untuk diselesaikan.

Analisis Algoritma | 3 Analisis Algoritma | 4

1
1/4/2016

Instance Simplification Instance Simplification


Presorting. • Computing the mode
• Checking if all elements are distinct (element uniqueness)
• Presorting merupakan metode pengurutan (sorting) yang • Finding repeated elements
dilakukan sebelum waktu aktualnya (ahead of time) untuk • Contoh kasus 1: Searching with presorting.
mengefisiensikan penyelesaian kasus.
Problem: Tentukan banyaknya tahapan yang harus dilalui untuk dapat
• Beberapa permasalahan yang terkait dengan list akan lebih menentukan lokasi elemen dengan nilai terkecil pada deret berikut.
mudah jika list dalam keadaan terurut: 18 34 26 9 75 10
• Searching
• Computing the median

Analisis Algoritma | 5 Analisis Algoritma | 6

Instance Simplification Instance Simplification


• Contoh kasus 2: Element uniqueness with presorting. Latihan 1.
Problem: Tentukan banyaknya tahapan yang harus dilalui untuk dapat Kasus: Finding repeated elements
menentukan elemen yang sama yang saling berpasangan deret di bawah
Problem 1: Tentukan prosedur untuk menemukan elemen dengan
ini.
kemunculan terbanyak pada deret berikut menggunakan metode presorting.
18 34 12 9 24 12 40 20 34 18 34 9 26 9 75 34

Analisis Algoritma | 7 Analisis Algoritma | 8

2
1/4/2016

Representation Change Representation Change


Binary Search Tree. Heapsort.
• Binary search tree merupakan salah satu metode pencarian elemen • Heaps merupakan sebuah
yang mengakomodir teknik representation change.
binary tree dimana nilai
• Mengubah representasi (tampilan) kasus menjadi bentuk lainnya elemen root lebih besar dari
untuk memudahkan pencarian. elemen child
• Contoh kasus: Binary search tree. • Heapsort adalah teknik
Problem: Temukan element 35 pada deret bilangan berikut menggunakan binary pengurutan elemen
search tree.
bilangan yang mengadopsi
18 62 12 9 24 35 40 20 heaps.
Analisis Algoritma | 9 Analisis Algoritma | 10

Representation Change Problem Reduction


• Contoh kasus: Heapsort. • Problem Reduction: sebuah teknik yang digunakan dalam
Problem: Urutkan deret bilangan berikut menggunakan heapsort. menemukan suatu solusi dengan cara mereduksi problem ke
problem lainnya yang telah diketahui solusi untuk
18 62 12 9 24 35 2 penyelesaiannya.
Latihan 2.
Kasus: Heapsort.
Problem 1: Urutkan deret bilangan berikut menggunakan heapsort.
• Beberapa algoritma yang didasari oleh strategi ini adalah:
4 18 31 25 26 9 75 40 • Computing the Least Common Multiple
• Counting Path in a Graph
Analisis Algoritma | 11 Analisis Algoritma | 12

3
1/4/2016

Problem Reduction Problem Reduction


Computing the Least Common Multiple. Penyelesaian.
1). lcm(24, 60)  24 = 2 . 2 . 2 . 3 = 24
• Least Common Multiple (LCM): sebuah metode perkalian untuk
 60 = 2 . 2 . 2 . 3 . 5 = 60
menentukan bilangan bulat (integer) terkecil yang
memungkinkan untuk setiap nilai 𝒎 dan 𝒏. lcm(24, 60) = (2 . 2 . 3) . 2 . 5 = 120

• Contoh kasus: Least Common Multiple.


Problem: Tentukan lcm(24, 60) dan lcm(10, 5). 2). lcm(10, 5)  10 = 2 . 5 = 10
• Contoh kasus di atas dapat diselesaikan dengan perkalian 5=5
sederhana antara bilangan faktorisasi prima 𝒎 dan 𝒏. lcm(10, 5) = (2 . 5) . 5 = 50

Analisis Algoritma | 13 Analisis Algoritma | 14

Problem Reduction Problem Reduction


Latihan 3. Counting Path in Graph.
Kasus: Least Common Multiple. • Menentukan banyaknya jalur/path dalam sebuah graph (directed
Problem 1: Tentukan lcm(280, 630)! atau undirected).
• Problem ini dapat diselesaikan dengan memperhatikan nilai
Problem 2: Tentukan lcm untuk nilai 𝒎 dan 𝒏, jika nilai 𝒎 dan 𝒏 pada eksponen yang mewakili notasi setiap adjacency matrix.
problem 1 direduksi menjadi 1/3 bagian!
• Contoh kasus: Counting path in a graph.
Problem: Tentukan banyaknya jalur yang memungkinkan dari graph ini.

Analisis Algoritma | 15 Analisis Algoritma | 16

4
1/4/2016

Problem Reduction Problem Reduction


Penyelesaian. Latihan 4.
1). lcm(24, 60)  24 = 2 . 2 . 2 . 3 = 24 Kasus: Counting path in a graph.
Problem: Tentukan banyaknya jalur yang memungkinkan dari graph yang
ditunjukkan oleh adjacency metrics berikut.

Penyelesaian.
Untuk graph A terdapat 3 jalur (path) dengan jarak 2 yang menghubungkan
antara simpul a dan kembali lagi ke a, yaitu a – b – a, a – d – a, dan a – c –
a, sedangkan untuk graph A2, terdapat hanya 1 path dengan jarak 2, yaitu a
– d – c.

Analisis Algoritma | 17 Analisis Algoritma | 18

Analisis Algoritma:
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley

1-19

Anda mungkin juga menyukai