Transform and Conquer

January 3, 2019 | Author: dweet33k4 | Category: N/A
Share Embed Donate


Short Description

Download Transform and Conquer...

Description

Desain dan Analisis Algoritma Transform and Conquer Kartika Dwi Hapsari

Transform and Conquer Metode ini berkerja dengan dua tahap. Pertama, tahap transformasi (Transformation Stage) yaitu, modifikasi masalah agar lebih dapat menerima solusi. Kedua, tahap penyelesaian (Conquering stage) yaitu, penyelesaian masalah.

contoh yang lebih sederhana atau solusi

representasi lainnya

contoh masalah

atau contoh masalah lainnya

Terdapat tiga variasi berdasarkan cara melakukan transformasi : 1.

Instance Simplification (Simplifikasi Contoh), transformasi untuk menyederhanakan yang sesuai dengan contoh masalah yang sama. Contoh : Presorting ; Gaussian Elimination

2.

Representation

Change

(Perubahan

Representasi),

transformasi

untuk

sebuah

representasi yang berbeda dari contoh yang sama. Contoh : Balanced Search Trees ; Heaps and Heapsort ; Polynomial Evaluation 3.

Problem Reduction (Reduksi Masalah), transformasi untuk sebuah contoh dari masalah berbeda untuk setiap algoritma yang telah tersedia. Contoh : Reductions to graph problems

1

Kartika Dwi Hapsari | 10506080 105060809111003 9111003

Desain dan Analisis Algoritma Transform and Conquer Kartika Dwi Hapsari

A. Presorting Merupakan

contoh pemecahan masalah dengan pengolahan awal masalah untuk 

mengubahnya menjadi contoh lain yang sederhana atau yang lebih mudah dari masalah yang sama. Contoh : Mengecek keunikan elemen dalam sebuah array for i

0 to n – 2 do

if A[i] = A[i + 1] return false return true

Waktu yang dibutuhkan untuk algoritma ini adalah jumlah dari setiap waktu yang diperlukan untuk penyortiran dan waktu untuk mengecek elemen secara berturut-turut. T(n) = Tsort(n) + Tscan(n)  Θ(n log n) + Θ(n) = Θ(n log n) B. Gaussian Elimination Mengubah sistem persamaan linier n dalam n yang tidak diketahui ke sistem yang sama. Contoh : for i

1 to n do A[i, n + 1]

for i

1 to n – 1 do

pivotrow for j

b[i]

i

i + 1 to n do

if |A[j, i]| > |A[pivotrow, i]| pivotrow for k

i to n + 1 do

swap(A[i, k], A[pivotrow, k]) for j

2

i + 1 to n do

temp

A[j, i] / A[i, i]

for k

i to n + 1 do

A[j, k]

A[j, k] – A[i, k] * temp

Kartika Dwi Hapsari | 10506080 105060809111003 9111003

j

Desain dan Analisis Algoritma Transform and Conquer Kartika Dwi Hapsari

Efisiensi waktu :        ∑ ∑ ∑         = ∑ ∑       C(n) = ∑  = ∑              = ∑         = ∑

= (n + 1) (n - 1) + n(n - 2) + … + 3 . 1 2

        = ∑ = ∑   + ∑  =

=

    3 

  



+2





≈ n3  Θ(n3) 

3

T(n) = n  Θ(n ) C. Balanced Search Trees Jika pohon pencarian biner yang berisi node n seimbang, penyisipan, penghapusan dan pengambilan efisiensi waktunya adalah Θ (log n) waktu. Jika tidak, masing-masing operasi ini bisa memakan waktu Θ (n), yang tidak lebih baik dari pencarian sekuensial melalui linked list. D. Heaps and Heap sort Heaps dapat didefinisikan sebagai pohon biner dengan kunci terdapat pada node-nodenya (satu kunci per node) jika dua kondisi berikut terpenuhi : 1. Persyaratan bentuk pohon biner, semua tingkatannya penuh, kecuali mungkin tingkat terakhir, dimana hanya beberapa daun paling kanan yang mungkin hilang. 2. Persyaratan dominasi parental, kunci di masing-masing node lebih besar dari atau sama dengan kunci pada anak-anaknya.

3

Kartika Dwi Hapsari | 10506080 105060809111003 9111003

Desain dan Analisis Algoritma Transform and Conquer Kartika Dwi Hapsari

Contoh : for i

|n/2| downto 1 do

k

i; v

heap

H[k] false

while not heap and 2 * k ≤ n do

 j

2 * k 

if j < n if H[j] < H[j + i] j

j+1

if v ≥ H[j]

heap else H[k]

H[k]

true

H[j]; k

j

v

Efisiensi waktu : i

 Worst Case : C(n) = ∑  = 2(n -     )  ∑      = ∑   

T(n) = 2(n -     )  Θ(n) Heapsort bekerja dengan dua tahap. Tahap pertama, konstruksi heap yaitu, membangun sebuah heap untuk array yang diberikan. Tahap kedua, penghapusan maksimum yaitu, menerapkan operasi penghapusan akar sebanyak n – 1 kali untuk heap yang tersisa. Efisiensi waktu : Kita sudah mengetahui bahwa tahap konstruksi heap adalah Θ(n), sehingga kita hanya perlu menyelidiki efisiensi waktu tahap kedua.  C(n) ≤ 2[      ] + 2[    ] + … + 2[  ] ≤ 2 ∑     ≤ 2 ∑      = 2(n - 1)     ≤ 2n  

Hal ini berarti bahwa C(n)  Θ(n log n) untuk tahap kedua heapsort. Untuk kedua

tahapan didapatkan Θ(n) + Θ(n log n) = Θ(n log n). E.

Polynomial Evaluation Polinom merupakan kelas yang paling penting dari fungsi karena memiliki keuntungan di satu sisi dan daoat digunakan untuk pendekatan jenis fungsi di sisi lainnya.

4

Kartika Dwi Hapsari | 10506080 105060809111003 9111003

Desain dan Analisis Algoritma Transform and Conquer Kartika Dwi Hapsari

Contoh : p

P[n]

for i

p

n – 1 downto 0 do x * p + P[i]

return p

Efisiensi waktu :  =n C(n) = ∑

T(n) = n  Θ(n) F.

Reductions to graph problems Mereduksi masalah menjadi masalah lain yang cara pemecahannya sudah diketahui. Algoritma seperti Breadth First dan Depth First tersedia setelah pengurangan perwakilan grafik. Vertices mewakili states and edges mewakili transisi yang benar antar states.

5

Kartika Dwi Hapsari | 10506080 105060809111003 9111003

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF