Transcript
Page 1: Chapter 3: Brute Force The Design and Analysis of Algorithms

Chapter 3: Brute

Force

The Design and Analysis of Algorithms

Page 2: Chapter 3: Brute Force The Design and Analysis of Algorithms

2

Chapter 3. Chapter 3. Brute Force Algorithms

Basic Idea

Brute Force Search and Sort

Brute Force String Matching

Closest Pair and Convex Hull Problems

Exhaustive Search

Conclusion

Page 3: Chapter 3: Brute Force The Design and Analysis of Algorithms

3

Basic Idea A straightforward approach to solve a

problem based on the problem’s statement and definitions of the concepts involved.

ExampleComputing an based on the definition of exponentiation:

an = a* a* a* …. * a

(a > 0, n a nonnegative integer)

Page 4: Chapter 3: Brute Force The Design and Analysis of Algorithms

4

Brute Force Search and Sort

Sequential Search O(n) Selection Sort O(n2) Bubble Sort O(n2)

Page 5: Chapter 3: Brute Force The Design and Analysis of Algorithms

5

Brute Force String MatchingPattern: program

Text:

Write a program. program program … program

Comparisons:

(n*m) in the worst possible case

(n+m) (n) in the average case.

Page 6: Chapter 3: Brute Force The Design and Analysis of Algorithms

6

Closest Pair Problem

Find the two closest points in a set of n points in k-dimensional space. Algorithm ClosestPairPoints (P)

dmin ← ∞for i ← 1 to n-1 do

for j ← i + 1 to n do d ← sqrt ((xi – xj) 2 + (yi – yj)2) if d < dmin

dmin ← d (n2)

Page 7: Chapter 3: Brute Force The Design and Analysis of Algorithms

7

Convex Hull Problem

Convex set: For any two points P and Q in the set, the entire line segment with the end points at P and Q belongs to the set

Convex hull of a set S of points is the smallest convex set containing S

The convex hull of any set S of n > 2 points is a convex polygon with the vertexes at some of the points of S.

Page 8: Chapter 3: Brute Force The Design and Analysis of Algorithms

8

Convex Hull Problem

Algorithm: for each of n(n-1)/2 pairs of distinct points

for each of the other n – 2 points

find the sign of ax + by – c

The time efficiency of this algorithm is O(n3).

Page 9: Chapter 3: Brute Force The Design and Analysis of Algorithms

9

Exhaustive SearchState-space search

Given an initial state,

a goal state, and

a set of operations,

find a sequence of operations that transforms

the initial state to the goal state.

The solution process can be represented as a tree

Page 10: Chapter 3: Brute Force The Design and Analysis of Algorithms

10

Exhaustive SearchCombinatorial problems

Traveling Salesman – permutations ((N-1)!)

Knapsack – subsets (2N)

Assignment problem – permutations

(N!)

Page 11: Chapter 3: Brute Force The Design and Analysis of Algorithms

11

Conclusion - Strengths

Wide applicability, simplicity

Reasonable algorithms for some important problems such as searching, string matching, and matrix multiplication

Standard algorithms for simple computational tasks such as sum and product of n numbers, and finding maximum or minimum in a list

Page 12: Chapter 3: Brute Force The Design and Analysis of Algorithms

12

Conclusion - Weaknesses

Brute Force approach rarely yields efficient algorithms

Some brute force algorithms are unacceptably slow

Brute Force approach is neither as constructive nor creative as some other design techniques


Top Related