SlideShare a Scribd company logo
1 of 24
Decrease and Conquer
Bahan Kuliah IF3051 Strategi Algoritma
Oleh: Rinaldi Munir
Program Studi Teknik Informatika
Sekolah Teknik Elektro dan In formatika ITB
2011
1
• Decrease and conquer: metode desain algoritma
dengan mereduksi persoalan menjadi beberapa sub-
persoalan yang lebih kecil, tetapi selanjutnya hanya
memproses satu sub-persoalan saja.
• Berbeda dengan divide and conquer yang
memproses semua sub-persoalan dan menggabung
semua solusi setiap sub-persoalan.
2
• Decrease and conquer terdiri dari dua tahapan:
1. Decrease: mereduksi persoalan menjadi beberapa
persoalan yang lebih kecil (biasanya dua sub-
persoalan).
2. Conquer: memproses satu sub-persoalan secara
rekursif.
• Tidak ada tahap combine dalam decrease and
conquer.
3
• Tiga varian decrease and conquer:
1. Decrease by a constant: ukuran instans persoalan direduksi
sebesar konstanta yang sama setiap iterasi algoritma.
Biasanya konstanta = 1.
2. Decrease by a constant factor: ukuran instans persoalan
direduksi sebesar faktor konstanta yang sama setiap iterasi
algoritma. Biasanya faktor konstanta = 2.
3. Decrease by a variable size: ukuran instans persoalan
direduksi bervariasi pada setiap iterasi algoritma.
4
Decrease by a Constant
Persoalan
berukuran n
Sub-persoalan
berukuran n – 1
Solusi
Sub-persoalan
Solsi
Persoalan semula 5
• Contoh 1: Persoalan perpangkatan an
Dengan metode decrease and conquer:
Kompleksitas waktu (berdasarkan jumlah operasi kali):
Bila diselesaikan:
T(n) = T(n – 1) + 1 = …. = O(n)
sama seperti algoritma brute-force.








