Perbandingan algoritma brute force , divide and conquer

24
Perbandingan algoritma brute force , divide and conquer dan decrease and conquer Ervin yohannes (0910680055)

description

comparing brute force algorithms, divide and conquer algorithm, and decrease and conquer algorithms.advantage and weakness each algorithm indonesian version.

Transcript of Perbandingan algoritma brute force , divide and conquer

Page 1: Perbandingan algoritma brute force , divide and conquer

Perbandingan algoritma brute force , divide and conquer dan decrease and conquer

Ervin yohannes (0910680055)

Page 2: Perbandingan algoritma brute force , divide and conquer

Brute force

Page 3: Perbandingan algoritma brute force , divide and conquer

Penjelasan

• Brute force adalah sebuah pendekatan yang sangat jelas(straightforward) untuk memecahkan suatu persoalan, biasanya didasarkan pada problem statement dan definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas.

Page 4: Perbandingan algoritma brute force , divide and conquer

Contoh

• Contoh algoritma yang menggunakan brute force antara lain : buble sort, convex hull, closest pair, travelling salesman problem, knapsack, string matching, dan selection sort.

• Contoh-contoh masalah yang dipecahkan secara brute force:

• Menghitung an (a > 0, n adalah bilangan bulat tak-negatif)•  • an = a × a × … × a (sebanyak n kali) , jika n > 0• = 1 , jika n = 0•  • Algoritma: kalikan 1 dengan a sebanyak n kali

Page 5: Perbandingan algoritma brute force , divide and conquer

Pseudocode • function pangkat(input a, n : integer)integer• { Menghitung an, a > 0 dan n bilangan bulat tak-negatif• Masukan: a, n• Keluaran: nilai perpangkatan.• }• Deklarasi• k, hasil : integer•  • Algoritma:• hasil1• for k1 to n do• hasilhasil * a• endfor• return hasil•  

Page 6: Perbandingan algoritma brute force , divide and conquer

Cara kerja

• Secara konseptual, brute force bekerja sebagai berikut:• Mula-mula pattern dicocokkan pada awal teks.• Dengan bergerak dari kiri ke kanan, bandingkan setiap

karakter di dalam pattern dengan karakter yang bersesuaian di dalam teks sampai:

• semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau

• dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil)

• Bila pattern belum ditemukan kecocokannya dan teks belum habis, geser pattern satu karakter ke kanan dan ulangi langkah 2.

Page 7: Perbandingan algoritma brute force , divide and conquer

Keunggulan brute force

• Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability).

• Metode brute force sederhana dan mudah dimengerti.• Metode brute force menghasilkan algoritma yang layak

untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks.

• Metode brute force menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list).

Page 8: Perbandingan algoritma brute force , divide and conquer

Kelemahan brute force

• Metode brute force jarang menghasilkan algoritma yang mangkus.

• Beberapa algoritma brute force lambat sehingga tidak dapat diterima.

• Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.

Page 9: Perbandingan algoritma brute force , divide and conquer

Kompleksitas dan running time

• Kompleksitas algoritma ini adalah O(n).• Running time brute force adalah : n-1

multiplications

Page 10: Perbandingan algoritma brute force , divide and conquer

Divide and Conquer

Page 11: Perbandingan algoritma brute force , divide and conquer

Penjelasan

• Strategi Divide dan Conquer memecah masalah menjadi submasalah-submasalah independen yang lebih kecil sehingga solusi submasalah-submasalah dapat diperoleh secara mudah, solusi submasalah-submasalah digabung menjadi solusi seluruh masalah. Contoh algoritma yang menggunakan divide and conquer antara lain : merge sort, quick sort, binary tree transversals, multiplication of large integers, dan matrix multiplication : strassen’s algorithm.

Page 12: Perbandingan algoritma brute force , divide and conquer

Skema umum algoritma divide and conquer

• Procedure DNC ( i,j : integer )• Var K : integer ;• If SMALL (i,j) then SOLVE (i,j)• Else begin• K : = DIVIDE (i,j)

Page 13: Perbandingan algoritma brute force , divide and conquer

Cara kerja

• SMALL adalah fungsi yang mengirim BOOLEAN, menentukan apakah ukuran telah cukup kecil sehingga solusi dapat diperoleh. Ukuran dinyatakan sebagai telah berukuran kecil bergantung masalah.

• DIVIDE adalah fungsi membagi menjadi 2 bagian pada posisi K. Biasanya bagian berukuran sama.

• COMBINE adalah fungsi menggabungkan solusi X dan Y submasalah. Solusi diperoleh dengan memanggil prosedur rekursif DNC.

Page 14: Perbandingan algoritma brute force , divide and conquer

Teknik divide and conquer

Page 15: Perbandingan algoritma brute force , divide and conquer

Keunggulan dan kelemahan

• keunggulan:• -Umumnya meningkatkan pada Brute Force dengan satu

basis efisiensi kelas• -Mudah untuk menganalisis menggunakan Recurrence

Templates• -Idealnya cocok untuk perhitungan paralel

• kelemahan:• -Sering membutuhkan rekursi, yang menyebabkan

overhead• -Dapat diterapkan dan inferior untuk solusi algoritmik yang

lebih sederhana

Page 16: Perbandingan algoritma brute force , divide and conquer

Kompleksitas dan running time

• kompleksitas algoritma O(n ²log n).• Running time algoritma divide and

conquer

T(n) = 2*T(n/2) + 1

= n-1

Page 17: Perbandingan algoritma brute force , divide and conquer

Decrease and conquer

Page 18: Perbandingan algoritma brute force , divide and conquer

Penjelasan

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

Page 19: Perbandingan algoritma brute force , divide and conquer

Jenis – jenis decrease and conquer

• Decrease by a constant

Ukuran dari sebuah instansi dikurangi oleh ketetapan yang sama (biasanya satu) pada masing-masing algoritma.

• Decrease by a constant factor

Ukuran dari sebuah masalah instansi dikurangi oleh factor ketetapan yang sama (biasanya 2) pada masing-masing iterasi dari algoritma.

• Variable size decrease

Sebuah ukuran pola pengurangan yang berbeda dari satu iterasi ke iterasi lainnya.

Page 20: Perbandingan algoritma brute force , divide and conquer

Cara kerja

• Decrease: mereduksi persoalan menjadi beberapa persoalan yang lebih kecil (biasanya dua sub-persoalan).

• Conquer: memproses satu sub-persoalan secara rekursif. Tidak ada tahap combine dalam decrease and conquer.

Page 21: Perbandingan algoritma brute force , divide and conquer

Decrease by one and decrease by half

Page 22: Perbandingan algoritma brute force , divide and conquer

Kompleksitas dan running time

• Kompleksitas algoritma decrease and conquer adalah O(n2)

• Running time algoritma decrease and conquer• Decrease by one• T(n) = T(n-1) + 1 = n-1• Decrease by constant factor• T(n) = T(n/a) + a-1• = (a-1) n• = when a = 2

Page 23: Perbandingan algoritma brute force , divide and conquer

Kelemahan dan kelebihan

• -Dapat diimplementasikan baik top down• (rekursif) atau bawah ke atas (tanpa rekursi)• -Seringkali sangat efisien ( O (log n))• -Mengarah ke suatu bentuk kuat dari grafik traversal• (Breadth and Depth First Search)

• kelemahan:• -Kurang berlaku secara luas (terutama penurunan

oleh• faktor konstan)

Page 24: Perbandingan algoritma brute force , divide and conquer

Terima kasih