The Design and Analysis of Algorithms
Chapter 3: Brute Force
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
2
Basic Idea
A straightforward approach to solve a
problem based on the problem’s
statement and definitions of the concepts
involved.
Example
Computing an based on the definition of exponentiation:
an = a* a* a* …. * a
(a > 0, n a nonnegative integer)
3
Brute Force Search and Sort
Sequential Search O(n)
Selection Sort O(n2)
Bubble Sort O(n2)
4
Brute Force String Matching
Pattern: program
Comparisons:
Text:
(n*m) in the worst
possible case
Write a program.
(n+m) (n) in the
program
average case.
program
…
program
5
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
(n2) dmin ← d
6
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.
7
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).
8
Exhaustive Search
State-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
9
Exhaustive Search
Combinatorial problems
Traveling Salesman – permutations ((N-1)!)
Knapsack – subsets (2N)
Assignment problem – permutations
(N!)
10
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
11
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
12