0
,
1
)
1
(
0
,
0
)
(
n
n
T
n
n
T






 
0
,
0
,
1
1
n
a
a
n
a n
n
6
function exp(a : real; n : integer)  real
Deklarasi
k : integer
Algoritma:
if n = 0 then
return 1
else
return exp(a, n – 1) * a
endif
7
• Contoh 2: Selection sort
Misalkan tabel a berisi elemen-elemen berikut:
4 12 3 9 1 21 5 2
Langkah-langkah pengurutan dengan Selection Sort:
4 12 3 9 1 21 5 2
1 12 3 9 4 21 5 2
1 2 3 9 4 21 5 12
1 2 3 9 4 21 5 12
1 2 3 4 9 21 5 12
1 2 3 4 5 21 9 12
1 2 3 4 5 9 12 21
1 2 3 4 5 9 12 21
1 2 3 4 5 9 12 21
8
• Kompleksitas waktu algoritma Selection Sort:
T(n) = waktu pembagian + waktu pemanggilan
rekurens Selection Sort untuk bagian tabel
kanan yang berukuran n elemen.








1
,
)
1
(
1
,
)
(
n
cn
n
T
n
a
n
T
Persamaan pada bagian rekurensi bila diselesaikan
menghasilkan T(n) = O(n2).
9
Decrease by a Constant Factor
Persoalan
berukuran n
Sub-persoalan
berukuran n/2
Solsi
Sub-persoalan
Solsi
Persoalan semula 10
• Contoh 4: Binary search
Kondisi awal: larik A sudah terurut menaik
K adalah nilai yang dicari
i mid j
½ bagian kiri ½ bagian kanan
Jika elemen tengah (mid)  k, maka pencarian dilakukan
hanya pada setengah bagian larik (kiri atau kanan)
11
Ukuran persoalan selalu berkurang sebesar setengah ukuran semula.
Hanya setengah bagain yang diproses, setengah bagian lagi tidak.
procedure bin_search(input A : ArrayOfInteger;
input i, j : integer; input K : integer; output idx : integer)
Deklarasi
mid : integer
Algoritma:
if j > i then { ukuran larik sudah 0}
idx  -1 { k tidak ditemukan }
else
mid  (i + j)/2
if A(mid) = k then { k ditemukan }
idx  mid { indeks elemen larik yang bernilai = K }
else
if K < A(mid then
bin_search(A, mid + 1, j, K, idx)
else
bin_search(A, i, mid - 1 , K, idx)
endif
endif
endif
12
• Jumlah operasi perbandingan:
• Relasi rekursif tsb diselesaikan sbb:
T(n) = 1 + T(n/2)
= 1 + (1 + T(n/4)) = 2 + T(n/4)
= 2 + (1 + T(n/8)) = 3 + T(n/8)
= … = j + T(n/2j)
Asumsi: n = 2j  j = 2log n
T(n) = 2log n + T(1) = 2log n + (1 + T(0)) = 1 + 2log n = O(2log n)







0
,
)
2
/
(
1
0
,
0
)
(
n
n
T
n
n
T
13
• Contoh 5: Interpolation Search
- Analog dengan pencarian data di dalam kamus
dengan cara perkiraan letak.
- Kondisi awal: larik A sudah terurut menaik
K adalah nilai yang dicari
14
15
low
upper
low
low
upper
low
I
I
I
I
K
K
K
K





low
upper
low
low
upper
low
K
K
K
K
I
I
I
I





 )
(
procedure interpolation_search(input A : ArrayOfInteger;
input i, j : integer; input K : integer; output idx : integer)
Deklarasi
mid : integer
Algoritma:
if j > i then { ukuran larik sudah 0}
idx  -1 { K tidak ditemukan }
else
mid  i + (j – i) *(K – A(i))/ (A(j) – A (i))
if A(mid) = x then { K ditemukan }
idx  mid { indeks elemen larik yang bernilai = K }
else
if K < A(mid then
interpolation_search(A, mid + 1, j, K, idx)
else
interpolation_search(A, i, mid - 1 , K, idx)
endif
endif
endif
16
• Kompleksitas algoritma interpolation search:
- Kasus terburuk: O(n), untuk sembarang distribusi
data
- Kasus terbaik: O(log log n), jika data di dalam
senarai terdistribusi uniform
17
• Contoh 6 (Mencari koin palsu). Diberikan n buah koin
yang identik, satu diantaranya palsu. Asumsikan koin
yang palsu mempunyai berat yang lebih ringan
daripada koin asli. Untuk mencari yang palsu,
disediakan sebuah timbangan yang teliti. Carilah koin
yang palsu dengan cara penimbangan.
18
Algoritma decrease and conquer:
1. Bagi himpunan koin menjadi dua sub-himpunan, masing-
masing n/2 koin. Jika n ganjil, maka satu buah koin tidak
dimasukkan ke dalam kedua sub-himpunan.
2. Timbang kedua sub-himpunan dengan neraca.
3. Jika beratnya sama, berarti satu koin yang tersisa adalah
palsu.
4. Jika beratnya tidak sama, maka ulangi proses untuk sub-
himpunan yang beratnya lebih ringan (salah satu koin di
dalamnya palsu).
19
• Ukuran persoalan selalu berkurang dengan faktor
setengah dari ukuran semula. Hanya setengah bagian
yang diproses, setengah bagian yang lain tidak diproses.
• Jumlah penimbangan yang dilakukan adalah:
• Penyelesaian relasi rekurens T(n) mirip seperti binary
search:
T(n) = 1 + T(n/2) = …. + O(2 log n)
 







1
,
)
2
/
(
1
1
,
0
)
(
n
n
T
n
n
T
20
Decrease by a Varible Size
• Contoh 7: Menghitung median dan Selection
Problem.
– Selection problem: mencari elemen terkecil ke-k di dalam
sebuah senarai beranggotan n elemen.
– Jika k = 1  elemen paling kecil (minimum)
– Jika k = n  elemen paling besar (maksimum)
– Jika k = n/2  elemen median
Bagaimana mencari median dari senarai yang tidak terurut
namun tidak perlu mengurutkan senarai terlebih dahulu?
21
Algoritmanya:
1. Lakukan partisi pada senarai seperti proses partisi pada
algoritma Quick Sort. Partisi menghasilakn setengah elemen
senarai lebih kecil atau sama dengan pivot p dan setengah
bagian lagi lebih besar dari pivot p.
2. Misalkan s adalah posisi pemmartisian.
Jika s = n/2, maka pivot p adalah nilai median yang dicari
Jika s > n/2, maka median terdapat pada setengah bagian kiri
Jika s < n/2, maka median terdapat pada setengah bagian
kanan












p
i
i
p
i
i n
s
s
a
a
p
a
a



 1
1
1
22
• Contoh: Temukan median dari 4, 1, 10, 9, 7, 12, 8, 2, 15.
pada contoh ini, k = 9/2 = 5, sehingga persoalannya adalah
mencari elemen terkecil ke-5 di dalam senarai.
Partisi senarai dengan memilih elemen pertama sebagai pivot:
4 1 10 9 7 12 8 2 15
Hasil partisi:
2 1 4 9 7 12 8 10 15
Karena s = 3 < 5, kita memproses setengah bagian kanan:
9 7 12 8 10 15
8 7 9 12 10 15
Karena s = 6 > 5, kita memproses setengah bagian kiri:
8 7
7 8
23
Sekarang s = k = 5  stop. Jadi median = 8
• Kompleksitas algoritma:
• Solusi dari relasi rekurens tersebut adalah:
T(n) = T(n/2) + cn = … = O(n)
24







1
,
)
2
/
(
1
,
)
(
n
cn
n
T
n
a
n
T

More Related Content

Similar to Decrease and Conquer in analysis of algorithms.pptx

Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianLaporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianShofura Kamal
 
Algoritma divide and conquer (lanjutan)
Algoritma divide and conquer (lanjutan)Algoritma divide and conquer (lanjutan)
Algoritma divide and conquer (lanjutan)Edho Pratama
 
Bahan Kuliah Analisis Algoritma Materi Kompleksitas Algoritma
Bahan Kuliah Analisis Algoritma Materi Kompleksitas AlgoritmaBahan Kuliah Analisis Algoritma Materi Kompleksitas Algoritma
Bahan Kuliah Analisis Algoritma Materi Kompleksitas Algoritmamohfajar1343
 
Algoritma-Greedy-(2016).ppt
Algoritma-Greedy-(2016).pptAlgoritma-Greedy-(2016).ppt
Algoritma-Greedy-(2016).pptsayfa3
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)Fahuda E
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptxwikirezi
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)muissyahril
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)biedoen
 
