Nifty assignments: Brute force and backtracking - PowerPoint PPT Presentation

About This Presentation
Title:

Nifty assignments: Brute force and backtracking

Description:

Nifty assignments ... Nifty assignments. 2. Running a maze: How can you get from start to finish legally in a maze? ... Nifty assignments. 5. Solving the 9 ... – PowerPoint PPT presentation

Number of Views:106
Avg rating:3.0/5.0
Slides: 34
Provided by: wei8
Learn more at: http://www.cs.unc.edu
Category:

less

Transcript and Presenter's Notes

Title: Nifty assignments: Brute force and backtracking


1
Nifty assignmentsBrute force and backtracking
  • Steve Weiss
  • Department of Computer Science
  • University of North Carolina at Chapel Hill
  • weiss_at_cs.unc.edu

2
The puzzle
3

4
Brute force problem solving
Generate candidates
Filter
Solutions
Trash
5
Requirements
  • Candidate set must be finite.
  • Must be an Oh yeah! problem.

6
Example
Combination lock 606060 216,000 candidates
7
Example
8
Oh no!
9
Oh yeah!
10
Additional restrictions
  • Solution is a sequence s1, s2,,sn
  • Solution length, n, is known (or at least
    bounded) in advance.
  • Each si is drawn from a finite pool T.

11
Sequence class
  • extend(x) Add x to the right end of the
    sequence.
  • retract() Remove the rightmost element.
  • size() How long is the sequence?

12
Generating the candidates
Classic backtrack algorithm At decision point,
do something new (extend something that hasnt
been added to this sequence at this place
before.) Fail Backtrack
Undo most recent decision
(retract). Fail done
13
Recursive backtrack algorithm(pseudo Java)
backtrack(Sequence s) for each si in T
s.extend(si) if (s.size() MAX) //
Complete sequence display(s)
else backtrack(s)
s.retract() // End of for // End of
backtrack
14
Problem solver
backtrack(Sequence s) for each si in T
s.extend(si) if (s.size() MAX) //
Complete sequence if (s.solution())
display(s) else
backtrack(s) s.retract() // End
of for // End of backtrack
15
Problems
  • Too slow, even on very fast machines.
  • Case study 8-queens
  • Example 8-queens has more than
    281,474,976,711,000 candidates.

16
8-queens
  • How can you place 8 queens on a chessboard so
    that no queen threatens any of the others.
  • Queens can move left, right, up, down, and along
    both diagonals.

17
Problems
  • Too slow, even on very fast machines.
  • Case study 8-queens
  • Example 8-queens has more than
    281,474,976,711,000 candidates.

18
Faster!
  • Reduce size of candidate set.
  • Example 8-queens, one per row, has only
    16,777,216 candidates.

19
Faster still!
  • Prune reject nonviable candidates early, not
    just when sequence is complete.
  • Example 8-queens with pruning looks at about
    16,000 partial and complete candidates.

20
Backtrack with pruning
backtrack(Sequence s) for each si in T if
(s.okToAdd(si)) // Pruning s.extend(si)
if (s.size() MAX) // Complete solution
display(s) else
backtrack(s) s.retract() // End
of if // End of backtrack
21
Nifty assignments
  1. Map coloring Given a map with n regions, and a
    palate of c colors, how many ways can you color
    the map so that no regions that share a border
    are the same color?

22
Nifty assignments
  • Solution is a sequence of known length (n) where
    each element is one of the colors.

1
2
4
3
23
Nifty assignments
  • 2. Running a maze How can you get from start to
    finish legally in a maze?

20 x 20 grid
24
Nifty assignments
  • Solution is a sequence of unknown length, but
    bounded by 400, where each element is S,
    L, or R.

25
Nifty assignments
  • 3. Making change.
  • How many ways are there to make 1.00 with coins.
    Dont forget Sacagawea.

26
Nifty assignments
  • 3. Making change.
  • Have the coin set be variable.
  • Exclude the penny.

27
Nifty assignments
4. Unscrambling a word ptos stop, post,
pots, spot
28
Nifty assignments
4. Unscrambling a word Requires a
dictionary Data structures and efficient
search Permutations
29
Nifty assignments
  • 5. Solving the 9 square problem.
  • Solution is sequence of length 9 where each
    element is a different puzzle piece and where the
    touching edges sum to zero.

30
The puzzle
31
Nifty assignments
Challenges Data structures to store the
pieces and the 3 x 3 board. Canonical
representation so that solutions dont appear
four times. Pruning nonviable
sequences puzzle piece used more than
once. edge rule violation not canonical
32
Nifty assignments
Challenges Algorithm analysis instrumenting
the program to keep track of running time and
number of calls to the filter and to the
backtrack method.
33
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com