• Tidak ada hasil yang ditemukan

Handout TIF207 Ch 6 Transform and Conquer

N/A
N/A
Protected

Academic year: 2017

Membagikan "Handout TIF207 Ch 6 Transform and Conquer"

Copied!
5
0
0

Teks penuh

(1)

1-1

Analisis Algoritma:

Fakultas Teknologi dan Desain Program Studi Teknik Informatika

Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rdEdition, Pearson Education, Inc., Addison-Wesley

Bab 6: Transform-and-Conquer

Agenda.

• Introduction

• Instance Simplification

• Representation Change

• Problem Reduction

Analisis Algoritma | 2

Transform-and-conquer

:

teknik yang digunakan dalam perancangan algoritma yang akan mengubah (to transform) sebuah kasus menjadi bentuk lain, kemudian menentukan solusi (to conquer) dari bentuk baru kasus tersebut.

Introduction

• Terdapat tiga variasi utama yang membedakan pengubahan (transform) yang dilakukan untuk setiap kasus:

Instance simplification: menyederhankan kasus ke dalam bentuk yang 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.

(2)

Instance Simplification

Presorting.

Presorting merupakan metode pengurutan (sorting) yang

dilakukan sebelum waktu aktualnya (ahead of time) untuk mengefisiensikan penyelesaian kasus.

• Beberapa permasalahan yang terkait dengan list akan lebih mudah jika list dalam keadaan terurut:

• Searching

• Computing the median

Analisis Algoritma | 5

Instance Simplification

• Computing the mode

• Checking if all elements are distinct (element uniqueness)

• Finding repeated elements

Contoh kasus 1: Searching with presorting.

Problem: Tentukan banyaknya tahapan yang harus dilalui untuk dapat menentukan lokasi elemen dengan nilai terkecil pada deret berikut.

18 34 26 9 75 10

Analisis Algoritma | 6

Instance Simplification

Contoh kasus 2: Element uniqueness with presorting.

Problem: Tentukan banyaknya tahapan yang harus dilalui untuk dapat menentukan elemen yang sama yang saling berpasangan deret di bawah ini.

18 34 12 9 24 12 40 20

Analisis Algoritma | 7

Instance Simplification

Latihan 1.

Kasus: Finding repeated elements

Problem 1: Tentukan prosedur untuk menemukan elemen dengan kemunculan terbanyak pada deret berikut menggunakan metode presorting.

34 18 34 9 26 9 75 34

(3)

Representation Change

Binary Search Tree.

Binary search tree merupakan salah satu metode pencarian elemen yang mengakomodir teknik representation change.

• Mengubah representasi (tampilan) kasus menjadi bentuk lainnya untuk memudahkan pencarian.

Contoh kasus: Binary search tree.

Problem: Temukan element 35 pada deret bilangan berikut menggunakan binary search tree.

18 62 12 9 24 35 40 20

Analisis Algoritma | 9

Representation Change

Heapsort.

Heaps merupakan sebuah

binary tree dimana nilai elemen root lebih besar dari elemen child

Heapsort adalah teknik

pengurutan elemen bilangan yang mengadopsi heaps.

Analisis Algoritma | 10

Representation Change

Contoh kasus: Heapsort.

Problem: Urutkan deret bilangan berikut menggunakan heapsort.

18 62 12 9 24 35 2

Latihan 2.

Kasus: Heapsort.

Problem 1: Urutkan deret bilangan berikut menggunakan heapsort.

4 18 31 25 26 9 75 40

Problem Reduction

Problem Reduction: sebuah teknik yang digunakan dalam

menemukan suatu solusi dengan cara mereduksi problem ke problem lainnya yang telah diketahui solusi untuk penyelesaiannya.

• Beberapa algoritma yang didasari oleh strategi ini adalah:

• Computing the Least Common Multiple

(4)

Problem Reduction

Computing the Least Common Multiple.

Least Common Multiple (LCM):sebuah metode perkalian untuk

menentukan bilangan bulat (integer) terkecil yang memungkinkan untuk setiap nilai ࢓dan ࢔.

Contoh kasus: Least Common Multiple.

Problem: Tentukan lcm(24, 60) dan lcm(10, 5).

• Contoh kasus di atas dapat diselesaikan dengan perkalian sederhana antara bilangan faktorisasi prima࢓dan ࢔.

Analisis Algoritma | 13

Problem Reduction

Analisis Algoritma | 14

Problem Reduction

Latihan 3.

Kasus: Least Common Multiple. Problem 1: Tentukan lcm(280, 630)!

Problem 2: Tentukan lcm untuk nilai ࢓dan ࢔, jika nilai ࢓dan ࢔pada problem 1 direduksi menjadi 1/3 bagian!

Analisis Algoritma | 15

Problem Reduction

Counting Path in Graph.

• Menentukan banyaknya jalur/path dalam sebuah graph (directed atau undirected).

• Problem ini dapat diselesaikan dengan memperhatikan nilai eksponen yang mewakili notasi setiap adjacency matrix.

Contoh kasus: Counting path in a graph.

Problem: Tentukan banyaknya jalur yang memungkinkan dari graph ini.

(5)

Penyelesaian.

1). lcm(24, 60)24 = 2 . 2 . 2 . 3 = 24

Problem Reduction

Analisis Algoritma | 17 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.

Problem Reduction

Latihan 4.

Kasus: Counting path in a graph.

Problem: Tentukan banyaknya jalur yang memungkinkan dari graph yang ditunjukkan oleh adjacency metrics berikut.

Analisis Algoritma | 18

Analisis Algoritma:

Referensi

Dokumen terkait