Kelompok algoritma ririn and friends STT wastukancana
Kelompok algoritma ririn and friends STT wastukancanaKelompok algoritma ririn and friends STT wastukancana
Kelompok algoritma ririn and friends STT wastukancanaRirin Indah
 
Kisi-kisi UN Matematika kelas 9 SMP
Kisi-kisi UN Matematika kelas 9 SMPKisi-kisi UN Matematika kelas 9 SMP
Kisi-kisi UN Matematika kelas 9 SMPNisriinaaf
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanReskidtc
 
Bab 2 sorting array
Bab 2 sorting arrayBab 2 sorting array
Bab 2 sorting arrayFahuda E
 
Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Ajeng Savitri
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingDea Rokhmatun Iradewa
 
Sorting selection-sort
Sorting   selection-sortSorting   selection-sort
Sorting selection-sortFajar Zain
 
6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdfNestyoRizky
 

Similar to Decrease and Conquer in analysis of algorithms.pptx (20)

Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung MedianLaporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
Laporan Praktikum Algoritma Pemrograman Modul V-Menghitung Median
 
Pertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik SearchingPertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik Searching
 
Algoritma divide and conquer (lanjutan)
Algoritma divide and conquer (lanjutan)Algoritma divide and conquer (lanjutan)
Algoritma divide and conquer (lanjutan)
 
Bahan Kuliah Analisis Algoritma Materi Kompleksitas Algoritma
Bahan Kuliah Analisis Algoritma Materi Kompleksitas AlgoritmaBahan Kuliah Analisis Algoritma Materi Kompleksitas Algoritma
Bahan Kuliah Analisis Algoritma Materi Kompleksitas Algoritma
 
Algoritma-Greedy-(2016).ppt
Algoritma-Greedy-(2016).pptAlgoritma-Greedy-(2016).ppt
Algoritma-Greedy-(2016).ppt
 
Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 
1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx1. Pengantar Strategi Algoritma.pptx
1. Pengantar Strategi Algoritma.pptx
 
Pertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik SearchingPertemuan 11 Tehnik Searching
Pertemuan 11 Tehnik Searching
 
Algoritma greedy
Algoritma greedyAlgoritma greedy
Algoritma greedy
 
MPL ITS
MPL ITSMPL ITS
MPL ITS
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
Sd pertemuan 3 & 4 (edited)
Sd   pertemuan 3 & 4 (edited)Sd   pertemuan 3 & 4 (edited)
Sd pertemuan 3 & 4 (edited)
 
Kelompok algoritma ririn and friends STT wastukancana
Kelompok algoritma ririn and friends STT wastukancanaKelompok algoritma ririn and friends STT wastukancana
Kelompok algoritma ririn and friends STT wastukancana
 
