1
1
Transform and Conquer
Transform and Conquer
Metode ini berkerja dengan dua tahap. Pertama, tahap transformasi (Transformation Metode ini berkerja dengan dua tahap. Pertama, tahap transformasi (Transformation Stage) yaitu, modifikasi masalah agar lebih dapat menerima solusi. Kedua, tahap Stage) yaitu, modifikasi masalah agar lebih dapat menerima solusi. Kedua, tahap penyelesaian (Conquering stage) yaitu, penyelesaian masalah.
penyelesaian (Conquering stage) yaitu, penyelesaian masalah.
Terdapat tiga variasi berdasarkan cara melakukan transformasi : Terdapat tiga variasi berdasarkan cara melakukan transformasi : 1.
1. Instance Simplification (Simplifikasi Contoh), transformasi untuk menyederhanakanInstance Simplification (Simplifikasi Contoh), transformasi untuk menyederhanakan yang sesuai dengan contoh masalah yang sama.
yang sesuai dengan contoh masalah yang sama. Contoh : Presorting ; Gaussian Elimination Contoh : Presorting ; Gaussian Elimination 2.
2. Representation Change (Perubahan Representasi), transformasi untuk sebuahRepresentation Change (Perubahan Representasi), transformasi untuk sebuah representasi yang berbeda dari contoh yang sama.
representasi yang berbeda dari contoh yang sama. Contoh : Balanced Search Trees ; Heaps and Heapsort
Contoh : Balanced Search Trees ; Heaps and Heapsort;;Polynomial EvaluationPolynomial Evaluation 3.
3. Problem Reduction (Reduksi Masalah), transformasi untuk sebuah contoh dari masalahProblem Reduction (Reduksi Masalah), transformasi untuk sebuah contoh dari masalah berbeda untuk setiap algoritma yang telah tersedia.
berbeda untuk setiap algoritma yang telah tersedia. Contoh : Reductions to graph problems
Contoh : Reductions to graph problems contoh masalah
contoh masalah
contoh yang lebih sederhana contoh yang lebih sederhana
atau atau representasi lainnya representasi lainnya atau atau
contoh masalah lainnya contoh masalah lainnya
solusi solusi
Kartika Dwi
Kartika Dwi Hapsari | Hapsari | 105060801050608091110039111003
2
2
A.
A. PresortingPresorting Merupakan
Merupakan contoh contoh pemecahan pemecahan masalah masalah dengan dengan pengolahan pengolahan awal awal masalah masalah untuk untuk mengubahnya menjadi contoh lain yang sederhana atau yang lebih mudah dari masalah mengubahnya menjadi contoh lain yang sederhana atau yang lebih mudah dari masalah yang sama.
yang sama. Contoh : Contoh :
Mengecek keunikan elemen dalam sebuah array Mengecek keunikan elemen dalam sebuah array for
for i i 00 toto nn – – 22 dodo if A[i] = A[i + 1]
if A[i] = A[i + 1] return falsereturn false return true
return true
Waktu yang dibutuhkan untuk algoritma ini adalah jumlah dari setiap waktu yang Waktu yang dibutuhkan untuk algoritma ini adalah jumlah dari setiap waktu yang diperlukan untuk penyortiran dan waktu untuk mengecek elemen secara berturut-turut. diperlukan untuk penyortiran dan waktu untuk mengecek elemen secara berturut-turut. T(n) = T
T(n) = Tsortsort(n) + T(n) + Tscanscan(n)(n) Θ(n log n) + Θ(n) = Θ(n log n)Θ(n log n) + Θ(n) = Θ(n log n)
B.
B. Gaussian EliminationGaussian Elimination
Mengubah sistem persamaan linier n dalam n yang tidak diketahui ke sistem yang sama. Mengubah sistem persamaan linier n dalam n yang tidak diketahui ke sistem yang sama. Contoh :
Contoh : for
for i i 11 totonn dodo A[i, A[i, n n + + 1] 1] b[i]b[i] for for i i 11 totonn – – 11 dodo pivotrow i pivotrow i for for j j i i + + 11toto nn dodo if
if |A[j, |A[j, i]| i]| > > |A[pivotrow, |A[pivotrow, i]| i]| pivotrow pivotrow jj for fork k ii toton + 1n + 1dodo swap(A[i, k], A[pivotrow, k]) swap(A[i, k], A[pivotrow, k]) for for j j i i + + 11toto nn dodo temp
temp A[j, A[j, i] i] / / A[i, A[i, i]i] for
for k k ii toton + 1n + 1 dodo A[j,
3 3 Efisiensi waktu : Efisiensi waktu : C(n) = C(n) = ∑∑∑∑ ∑∑==∑∑∑∑ == ∑∑ ∑∑ = =∑∑ == ∑∑ = (n + 1) (n 1) + n(n -= (n + 1) (n - 1) + n(n -2) + … + 3 . 12) + … + 3 . 1 = =∑∑ == ∑∑ 22++∑∑== + 2+ 2 = = ≈≈ nn 3 3 Θ(nΘ(n33)) T(n) = T(n) = nn 3 3 Θ(nΘ(n33)) C.
C. Balanced Search TreesBalanced Search Trees
Jika pohon pencarian biner yang berisi node n seimbang, penyisipan, penghapusan dan Jika pohon pencarian biner yang berisi node n seimbang, penyisipan, penghapusan dan pengambilan efisiensi waktunya adalah
pengambilan efisiensi waktunya adalah ΘΘ (log n) waktu. Jika tidak, masing-masing(log n) waktu. Jika tidak, masing-masing operasi ini bisa memakan waktu
operasi ini bisa memakan waktu ΘΘ (n), yang tidak lebih baik dari pencarian sekuensial(n), yang tidak lebih baik dari pencarian sekuensial melalui linked list.
melalui linked list. D.
D. Heaps and Heap sortHeaps and Heap sort
Heaps dapat didefinisikan sebagai pohon biner dengan kunci terdapat pada node-nodenya Heaps dapat didefinisikan sebagai pohon biner dengan kunci terdapat pada node-nodenya (satu kunci per node) jika dua kondisi berikut terpenuhi :
(satu kunci per node) jika dua kondisi berikut terpenuhi : 1.
1. Persyaratan bentuk pohon biner, semua tingkatannya penuh, kecuali mungkin tingkatPersyaratan bentuk pohon biner, semua tingkatannya penuh, kecuali mungkin tingkat terakhir, dimana hanya beberapa daun paling kanan yang mungkin hilang.
terakhir, dimana hanya beberapa daun paling kanan yang mungkin hilang. 2.
2. Persyaratan dominasi parental, kunci di masing-masing node lebih besar dari atauPersyaratan dominasi parental, kunci di masing-masing node lebih besar dari atau sama dengan kunci pada anak-anaknya.
Kartika Dwi
Kartika Dwi Hapsari | Hapsari | 105060801050608091110039111003
4
4
Contoh : Contoh : for
for i i |n/2||n/2|downtodownto 11 dodo k
k i; i; v v H[k]H[k] heap false heap false while not
while notheapheapandand 2 * k ≤ n2 * k ≤ n dodo j j 2 * k 2 * k if if j < nj < n if if H[j] H[j] < < H[j H[j + + i] i] j j j j + + 11 if if v ≥ H[j]v ≥ H[j] heap
heap truetrue else else H[k] H[k] H[j]; H[j]; k k jj H[k] v H[k] v Efisiensi waktu : Efisiensi waktu : Worst Case : C(n) = Worst Case : C(n) = ∑∑ ∑∑ == ∑∑ ii = 2(n -= 2(n - )) T(n) = 2(n -T(n) = 2(n - )) Θ(Θ(n)n)
Heapsort bekerja dengan dua tahap. Tahap pertama, konstruksi heap yaitu, membangun Heapsort bekerja dengan dua tahap. Tahap pertama, konstruksi heap yaitu, membangun sebuah heap untuk array yang diberikan. Tahap kedua, penghapusan maksimum yaitu, sebuah heap untuk array yang diberikan. Tahap kedua, penghapusan maksimum yaitu, menerapkan operasi penghapusan akar sebanyak n
menerapkan operasi penghapusan akar sebanyak n – – 1 kali untuk heap yang tersisa.1 kali untuk heap yang tersisa. Efisiensi waktu :
Efisiensi waktu :
Kita sudah mengetahui bahwa tahap konstruksi heap adalah
Kita sudah mengetahui bahwa tahap konstruksi heap adalah Θ(n), sehingga kita hanyaΘ(n), sehingga kita hanya perlu menyelidiki efisiensi waktu tahap kedua.
perlu menyelidiki efisiensi waktu tahap kedua. C(n) ≤ 2
C(n) ≤ 2[[ ] + 2[] + 2[ ] + … + 2[] + … + 2[] ≤ 2] ≤ 2 ∑∑
≤ 2
≤ 2 ∑∑ = 2(n - 1)= 2(n - 1) ≤ 2n≤ 2n
Hal ini berarti bahwa C(n)
Hal ini berarti bahwa C(n) Θ(n log n)Θ(n log n) untuk tahap kedua heapsort. Untuk keduauntuk tahap kedua heapsort. Untuk kedua tahapan didapatkan Θ(n) + Θ(n log n) = Θ(n log n).
tahapan didapatkan Θ(n) + Θ(n log n) = Θ(n log n). E.
E. Polynomial EvaluationPolynomial Evaluation
Polinom merupakan kelas yang paling penting dari fungsi karena memiliki keuntungan Polinom merupakan kelas yang paling penting dari fungsi karena memiliki keuntungan di satu sisi dan daoat digunakan untuk pendekatan jenis fungsi di sisi lainnya.
5 5 Contoh : Contoh : p P[n] p P[n] for
for i i nn – – 11 downtodownto00 dodo p p x x * * p p + + P[i]P[i] return return pp Efisiensi waktu : Efisiensi waktu : C(n) = C(n) = ∑∑ = n= n T(n) = n T(n) = n Θ(n)Θ(n) F.
F. Reductions to graph problemsReductions to graph problems
Mereduksi masalah menjadi masalah lain yang cara pemecahannya sudah diketahui. Mereduksi masalah menjadi masalah lain yang cara pemecahannya sudah diketahui. Algoritma seperti Breadth First dan Depth First tersedia setelah pengurangan perwakilan Algoritma seperti Breadth First dan Depth First tersedia setelah pengurangan perwakilan grafik.
grafik.
Vertices mewakili states and edges mewakili transisi yang benar antar states. Vertices mewakili states and edges mewakili transisi yang benar antar states.