- 97 Views
- Uploaded on
- Presentation posted in: General

Brute Force

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

A straightforward approach usually based on problem statement and definitions

Examples:

- Computing an (a, n > 0, n integer)
- GCD with consecutive integer checking
- Computing n!
- Multiply two n by n matrices
- Selection sort
- Sequential search

Design and Analysis of Algorithms - Chapter 3

Algorithm BubbleSort(A[0..n-1])

// Input: an array A[0..n-1] of orderable elements

// Output: Array A[0..n-1] sorted ascendingly

for i ïƒŸ 0 to n-2 do

for j ïƒŸ 0 to n-2-i do

if A[j+1]<A[j] swap A[j] and A[j+1]

Analysis for comparisons and swaps

Improvements

Design and Analysis of Algorithms - Chapter 3

- pattern: a string of m characters to search for
- text: a (long) string of n characters to search in
- Brute force algorithm:
- Align pattern at beginning of text
- moving from left to right, compare each character of pattern to the corresponding character in text until
- all characters are found to match (successful search); or
- a mismatch is detected

- while pattern is not found and the text is not yet exhausted, realign pattern one position to the right and repeat step 2.

Design and Analysis of Algorithms - Chapter 3

Algorithm BruteForceStringMatch(T[0..n-1], P[0..m-1])

// Input: array T[0..n-1] for text and array P[0..m-1] for pattern

// Output: the position of the first character in the text stat starts the first matching substring if the search is successful, and -1 otherwise

for i ïƒŸ 0 to n-m do

j ïƒŸ 0

while j<m and P[j]=T[i+j] do j ïƒŸ j+1

if j=m return I

return -1

Design and Analysis of Algorithms - Chapter 3

- Pattern: 001011 Text: 10010101101001100101111010
- Pattern: happy Text: It is never too late to have a happy childhood.
Number of comparisons:

Efficiency:

Design and Analysis of Algorithms - Chapter 3

- Problem: Find the value of polynomial p(x) = anxn+ an-1xn-1 +â€¦ + a1x1 + a0 at a point x = x0
- Algorithm
p := 0.0

for i := n down to 0 do

power := 1

for j := 1 to i do

power := power * x

p := p + a[i] * power

return p

- Efficiency:

Design and Analysis of Algorithms - Chapter 3

- Improvement: evaluation from right to left:
- Algorithm:
p := a[0]power := 1

for i := 1 to n dopower := power * xp := p + a[i] * power return p

- Efficiency:

Design and Analysis of Algorithms - Chapter 3

- Problem: find closest points among n onesin k-dimensional space
- Algorithm:
// Input: A list P of n>1 points P1=(x1,y1), â€¦, Pn=(xn,yn)

//Output: Indices id1 and id2 of the closest pair of points

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; id1ïƒŸi; id2ïƒŸj;

return id1, id2

- Efficiency

Design and Analysis of Algorithms - Chapter 3

- Problem: find smallest convex polygon enclosing n points on the plane
- Algorithm: For each pair of points p1 and p2 determine whether all other points lie to the same side of the straight line through p1 and p2
- Efficiency:

Design and Analysis of Algorithms - Chapter 3

- Strengths:
- wide applicability
- simplicity
- yields reasonable algorithms for some important problems
- searching, string matching, matrix multiplication

- yields standard algorithms for simple computational tasks
- sum/product of n numbers, finding max/min in a list

- Weaknesses:
- rarely yields efficient algorithms
- some brute force algorithms unacceptably slow
- not as constructive/creative as some other design techniques

Design and Analysis of Algorithms - Chapter 3

- Exhaustive search is a brute force approach when searching for an element with a special property, usually among combinatorial objects such a permutations, combinations, or subsets of a set.
- Method:
- construct a way of listing all potential solutions to the problem in a systematic manner
- all solutions are eventually listed
- no solution is repeated

- Evaluate solutions one by one, disqualifying infeasible ones and keeping track of the best one found so far
- When search ends, announce the winner

- construct a way of listing all potential solutions to the problem in a systematic manner

Design and Analysis of Algorithms - Chapter 3

2

a

b

5

3

4

8

c

d

7

- Given n cities with known distances between each pair, find the shortest tour that passes through all the cities exactly once before returning to the starting city.
- Alternatively: Find shortest Hamiltonian circuit in a weighted connected graph.
- Example:

Design and Analysis of Algorithms - Chapter 3

- Tour Cost
aâ†’bâ†’câ†’dâ†’a 2+3+7+5 = 17

aâ†’bâ†’dâ†’câ†’a 2+4+7+8 = 21

aâ†’câ†’bâ†’dâ†’a 8+3+4+5 = 20

aâ†’câ†’dâ†’bâ†’a 8+7+4+2 = 21

aâ†’dâ†’bâ†’câ†’a 5+4+3+8 = 20

aâ†’dâ†’câ†’bâ†’a 5+7+3+2 = 17

- Efficiency:

Design and Analysis of Algorithms - Chapter 3

Problem:

Given n items with weights w1,w2,â€¦,wn and values v1,v2,â€¦,vn and a knapsack of capacity W

Find the most valuable subset of the items that fit into the knapsack

Example:

item weight value Knapsack capacity W=16

- 2 $20
- 5 $30
- 10 $50
- 5 $10

Design and Analysis of Algorithms - Chapter 3

Subset Total weight Total value

{1} 2 $20

{2} 5 $30

{3} 10 $50

{4} 5 $10

{1,2} 7 $50

{1,3} 12 $70

{1,4} 7 $30

{2,3} 15 $80

{2,4} 10 $40

{3,4} 15 $60

{1,2,3} 17 not feasible

{1,2,4} 12 $60

{1,3,4} 17 not feasible

{2,3,4} 20 not feasible

{1,2,3,4} 22 not feasible

Efficiency:

Design and Analysis of Algorithms - Chapter 3

Problem:

Given n people and n jobs, whereas C[i,j] is the cost if person i takes job j

Assign one person per job with the minimum cost

Example:

Design and Analysis of Algorithms - Chapter 3

AssignmentTotal cost

<1,2,3,4> 9+4+1+4=18

<1,2,4,3> 9+4+8+9=30

<1,3,2,4> 9+3+8+4=24

<1,3,4,2> 9+3+8+6=26

<1,4,2,3> 9+7+8+9=33

<1,4,3,2> 9+7+1+6=23

â€¦â€¦â€¦â€¦â€¦â€¦â€¦â€¦â€¦.

Efficiency:

Design and Analysis of Algorithms - Chapter 3

- 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

- In some cases exhaustive search (or variation) is the only known solution

Design and Analysis of Algorithms - Chapter 3