Kisi-kisi UN Matematika kelas 9 SMP
Kisi-kisi UN Matematika kelas 9 SMPKisi-kisi UN Matematika kelas 9 SMP
Kisi-kisi UN Matematika kelas 9 SMP
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Bab 2 sorting array
Bab 2 sorting arrayBab 2 sorting array
Bab 2 sorting array
 
Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)Algoritma Divide and Conquer (Sorting & Searching)
Algoritma Divide and Conquer (Sorting & Searching)
 
Analisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah SortingAnalisis Algoritma Pada Masalah Sorting
Analisis Algoritma Pada Masalah Sorting
 
Sorting selection-sort
Sorting   selection-sortSorting   selection-sort
Sorting selection-sort
 
6 rekursif induksi matematik.pdf
6 rekursif  induksi matematik.pdf6 rekursif  induksi matematik.pdf
6 rekursif induksi matematik.pdf
 

Recently uploaded

K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015IrfanAdiPratomo1
 
Makalah pptMOTOR LISTRIK DAN MOTOR AC.pptx
Makalah pptMOTOR LISTRIK DAN MOTOR AC.pptxMakalah pptMOTOR LISTRIK DAN MOTOR AC.pptx
Makalah pptMOTOR LISTRIK DAN MOTOR AC.pptxDevaldiferdiansyah
 
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman MadyaPelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madyadedekhendro370
 
Electrostatic Precipitator handbook manual
Electrostatic Precipitator handbook manualElectrostatic Precipitator handbook manual
Electrostatic Precipitator handbook manualdendranov19
 
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptxPetunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptxpkmcipakudrive
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxyoodika046
 
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasissupi412
 
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptxPPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptxHeruHadiSaputro
 
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfGambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfYoyokSuwiknyo
 
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptxESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptxadnijayautama
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturAhmadAffandi36
 

Recently uploaded (16)

K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
K3 INSTALASI PENYALUR PETIR PERMEN 31 TH 2015
 
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
Jual Obat Aborsi Batam ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik Jual Ob...
 
Makalah pptMOTOR LISTRIK DAN MOTOR AC.pptx
Makalah pptMOTOR LISTRIK DAN MOTOR AC.pptxMakalah pptMOTOR LISTRIK DAN MOTOR AC.pptx
Makalah pptMOTOR LISTRIK DAN MOTOR AC.pptx
 
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman MadyaPelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
Pelaksana Lapangan Pekerjaan Bangun air Limbah Permukiman Madya
 
Electrostatic Precipitator handbook manual
Electrostatic Precipitator handbook manualElectrostatic Precipitator handbook manual
Electrostatic Precipitator handbook manual
 
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
obat aborsi Pangkal pinang Wa 082223109953 Jual obat aborsi Cytotec asli Di P...
 
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakartaObat Aborsi jakarta WA 082223109953  Jual Obat Aborsi Cytotec Asli Di jakarta
Obat Aborsi jakarta WA 082223109953 Jual Obat Aborsi Cytotec Asli Di jakarta
 
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptxPetunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
Petunjuk teknis Pengisian Usulan Alat Kesehatan SOPHI.pptx
 
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptxPresentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
Presentation Bisnis Teknologi Modern Biru & Ungu_20240429_074226_0000.pptx
 
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
Jual Obat Aborsi Denpasar Bali ( Asli Ampuh No.1 ) 082223109953 Tempat Klinik...
 
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai PenuhObat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
Obat Aborsi Sungai Penuh 082223109953 Jual Cytotec Asli Di Sungai Penuh
 
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Batam Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
 
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptxPPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
PPT PELAKSANA LAPANGAN PERPIPAAN MADYA - IWAN SYAHRONI.pptx
 
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdfGambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
Gambar Rencana TOYOMARTO KETINDAN Malang jawa timur.pdf
 
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptxESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
ESTIMASI BIAYA PEMELIHARAAN BANGUNAN BERDASARKAN PEDOMAN PEMELIHARAAN DAN.pptx
 
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufakturBahan kuliah elemen mesin semester 2 rekayasa manufaktur
Bahan kuliah elemen mesin semester 2 rekayasa manufaktur
 

