Theory of algorithms brute force
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

Theory of Algorithms: Brute Force PowerPoint PPT Presentation


  • 161 Views
  • Uploaded on
  • Presentation posted in: General

Theory of Algorithms: Brute Force. James Gain and Edwin Blake {jgain | edwin} @cs.uct.ac.za Department of Computer Science University of Cape Town August - October 2004. Objectives. To introduce the brute force mind set To show a variety of brute-force solutions:

Download Presentation

Theory of Algorithms: Brute Force

An Image/Link below is provided (as is) to download presentation

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 - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Theory of algorithms brute force

Theory of Algorithms:Brute Force

James Gain and Edwin Blake

{jgain | edwin} @cs.uct.ac.za

Department of Computer Science

University of Cape Town

August - October 2004


Objectives

Objectives

  • To introduce the brute force mind set

  • To show a variety of brute-force solutions:

    • Brute-Force String Matching

    • Polynomial Evaluation

    • Closest-Pair and Convex-Hull by Brute Force

    • Exhaustive Search

  • To discuss the strengths and weaknesses of a brute force strategy


Brute force

Brute Force

  • A straightforward approach usually directly based on problem statement and definitions

  • Motto: Just do it!

  • Crude but often effective

  • Examples already encountered:

    • Computing an (a > 0, n a nonnegative integer) by multiplying a together n times

    • Computation of n! using recursion

    • Multiplying two n by n matrices

    • Selection sort


Brute force string matching

Brute Force String Matching

  • Problem: Find a substring in some text that matches a pattern

  • Pattern: a string of m characters to search for

  • Text: a (long) string of n characters to search in

  • Algorithm:

    • Align pattern at beginning of text

    • Moving 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.


Understanding string matching

Understanding String Matching

  • Example:

    • Pattern: AKA

    • Text: ABRAKADABRA

    • Trace: AKA

    • AKA

    • AKA

    • AKA

  • Number of Comparisons:

    • In the worst case, m comparisons before shifting, for each of n-m+1 tries

  • Efficiency:(nm)


Brute force polynomial evaluation

Brute Force Polynomial Evaluation

  • Problem: Find the value of polynomial p(x) = anxn+ an-1xn-1 +… + a1x1 + a0 at a point x = x0

  • Algorithm:

  • Efficiency?

  • 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


Brute force closest pair

Brute Force Closest Pair

  • Problem:

    • Find the two points that are closest together in a set of n 2-D points P1 = (x1, y1), …, Pn = (xn, yn)

    • Using Cartesian coordinates and Euclidean distance

  • Algorithm:

  • Efficiency:(n2)

  • 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; index1  i; index2  j

  • return index1, index2


The convex hull problem

The Convex Hull Problem

  • Problem: Find the convex hull enclosing n 2-D points

  • Convex Hull: If S is a set of points then the Convex Hull of S is the smallest convex set containing S

  • Convex Set: A set of points in the plane is convex if for any two points P and Q, the line segment joining P and Q belongs to the set

Convex

Non-Convex


Brute force convex hull

Brute Force Convex Hull

P4

P9

  • 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:

    • for n(n-1)/2 point pairs, check sidedness of (n-2) others

    • O(n3)

P2

P8

P7

P3

P5

P1

P6


Pros and cons of brute force

Pros and Cons of Brute Force

  • Strengths:

    • Wide applicability

    • Simplicity

    • Yields reasonable algorithms for some important problems and standard algorithms for simple computational tasks

    • A good yardstick for better algorithms

    • Sometimes doing better is not worth the bother

  • Weaknesses:

    • Rarely produces efficient algorithms

    • Some brute force algorithms infeasibly slow

    • Not as creative as some other design techniques


Exhaustive search

Exhaustive Search

  • Definition:

    • A brute force solution to the search 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) keeping track of the best one found so far

  • When search ends, announce the winner


Travelling salesman problem

Travelling Salesman Problem

  • Problem:

    • 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:

2

a

b

5

3

4

8

c

d

7


Travelling salesman by exhaustive search

Travelling Salesman by Exhaustive Search

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

  • Improvements:

    • Start and end at one particular city

    • Remove tours that differ only in direction

  • Efficiency: (n-1)!/2 = (n!)


Knapsack problem

Knapsack Problem

  • Problem: Given n items

    • weights: w1 w2 … wn

    • values: v1 v2 … vn

    • a knapsack of capacity W

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

  • Example (W = 16):


Knapsack by exhaustive search

Knapsack by Exhaustive Search

  • Efficiency:Ω(2n)


Generating combinatorial objects subsets

Generating Combinatorial Objects: Subsets

  • Combinatorics uses Decrease (by one) and Conquer Algorithms

  • Subsets: generate all 2n subsets of A = {a1, …, an}

    • Divide into subsets of {a1, …, an-1} that contain an and those that don’t

    • Sneaky Solution: establish a correspondence between bit strings and subsets. Bit n denotes presence (1) or absence (0) of element an

    • Generate numbers from 0 to 2n-1 convert to bit strings  interpret as subsets

    • Examples: 000 = Ø , 010 = {a2} , 110 = {a1, a2}


Generating combinatorial objects permutations

Generating Combinatorial Objects: Permutations

  • Permutations: generate all n! reorderings of {1, …, n}

    • Generate all (n-1)! permutations of {1, …, n-1}

    • Insert n into each possible position (starting from the right or left, alternately)

    • Implemented by the Johnson-Trotter algorithm

  • Satisfies Minimal-Change requirement

    • Next permutation obtained by swapping two elements of previous

    • Useful for updating style algorithms

  • Example:

    • Start: 1

    • Insert 2: 12 21

    • Insert 3: 123 132 312 321 231 213


Final comments on exhaustive search

Final Comments on Exhaustive Search

  • 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


  • Login