• Tidak ada hasil yang ditemukan

Transform and Conquer

N/A
N/A
Protected

Academic year: 2021

Membagikan "Transform and Conquer"

Copied!
5
0
0

Teks penuh

(1)

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

(2)

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 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.

(4)

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 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.

Referensi

Dokumen terkait

Sebagai suatu system transformasi, bisnis memiliki beberapa subsistem, yaitu subsistem input, proses, dan output yang bermanfaat untuk menganalisis problem-problem yang

• Divide : membagi persoalan menjadi beberapa upa-masalah yang memiliki kemiripan dengan persoalan semula namun berukuran lebih kecil (idealnya berukuran hampir sama),.. •

Transformasi Fourier digunakan untuk mentransformasi sinyal analog dari domain waktu ke domain frekuensi (spektrum frekuensi) seperti ditunjukkan pada Gambar 4.1..

• Tiap-tiap upa-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam

• Divide: membagi persoalan menjadi beberapa upa-masalah yang memiliki kemiripan dengan persoalan semula namun berukuran lebih kecil (idealnya berukuran hampir sama),.. •

• Decrease and conquer : metode perancangan algoritma dengan mereduksi persoalan menjadi dua upa-persoalan ( sub-problem ) yang lebih kecil, tetapi selanjutnya hanya memproses

Algoritma Divide and Conquer (DANDC) memecah masalah menjadi submasalah-submasalah independen yang lebih kecil sehingga solusi submasalah – submasalah dapat diperoleh

Untuk menjamin keberjalanan suatu perusahaan produksi, apapun produknya, perusahaan-perusahaan tersebut menghadapi masalah yang sama - bahwa pelanggan menginginkan