Decrease and Conquer in analysis of algorithms.pptx

  • 1. Decrease and Conquer Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir Program Studi Teknik Informatika Sekolah Teknik Elektro dan In formatika ITB 2011 1
  • 2. • Decrease and conquer: metode desain algoritma dengan mereduksi persoalan menjadi beberapa sub- persoalan yang lebih kecil, tetapi selanjutnya hanya memproses satu sub-persoalan saja. • Berbeda dengan divide and conquer yang memproses semua sub-persoalan dan menggabung semua solusi setiap sub-persoalan. 2
  • 3. • Decrease and conquer terdiri dari dua tahapan: 1. Decrease: mereduksi persoalan menjadi beberapa persoalan yang lebih kecil (biasanya dua sub- persoalan). 2. Conquer: memproses satu sub-persoalan secara rekursif. • Tidak ada tahap combine dalam decrease and conquer. 3
  • 4. • Tiga varian decrease and conquer: 1. Decrease by a constant: ukuran instans persoalan direduksi sebesar konstanta yang sama setiap iterasi algoritma. Biasanya konstanta = 1. 2. Decrease by a constant factor: ukuran instans persoalan direduksi sebesar faktor konstanta yang sama setiap iterasi algoritma. Biasanya faktor konstanta = 2. 3. Decrease by a variable size: ukuran instans persoalan direduksi bervariasi pada setiap iterasi algoritma. 4
  • 5. Decrease by a Constant Persoalan berukuran n Sub-persoalan berukuran n – 1 Solusi Sub-persoalan Solsi Persoalan semula 5
  • 6. • Contoh 1: Persoalan perpangkatan an Dengan metode decrease and conquer: Kompleksitas waktu (berdasarkan jumlah operasi kali): Bila diselesaikan: T(n) = T(n – 1) + 1 = …. = O(n) sama seperti algoritma brute-force.         0 , 1 ) 1 ( 0 , 0 ) ( n n T n n T         0 , 0 , 1 1 n a a n a n n 6
  • 7. function exp(a : real; n : integer)  real Deklarasi k : integer Algoritma: if n = 0 then return 1 else return exp(a, n – 1) * a endif 7
  • 8. • Contoh 2: Selection sort Misalkan tabel a berisi elemen-elemen berikut: 4 12 3 9 1 21 5 2 Langkah-langkah pengurutan dengan Selection Sort: 4 12 3 9 1 21 5 2 1 12 3 9 4 21 5 2 1 2 3 9 4 21 5 12 1 2 3 9 4 21 5 12 1 2 3 4 9 21 5 12 1 2 3 4 5 21 9 12 1 2 3 4 5 9 12 21 1 2 3 4 5 9 12 21 1 2 3 4 5 9 12 21 8
  • 9. • Kompleksitas waktu algoritma Selection Sort: T(n) = waktu pembagian + waktu pemanggilan rekurens Selection Sort untuk bagian tabel kanan yang berukuran n elemen.         1 , ) 1 ( 1 , ) ( n cn n T n a n T Persamaan pada bagian rekurensi bila diselesaikan menghasilkan T(n) = O(n2). 9
  • 10. Decrease by a Constant Factor Persoalan berukuran n Sub-persoalan berukuran n/2 Solsi Sub-persoalan Solsi Persoalan semula 10
  • 11. • Contoh 4: Binary search Kondisi awal: larik A sudah terurut menaik K adalah nilai yang dicari i mid j ½ bagian kiri ½ bagian kanan Jika elemen tengah (mid)  k, maka pencarian dilakukan hanya pada setengah bagian larik (kiri atau kanan) 11 Ukuran persoalan selalu berkurang sebesar setengah ukuran semula. Hanya setengah bagain yang diproses, setengah bagian lagi tidak.
  • 12. procedure bin_search(input A : ArrayOfInteger; input i, j : integer; input K : integer; output idx : integer) Deklarasi mid : integer Algoritma: if j > i then { ukuran larik sudah 0} idx  -1 { k tidak ditemukan } else mid  (i + j)/2 if A(mid) = k then { k ditemukan } idx  mid { indeks elemen larik yang bernilai = K } else if K < A(mid then bin_search(A, mid + 1, j, K, idx) else bin_search(A, i, mid - 1 , K, idx) endif endif endif 12
  • 13. • Jumlah operasi perbandingan: • Relasi rekursif tsb diselesaikan sbb: T(n) = 1 + T(n/2) = 1 + (1 + T(n/4)) = 2 + T(n/4) = 2 + (1 + T(n/8)) = 3 + T(n/8) = … = j + T(n/2j) Asumsi: n = 2j  j = 2log n T(n) = 2log n + T(1) = 2log n + (1 + T(0)) = 1 + 2log n = O(2log n)        0 , ) 2 / ( 1 0 , 0 ) ( n n T n n T 13
  • 14. • Contoh 5: Interpolation Search - Analog dengan pencarian data di dalam kamus dengan cara perkiraan letak. - Kondisi awal: larik A sudah terurut menaik K adalah nilai yang dicari 14
  • 16. procedure interpolation_search(input A : ArrayOfInteger; input i, j : integer; input K : integer; output idx : integer) Deklarasi mid : integer Algoritma: if j > i then { ukuran larik sudah 0} idx  -1 { K tidak ditemukan } else mid  i + (j – i) *(K – A(i))/ (A(j) – A (i)) if A(mid) = x then { K ditemukan } idx  mid { indeks elemen larik yang bernilai = K } else if K < A(mid then interpolation_search(A, mid + 1, j, K, idx) else interpolation_search(A, i, mid - 1 , K, idx) endif endif endif 16
  • 17. • Kompleksitas algoritma interpolation search: - Kasus terburuk: O(n), untuk sembarang distribusi data - Kasus terbaik: O(log log n), jika data di dalam senarai terdistribusi uniform 17
  • 18. • Contoh 6 (Mencari koin palsu). Diberikan n buah koin yang identik, satu diantaranya palsu. Asumsikan koin yang palsu mempunyai berat yang lebih ringan daripada koin asli. Untuk mencari yang palsu, disediakan sebuah timbangan yang teliti. Carilah koin yang palsu dengan cara penimbangan. 18
  • 19. Algoritma decrease and conquer: 1. Bagi himpunan koin menjadi dua sub-himpunan, masing- masing n/2 koin. Jika n ganjil, maka satu buah koin tidak dimasukkan ke dalam kedua sub-himpunan. 2. Timbang kedua sub-himpunan dengan neraca. 3. Jika beratnya sama, berarti satu koin yang tersisa adalah palsu. 4. Jika beratnya tidak sama, maka ulangi proses untuk sub- himpunan yang beratnya lebih ringan (salah satu koin di dalamnya palsu). 19
  • 20. • Ukuran persoalan selalu berkurang dengan faktor setengah dari ukuran semula. Hanya setengah bagian yang diproses, setengah bagian yang lain tidak diproses. • Jumlah penimbangan yang dilakukan adalah: • Penyelesaian relasi rekurens T(n) mirip seperti binary search: T(n) = 1 + T(n/2) = …. + O(2 log n)          1 , ) 2 / ( 1 1 , 0 ) ( n n T n n T 20
  • 21. Decrease by a Varible Size • Contoh 7: Menghitung median dan Selection Problem. – Selection problem: mencari elemen terkecil ke-k di dalam sebuah senarai beranggotan n elemen. – Jika k = 1  elemen paling kecil (minimum) – Jika k = n  elemen paling besar (maksimum) – Jika k = n/2  elemen median Bagaimana mencari median dari senarai yang tidak terurut namun tidak perlu mengurutkan senarai terlebih dahulu? 21
  • 22. Algoritmanya: 1. Lakukan partisi pada senarai seperti proses partisi pada algoritma Quick Sort. Partisi menghasilakn setengah elemen senarai lebih kecil atau sama dengan pivot p dan setengah bagian lagi lebih besar dari pivot p. 2. Misalkan s adalah posisi pemmartisian. Jika s = n/2, maka pivot p adalah nilai median yang dicari Jika s > n/2, maka median terdapat pada setengah bagian kiri Jika s < n/2, maka median terdapat pada setengah bagian kanan             p i i p i i n s s a a p a a     1 1 1 22
  • 23. • Contoh: Temukan median dari 4, 1, 10, 9, 7, 12, 8, 2, 15. pada contoh ini, k = 9/2 = 5, sehingga persoalannya adalah mencari elemen terkecil ke-5 di dalam senarai. Partisi senarai dengan memilih elemen pertama sebagai pivot: 4 1 10 9 7 12 8 2 15 Hasil partisi: 2 1 4 9 7 12 8 10 15 Karena s = 3 < 5, kita memproses setengah bagian kanan: 9 7 12 8 10 15 8 7 9 12 10 15 Karena s = 6 > 5, kita memproses setengah bagian kiri: 8 7 7 8 23 Sekarang s = k = 5  stop. Jadi median = 8
  • 24. • Kompleksitas algoritma: • Solusi dari relasi rekurens tersebut adalah: T(n) = T(n/2) + cn = … = O(n) 24        1 , ) 2 / ( 1 , ) ( n cn n T n a n T