PPT

advertisement
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
Text:
Write a program.
program
program
…
program
Comparisons:
(n*m) in the worst
possible case
(n+m)  (n) in the
average case.
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
dmin ← d
(n2)
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
Download