Académique Documents
Professionnel Documents
Culture Documents
Brute Force
A straightforward approach usually based on
problem statement and definitions
Examples:
1. Computing an (a > 0, n a nonnegative
integer)
2. Computing n!
3. Multiply two n by n matrices
4. Selection sort
5. Sequential search
String matching
pattern: a string of m characters to search for
text: a (long) string of n characters to search in
2.
3.
String Matching
Pattern: GATTTCG (length = m = 7)
Text: GATTTCATCAGATTTCGATACAGAT
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
GATTTCG
Text length = n = 25
Best Case: ?
Worst Case: ?
Best Case:
GATTTCATCAGATTTCGATACAGAT
GATTTCA
O(m) The pattern is found right away, but
you still have to do m comparison to verify
that is was found.
Worst Case:
O(mn)
How is this possible?
AAAAAABAAAAAABAAAAAABAAAAAABA
AAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB
Average Case:
Observation: If the number of symbols is
relatively large (26 for example) then
Most shifts will happen after very few
comparisons.
In fact, there are very few pattern-text
combinations that will cause (m) comparisons
for each shift.
Note: There are always (n) shifts if the pattern
is not found
Average Case:
It has been shown
Polynomial evaluation:
improvement
We can do better by evaluating from right
to left:
Algorithm:
p := a[0]
power := 1
for i := 1 to n do
power := power * x
p := p + a[i] * power
return p
wide applicability
simplicity
yields reasonable algorithms for some
important problems
searching
string matching
matrix multiplication
Exhaustive search
A brute force solution to a problem
involving search for an element with a
special property, usually among
combinatorial objects such a permutations,
combinations, or subsets of a set.
Exhaustive search
Method:
b
5
3
4
2+3+7+5 = 17
2+4+7+8 = 21
8+3+4+5 = 20
8+7+4+2 = 21
5+4+3+8 = 20
5+7+3+2 = 17
weights: w1 w2 wn
values: v1 v2 vn
a knapsack of capacity W
Total weight
2
5
10
5
7
12
7
15
10
15
17
12
17
20
22
Total value
$20
$30
$50
Efficiency:
$10
$50
$70
$30
$80
$40
$60
not feasible
$60
not feasible
not feasible
not feasible
Final comments:
Exhaustive search algorithms run in a
realistic amount of time only on very small
instances
In many cases there are much better
alternatives!
Euler circuits
shortest paths
minimum spanning tree
assignment problem
Homework
page 102 questions 1, 4, and 10
page 106 questions 4 and 5
page 111 question 1
page 119 question 9