design and analysis of algorithm - simulation...

64
Design and Analysis of Algorithm Week 6: Brute Force Algorithm Part 1: Design Strategy Dr. Putu Harry Gunawan 1 1 Department of Computational Science School of Computing Telkom University Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 1 / 43

Upload: truongkiet

Post on 04-Apr-2018

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Design and Analysis of AlgorithmWeek 6: Brute Force Algorithm Part 1: Design Strategy

Dr. Putu Harry Gunawan1

1Department of Computational ScienceSchool of ComputingTelkom University

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 1 / 43

Page 2: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 2 / 43

Page 3: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Exercise 1

Tentukanlah kompleksitas waktu asimtotik menggunakan metodekarakteristik.Exercise: diberikan relasi rekursi dari masalah Barisan Fibonacci berikut

T (n) =

0, n = 0

1, n = 1

T (n − 1) + T (n − 2), n ≥ 2

(1.1)

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 3 / 43

Page 4: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Exercise 2

Tentukanlah kompleksitas waktu asimtotik menggunakan metodekarakteristik.Exercise: diberikan relasi rekursi berikut

T (n) =

0, n = 0

1, n = 1

2, n = 2

7T (n − 1)− 15T (n − 2) + 9T (n − 3), n ≥ 3

(1.2)

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 4 / 43

Page 5: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Exercise 3

Tentukanlah kompleksitas waktu asimtotik menggunakan metodekarakteristik.Exercise: diberikan relasi rekursi berikut (QUIZ II semster lalu)

T (n) =

0, n = 0110 , n = 1

49T(n7

)− 1

100n, n ≥ 2

(1.3)

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 5 / 43

Page 6: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Teorema Master

Pembahasan menggunakan metode karakteristik untuk algoritma rekursifpada bab sebelumnya hanya berlaku untuk kasus umum. Kasus khususyakni untuk strategi Divide & Conquer, Kompleksitas waktu asimtotikdapat dicari menggunakan teorema Master

Theorem (Master)

Untuk suatu general Divide and Conquer recurrence:

T (n) = aT(n

b

)+ f (n) (1.4)

Jika f (n) ∈ O(nd) dengan d ≥ 0, dalam persamaan general Divide andConquer recurrence di atas, maka

T (n) ∈

O(nd) a < bd

O(nd log n) a = bd

O(nb log a) a > bd

(1.5)

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 6 / 43

Page 7: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Teorema Master

ExerciseGunakan Teorema Master untuk mencari kompleksitas waktu asimtotikpada relasi rekursi untuk masalah Minimum dan Maksimum di bawah ini:

T (n) =

0, n = 1

1, n = 2

2T(n2

)+ 2, n > 2

(1.6)

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 7 / 43

Page 8: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 8 / 43

Page 9: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Introduction

Setelah pemaparan analisi algoritma, maka akan dilanjutkan denganstrategi mendesain sutau algoritma. Bab ini ditujukan untuk berbagaimacam strategi yang ada pada algoritma tipe Brute Force. Berikut adalahdefinisi dari Brute Force:

Definition (Levitin)

Brute force is a straightforward approach to solving a problem, usuallydirectly based on the problem statement and definitions of the conceptsinvolved.

Definition (Levitin)

Brute force adalah pendekatan yang langsung/lempeng untukmenyelesaikan suatu masalah, biasanya secara langusng sesuai denganpernyataan masalah dan definisi dari konsep yang ada.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 9 / 43

Page 10: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Introduction

Kata ”force” mempengaruhi definisi strategi yaitu suatumesin/robot/komputer bukan sesutu yang berbau pintar( intelligent). ”Just do it!” dapat merupakan cara lain untuk mendeskripsikan pengertiandari brute force. dan tentu saja strategi brute-force merupakan strategiyang paling mudah diaplikasikan.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 43

Page 11: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Introduction

Sebagai contoh, misalkan masalah eksponensial: Hitung an untuka ∈ R− {0} dan n ∈ Z+. Meskipun masalah ini terlihat trivial, akanatetapi masalah ini dapat digunakan sebagai ilustrasi dari mendesain strategisuatu algoritma, dalam hal ini bisa dalam brute force. Secara definisi

an = a× a× · · · × a︸ ︷︷ ︸n kali

(2.1)

