Transform and Conquer
January 3, 2019 | Author: dweet33k4 | Category: N/A
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