Perbandingan algoritma bruteforce , divide and conquer dan         decrease and conquer               Ervin yohannes (0910...
Brute force
Penjelasan• Brute force adalah sebuah pendekatan  yang sangat jelas(straightforward) untuk  memecahkan suatu persoalan, bi...
Contoh• Contoh algoritma yang menggunakan brute force antara lain :  buble sort, convex hull, closest pair, travelling sal...
Pseudocode•   function pangkat(input a, n : integer) integer•   { Menghitung an, a > 0 dan n bilangan bulat tak-negatif•  ...
Cara kerja• Secara konseptual, brute force bekerja sebagai  berikut:• Mula-mula pattern dicocokkan pada awal teks.• Dengan...
Keunggulan brute force• Metode brute force dapat digunakan untuk  memecahkan hampir sebagian besar masalah (wide  applicab...
Kelemahan brute force• Metode brute force jarang menghasilkan  algoritma yang mangkus.• Beberapa algoritma brute force lam...
Kompleksitas dan running           time• Kompleksitas algoritma ini adalah O(n).• Running time brute force adalah : n-1  m...
Divide and Conquer
Penjelasan• Strategi Divide dan Conquer memecah  masalah menjadi submasalah-submasalah  independen yang lebih kecil sehing...
Skema umum algoritma    divide and conquer• Procedure DNC ( i,j : integer )•    Var K : integer ;•         If SMALL (i,j) ...
Cara kerja• SMALL adalah fungsi yang mengirim  BOOLEAN, menentukan apakah ukuran telah  cukup kecil sehingga solusi dapat ...
Teknik divide and conquer
Keunggulan dan           kelemahan• keunggulan:• -Umumnya meningkatkan pada Brute Force dengan  satu basis efisiensi kelas...
Kompleksitas dan running           time• kompleksitas algoritma O(n ²log n).• Running time algoritma divide and  conquer  ...
Decrease and conquer
Penjelasan• metode desain algoritma dengan  mereduksi persoalan menjadi beberapa  sub-persoalan yang lebih kecil, tetapi  ...
Jenis – jenis decrease and          conquer• Decrease by a constant  Ukuran dari sebuah instansi dikurangi oleh  ketetapan...
Cara kerja• Decrease: mereduksi persoalan menjadi  beberapa persoalan yang lebih kecil  (biasanya dua sub-persoalan).• Con...
Decrease by one and  decrease by half
Kompleksitas dan running           time• Kompleksitas algoritma decrease and  conquer adalah O(n2)• Running time algoritma...
Kelemahan dan kelebihan• -Dapat diimplementasikan baik top down• (rekursif) atau bawah ke atas (tanpa rekursi)• -Seringkal...
Terima kasih
Upcoming SlideShare
Loading in...5
×

Perbandingan algoritma brute force , divide and conquer

4,541

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,541
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
183
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Perbandingan algoritma brute force , divide and conquer

  1. 1. Perbandingan algoritma bruteforce , divide and conquer dan decrease and conquer Ervin yohannes (0910680055)
  2. 2. Brute force
  3. 3. 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.
  4. 4. 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
  5. 5. 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:• hasil 1• for k 1 to n do• hasil hasil * a• endfor• return hasil•
  6. 6. 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.
  7. 7. 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).
  8. 8. 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.
  9. 9. Kompleksitas dan running time• Kompleksitas algoritma ini adalah O(n).• Running time brute force adalah : n-1 multiplications
  10. 10. Divide and Conquer
  11. 11. 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.
  12. 12. 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)
  13. 13. 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.
  14. 14. Teknik divide and conquer
  15. 15. 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
  16. 16. 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
  17. 17. Decrease and conquer
  18. 18. 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.
  19. 19. 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.
  20. 20. 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.
  21. 21. Decrease by one and decrease by half
  22. 22. 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
  23. 23. 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)
  24. 24. Terima kasih
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×