Dari definisi diatas, maka agoritma brute force akan mengalikan asebanyak n kali. Dan, tentu saja dengan cara ini akan mendapatkan O(n).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 11 / 43

Page 12: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Introduction

Jika tidak menggunakan brute force, maka waktu asimtotiknya dapatdiperkecil seperti pada contoh -contoh berikut berikut:

Example

Bilangan n dapat direpresentasikan menjadi bilangan 2 pangkat

n = 2k1 + 2k2 + · · ·+ 2km

sehingga

an = a2k1 + a2

k2 + · · ·+ a2km

dengan kompleksitas waktu yang digunakan adalah O(log n). Sebagaicontoh hitung a25, maka (25)10 = (11001)2 yang dapat direpresentasikanmenjadi bilangan biner sehingga:

a25 = a4 + a3 + 0 + 0 + a0.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 12 / 43

Page 13: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Introduction

Example

Contoh lain dengan kompleksitas waktu O(log n) adalah

f (x) = an =

{(an/2)(an/2) (n mod 2 = 0),

a(an−12 )(a

n−12 ) otherwise,

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 13 / 43

Page 14: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Introduction

Example

Contoh lain bentuk rekursif dengan kompleksitas waktu O(log n) adalah

f (x) = an =

{a(a2)

n−12 if n ganjil,

(a2)n2 if n genap,

Dari contoh di atas dapat kita simpulkan bahwa, brute force, memecahkanmasalah dengan sangat sederhana, langsung, dan dengan cara yang jelas(obvious way).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 43

Page 15: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 15 / 43

Page 16: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 1

Menghitung n! untuk n ∈ Z+ + {0}. Algoritma untuk menghitungfaktorial adalah

n! =

{1, n = 0

n × (n − 1)× · · · × 2× 1, n ≥ 1

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 16 / 43

Page 17: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 2

Menghitung perkalian dua buah matrix yang berukuran n × n.

Misalkan C = AB dan elemen-elemen matrik dinyatakan sebagai cij ,aij , dan bij

cij = ai1b1j + ai2b2j + · · ·+ ainbnj =n∑

k=1

aikbkj

Algoritma: hitung setiap elemen hasil perkalian satu persatu, dengancara mengalikan dua vektor yang panjangnya n.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 17 / 43

Page 18: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 3

Menemukan semua faktor dari bilangan bulat n selain 1 dan n itu sendiri.

int tag ;int∗ f a c t o r s ( int n ){

int a [ 1 0 0 00 00 ] ;for ( int i =1; i<=n /2 ; i++)

if ( n%i==0)a[++tag ]= i ;

a[++tag ]=n ;return ( a ) ;

}

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 18 / 43

Page 19: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 4

Mencari elemen terbesar atau terkecil.

struct p a i r getMinMax ( int a r r [ ] , int n ){

struct p a i r minmax ;int i ;

/*If there is only one element then return it as min and max both*/

if ( n == 1){

minmax .max = a r r [ 0 ] ;minmax . min = a r r [ 0 ] ;return minmax ;

}

/* If there are more than one elements , then initialize min

and max*/

if ( a r r [ 0 ] > a r r [ 1 ] ){

minmax .max = a r r [ 0 ] ;minmax . min = a r r [ 1 ] ;

}Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 19 / 43

Page 20: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 4 Cont

else

{minmax .max = a r r [ 1 ] ;minmax . min = a r r [ 0 ] ;

}

for ( i = 2 ; i<n ; i++){

if ( a r r [ i ] > minmax .max)minmax .max = a r r [ i ] ;

else if ( a r r [ i ] < minmax . min )minmax . min = a r r [ i ] ;

}

return minmax ;}

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 43

Page 21: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 5

Sequential Search:Diberikan n buah bilangan bulat yang dinyatakan sebagain{a1, a2, · · · , an}. Carilah apakah x terdapat di dalam himpunan bilanganbulat tersebut. Jika x ditemukan, maka lokasi index elemen yang bernilaix disimpan di dalam peubah idx. Jika x tidak terdapat di dalamhimpunan tersebut, maka idx diisi dengan nilai 0.

Sequential/Linear Search ( Array A, Value x)

Step 1: Set i to 1

Step 2: if i > n then go to step 7

Step 3: if A[i] = x then go to step 6

Step 4: Set i to i + 1

Step 5: Go to Step 2

Step 6: Print Element x Found at index i and go to step 8

Step 7: Print element not found

Step 8: Exit

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 21 / 43

Page 22: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 6

Bubble Sort:

Apa metode yang paling lempeng dalam memecahkan masalahpengurutan? Jawabannya adalah algoritma bubble sort.

Algoritma bubble sort mengimplementasikan teknik brute forcedengan jelas sekali

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 22 / 43

Page 23: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 6 Cont

beg in Bubb leSor t ( l i s t )

for a l l e l ement s o f l i s tif l i s t [ i ] > l i s t [ i +1]

swap ( l i s t [ i ] , l i s t [ i +1])end if

end for

return l i s t

end Bubb leSor t

Bubble sort sendiri merupakan algoritma pengurutan data yang palingsederhana. Algoritma ini membandingkan elemen bertetanggan danmenukarkannya jika tidak dalam urutan yang benar. Algoritma ini tidakcocok digunakan untuk data set yang besar karena memiliki waktuterburuk (worst case complexity) O(n2).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 23 / 43

Page 24: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 7

Uji keprimaan:Persoalan: Diberikan sebuah bilangan bulat positif. Ujilah apakahbilangan tersebut merupakan bilangan prima atau bukan.

function is_prime(n)

if n 1

return false

else if n 3

return true

else if n mod 2 = 0 or n mod 3 = 0

return false

let i 5

while i * i n

if n mod i = 0 or n mod (i + 2) = 0

return false

i i + 6

return true

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 24 / 43

Page 25: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 8

Menghitung nilai polinom secara brute forcePersolana: Hitung nilai polinom:

p(x) = anxn + an−1xn−1 + · · ·+ a1x + a0

pada titik x = x0.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 25 / 43

Page 26: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9

Pencocokan string:Persoalan : Diberikan teks ( text ), yaitu ( long ) string yang panjangnya nkarakter.

1 pattern, yaitu string dengan panjang m karakter ( m < n ) yang akandicari di dalam teks.

2 Kemudian, carilah lokasi pertama di dalam teks yang bersesuaiandengan pattern.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 26 / 43

Page 27: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 28: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 29: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 30: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 31: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 32: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 33: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 34: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 35: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 9 Cont

Example (String)

ExamplePattern : NOT

Teks : NOBODY NOTICED HIM

1 NOBODY NOTICED HIM

2 NOT

3 NOT

4 NOT

5 NOT

6 NOT

7 NOT

8 NOT

9 NOT

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Page 36: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 10

Mencari pasangan titik terdekat: Diberikan sembarang titik dalam 2D atau3D, lalu carilah dua pasang titik yang memiliki jarak terkecil. Contohdalam 2D lihat pada gambar berikut:

Figure : Contoh sebaran 6 titik pada domain kartesian.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 28 / 43

Page 37: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Example 10 Cont

Jarak dua buah titik di bidang 2-D dengan P1 = (x1, y1) danP2 = (x2, y2) dapat dicari menggunakan rumus Euclidian:

d(P1,P2) = ||P1 − P2|| =√

(x1 − x2)2 + (y1 − y2)2

Algoritma brute force:1. Hitung jarak setiap pasang titik.2. Pasangan titik yang memepunyai jarak terpendek itulah jawabnnya.

Algortma brute force akan menghitung sebanyak C (n, 2) = n (n−1)2

pasangan titik dan memeilih pasangan titik yang mempunyai jarakterkecil.Kompleksitas waktu algoritma ini adalah O(n2).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 29 / 43

Page 38: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 30 / 43

Page 39: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 40: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 41: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 42: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.

Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 43: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 44: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 45: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Karakteristik

Berikut adalah karakteristik algoritma brute force:

1 Algoritma brute force umumnya tidak ”cerdas” dan tidak mangkus, karenamembutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang -kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ).

2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karenaketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar,keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukanalgoritma yang lebih cerdas dan lebih mangkus.

3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanyalebih diperhitungkan dari pada ketidakmangkusannya.Algoritma brute force sering digunakan sebagai basis bila membandingkandengan beberapa alternatif algoritma yang mangkus.

4 Algoritma brute force seringkali lebih mudah diimplementasikan dari padaalgoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadangalgoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Page 46: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 32 / 43

Page 47: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kekuatan

Berikut akan diberikan beberapa kekuatan dan kelemahan darimenggunakan algoritma brute force. Kekuatan:

1 Metode brute force dapat digunakan untuk memecahkan hampirsebagian besar masalah ( wide applicability ).

2 Metode brute force sederhana dan mudah dimengerti.

3 Metode brute force menghasilkan algoritma yang layak untukbeberapa masalah penting seperti pencarian, pengurutan, pencocokanstring, perkalian matriks.

4 Metode brute force menghasilkan algoritma baku (standard) untuktugas - tugas komputasi seperti penjumlahan/perkalian n buahbilangan, menentukan elemen minimum atau maksimum di dalamtabel ( list ).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Page 48: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kekuatan

Berikut akan diberikan beberapa kekuatan dan kelemahan darimenggunakan algoritma brute force. Kekuatan:

1 Metode brute force dapat digunakan untuk memecahkan hampirsebagian besar masalah ( wide applicability ).

2 Metode brute force sederhana dan mudah dimengerti.

3 Metode brute force menghasilkan algoritma yang layak untukbeberapa masalah penting seperti pencarian, pengurutan, pencocokanstring, perkalian matriks.

4 Metode brute force menghasilkan algoritma baku (standard) untuktugas - tugas komputasi seperti penjumlahan/perkalian n buahbilangan, menentukan elemen minimum atau maksimum di dalamtabel ( list ).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Page 49: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kekuatan

Berikut akan diberikan beberapa kekuatan dan kelemahan darimenggunakan algoritma brute force. Kekuatan:

1 Metode brute force dapat digunakan untuk memecahkan hampirsebagian besar masalah ( wide applicability ).

2 Metode brute force sederhana dan mudah dimengerti.

3 Metode brute force menghasilkan algoritma yang layak untukbeberapa masalah penting seperti pencarian, pengurutan, pencocokanstring, perkalian matriks.

4 Metode brute force menghasilkan algoritma baku (standard) untuktugas - tugas komputasi seperti penjumlahan/perkalian n buahbilangan, menentukan elemen minimum atau maksimum di dalamtabel ( list ).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Page 50: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kekuatan

Berikut akan diberikan beberapa kekuatan dan kelemahan darimenggunakan algoritma brute force. Kekuatan:

1 Metode brute force dapat digunakan untuk memecahkan hampirsebagian besar masalah ( wide applicability ).

2 Metode brute force sederhana dan mudah dimengerti.

3 Metode brute force menghasilkan algoritma yang layak untukbeberapa masalah penting seperti pencarian, pengurutan, pencocokanstring, perkalian matriks.

4 Metode brute force menghasilkan algoritma baku (standard) untuktugas - tugas komputasi seperti penjumlahan/perkalian n buahbilangan, menentukan elemen minimum atau maksimum di dalamtabel ( list ).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Page 51: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kekuatan

Berikut akan diberikan beberapa kekuatan dan kelemahan darimenggunakan algoritma brute force. Kekuatan:

1 Metode brute force dapat digunakan untuk memecahkan hampirsebagian besar masalah ( wide applicability ).

2 Metode brute force sederhana dan mudah dimengerti.

3 Metode brute force menghasilkan algoritma yang layak untukbeberapa masalah penting seperti pencarian, pengurutan, pencocokanstring, perkalian matriks.

4 Metode brute force menghasilkan algoritma baku (standard) untuktugas - tugas komputasi seperti penjumlahan/perkalian n buahbilangan, menentukan elemen minimum atau maksimum di dalamtabel ( list ).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Page 52: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kelemahan

Sedangkan Kelemhan:

1 Metode brute force jarang menghasilkan algoritma yang mangkus.

2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima.

3 Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.

4 Ken Thompson ( salah seorang penemu Unix) mengatakan : ” Whenin doubt, use brute force ”, faktanya kernel Unix yang asli lebihmenyukai algoritma yang sederhana dan kuat ( robust ) daripadaalgoritma yang cerdas tapi rapuh.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Page 53: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kelemahan

Sedangkan Kelemhan:

1 Metode brute force jarang menghasilkan algoritma yang mangkus.

2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima.

3 Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.

4 Ken Thompson ( salah seorang penemu Unix) mengatakan : ” Whenin doubt, use brute force ”, faktanya kernel Unix yang asli lebihmenyukai algoritma yang sederhana dan kuat ( robust ) daripadaalgoritma yang cerdas tapi rapuh.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Page 54: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kelemahan

Sedangkan Kelemhan:

1 Metode brute force jarang menghasilkan algoritma yang mangkus.

2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima.

3 Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.

4 Ken Thompson ( salah seorang penemu Unix) mengatakan : ” Whenin doubt, use brute force ”, faktanya kernel Unix yang asli lebihmenyukai algoritma yang sederhana dan kuat ( robust ) daripadaalgoritma yang cerdas tapi rapuh.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Page 55: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Kelemahan

Sedangkan Kelemhan:

1 Metode brute force jarang menghasilkan algoritma yang mangkus.

2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima.

3 Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.

4 Ken Thompson ( salah seorang penemu Unix) mengatakan : ” Whenin doubt, use brute force ”, faktanya kernel Unix yang asli lebihmenyukai algoritma yang sederhana dan kuat ( robust ) daripadaalgoritma yang cerdas tapi rapuh.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Page 56: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 35 / 43

Page 57: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

References

References1 Anany, L. (2003). Introduction to the design and analysis of

algorithms. Villanova University.

2 https://www.quora.com/What-are-some-fast-algorithms-for-computing-the-nth-power-of-a-number

3 http://www.geeksforgeeks.org/maximum-and-minimum-in-an-array/

4

https://www.tutorialspoint.com/data structures algorithms/bubble sort algorithm.htm

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 36 / 43

Page 58: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

Outline

1 Review

2 Introduction and DefinitionsIntroduction and Definitions

3 Contoh-contoh algoritma brute forceContoh-contoh algoritma brute force

4 Karakteristik algoritma brute forceKarakteristik algoritma brute force

5 Advantages and Disadvantages of brute force AlgorithmAdvantages and Disadvantages of brute force Algorithm

6 ReferencesReferences

7 HomeworksHomeworks

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 37 / 43

Page 59: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

HM 1

Diberikan n titik pada daerah 2-D Euclidean, yaitu {p1, p2, · · · pn}.Buatlah algoritma brute force untuk menentukan titik paling bawah dalamdaerah 2-D Euclidean.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 38 / 43

Page 60: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

HM 2

Consider the problem of counting, in a given text, the number ofsubstrings that start with an A and end with a B. For example, there arefour such substrings in CABAAXBYA.

1 Design a brute-force algorithm for this problem and determine its effi-ciency class.

2 Design a more efficient algorithm for this problem.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 39 / 43

Page 61: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

HM 3

Word Find A popular diversion in the United States, word find (or wordsearch) puzzles ask the player to find each of a given set of words in asquare table filled with single letters. A word can read horizontally (left orright), vertically (up or down), or along a 45 degree diagonal (in any ofthe four directions) formed by consecutively adjacent cells of the table; itmay wrap around the tables boundaries, but it must read in the samedirection with no zigzagging. The same cell of the table may be used indifferent words, but, in a given word, the same cell may be used no morethan once. Write a computer program for solving this puzzle. (Seehttp://thewordsearch.com/ for more detail).

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 40 / 43

Page 62: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

HM 4

1 Design a brute-force algorithm for computing the value of apolynomial

p(x) = anxn + an−1xn−1 + · · ·+ a1x + a0

at a given point x0 and determine its worst-case efficiency class.

2 If the algorithm you designed is in Θ(n2), design a linear algorithm forthis problem.

3 Is it possible to design an algorithm with a better-than-linearefficiency for this problem?

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 41 / 43

Page 63: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

HM 5

Alternating disks You have a row of 2n disks of two colors, n dark and nlight. They alternate: dark, light, dark, light, and so on. You want to getall the dark disks to the right-hand end, and all the light disks to theleft-hand end. The only moves you are allowed to make are those thatinterchange the positions of two neighboring disks.

Design an algorithm for solving this puzzle and determine the number ofmoves it takes.

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 42 / 43

Page 64: Design and Analysis of Algorithm - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2017/02/Slide-DAA... · Gunakan Teorema Master untuk mencari kompleksitas

The end of week 6

Thank you for your attention!

Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 43 / 43