Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Design and Analysis Algorithm Pertemuan 05. Algoritma Brute Force 1.

Presentasi serupa


Presentasi berjudul: "Design and Analysis Algorithm Pertemuan 05. Algoritma Brute Force 1."— Transcript presentasi:

1 Design and Analysis Algorithm Pertemuan 05

2 Algoritma Brute Force 1

3 Definisi Brute Force  Brute force : pendekatan straight forward untuk memecahkan suatu masalah  Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung, dan jelas (obvious way)

4 Contoh-contoh (Berdasarkan pernyataan masalah)  Mencari elemen terbesar (terkecil)  Persoalan: Diberikan sebuah array yang beranggotakan n buah bilangan bulat (a 1, a 2,..., a n ).Carilah elemen terbesar di dalam array tersebut.  Algoritma brute force: bandingkan setiap elemen array untuk menemukan elemen terbesar  Kompleksitas O(n)

5 Contoh-contoh (Berdasarkan pernyataan masalah)  Mencari elemen terbesar (terkecil)

6 Contoh-contoh (Berdasarkan pernyataan masalah)  Pencarian beruntun (Sequential Search)  Persoalan: Diberikan array yang berisi n buah bilangan bulat (a 1, a 2,..., a n ). Carilah nilai x di dalam array tersebut. Jika x ditemukan, maka keluarannya adalah indeks elemen array, jika x tidak ditemukan, maka keluarannya adalah 0.  Algoritma brute force (sequential serach): setiap elemen array dibandingkan dengan x. Pencarian selesai jika x ditemukan atau elemen array sudah habis diperiksa.  Kompleksitas O(n)

7 Contoh-contoh (Berdasarkan pernyataan masalah)  Pencarian beruntun (sequential search)

8 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Menghitung a n (a > 0, n adalah bilangan bulat tak-negatif)  Definisi: a n = a x a x... x a (n kali), jika n>0 = 1, jika n = 0  Algoritma brute force: kalikan 1 dengan a sebanyak n kali  Kompleksitas O(n)

9 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Menghitung pangkat

10 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Menghitung n! (n bilangan bulat tak-negatif) Definisi: n!=1 ×2×3×...×n, jika n>0 = 1, jika n = 0  Algoritma brute force: kalikan n buah bilangan, yaitu 1, 2, 3,..., n, bersama-sama  Kompleksitas O(n)

11 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Menghitung faktorial

12 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Mengalikan dua buah matriks, A dan B Definisi: Misalkan C = A × B dan elemen- elemen matrik dinyatakan sebagai c ij, a ij, dan b ij  Algoritma brute force: hitung setiap elemen hasil perkalian satu per satu, dengan cara mengalikan dua vektor yang panjangnya n.

13 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Mengalikan dua buah matriks

14 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Menemukan semua faktor dari bilangan bulat n (selain dari 1 dan n itu sendiri). Definisi: Bilangan bulat a adalah faktor dari bilangan bulat b jika a habis membagi b.  Algoritma brute force: bagi n dengan setiap i = 2, 3,..., n – 1. Jika n habis membagi i, maka I adalah faktor dari n.  Kompleksitas O(n)

15 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Menemukan faktor bilangan bulat n

16 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Uji keprimaan Persoalan: Diberikan sebuah bilangan bilangan bulat positif. Ujilah apakah bilangan tersebut merupakan bilangan prima atau bukan. Definisi: bilangan prima adalah bilangan yang hanya habis dibagi oleh 1 dan dirinya sendiri. Algoritma brute force: bagi n dengan 2 sampai n–1. Jika semuanya tidak habis membagi n, maka n adalah bilangan prima - Kompleksitas O(n)  Perbaikan: cukup membagi dengan 2 sampai √n saja

17 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Uji bilangan prima

18 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Algoritma Pengurutan Brute Force, Algoritma apa yang paling lempang dalam memecahkan masalah pengurutan? Bubble sort dan selection sort!  Kedua algoritma ini memperlihatkan teknik brute force dengan jelas sekali.

19 Contoh-contoh (Berdasarkan definisi konsep yang terlibat) Bubble Sort Mulai dari elemen ke-n:  1. Jika s n < s n-1, pertukarkan  2. Jika s n-1 < s n-2, pertukarkan...  3. Jika s 2 < s 1, pertukarkan  1 kali pass Ulangi lagi untuk pass ke-I Kompleksitas O(n 2 )

20 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Bubble sort

21 Contoh-contoh (Berdasarkan definisi konsep yang terlibat) Selection Sort Pass ke –1:  1.Cari elemen terbesar mulai di dalam s[1..n]  2.Letakkan elemen terbesar pada posisi n (pertukaran) Pass ke-2:  1.Cari elemen terbesar mulai di dalam s[1..n - 1]  2.Letakkan elemen terbesar pada posisi n - 1 (pertukaran)  Ulangi sampai hanya tersisa 1 elemen  Kompleksitas O(n 2 )

22 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Selection sort

23 Contoh-contoh (Berdasarkan definisi konsep yang terlibat) Mengevaluasi polinom  Persoalan: Hitung nilai polinom p(x)=a n x n +a n-1 x n a 1 x +a 0 untuk x = t.  Algoritma brute force: x i dihitung secara brute force (seperti perhitungan a n ). Kalikan nilai x i dengan a i, lalu jumlahkan dengan suku-suku lainnya.

24 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Analisa polinom

25 Contoh-contoh (Berdasarkan definisi konsep yang terlibat)  Perbaikan (improve)

26 Karakteristik Algoritma Brute Force  Algoritma brute force umumnya tidak “cerdas” dan tidak cepat, karena ia membutuhkan jumlah langkah yang besar dalam penyelesaiannya.  Kata “force” mengindikasikan “tenaga” ketimbang “otak”  Kadang-kadang algoritma brute force disebut juga algoritma naif (naïve algorithm).

27 Karakteristik Algoritma Brute Force  Algoritma brute force lebih cocok untuk masalah yang berukuran kecil.  Pertimbangannya:  sederhana,  Implementasinya mudah  Algoritma brute force sering digunakan sebagai basis pembanding dengan algoritma yang lebih cepat.

28 Karakteristik Algoritma Brute Force  Meskipun bukan metode yang cepat, hampir semua masalah dapat diselesaikan dengan algoritma brute force.  Sukar menunjukkan masalah yang tidak dapat diselesaikan dengan metode brute force. Bahkan, ada masalah yang hanya dapat diselesaikan dengan metode brute force.  Contoh: mencari elemen terbesar di dalam array.

29 Tugas Buatlah algoritma berikut dengan kompleksitasnya  Pencocokan String (String Matching)  Mencari pasangan titik yang jaraknya terdekat (Closest pairs)  Travelling Salesman Problem (TSP)  Knapsack Problem

30 Click to edit subtitle style


Download ppt "Design and Analysis Algorithm Pertemuan 05. Algoritma Brute Force 1."

Presentasi serupa


Iklan oleh Google