tower of hanoi n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Tower of Hanoi PowerPoint Presentation
Download Presentation
Tower of Hanoi

Loading in 2 Seconds...

play fullscreen
1 / 60

Tower of Hanoi - PowerPoint PPT Presentation


  • 250 Views
  • Uploaded on

Tower of Hanoi. AE1APS Algorithmic Problem Solving John Drake. Outline of the course. Invariants – Chapter 2 River Crossing – Chapter 3 Logic Puzzles – Chapter 5 Matchstick Games - Chapter 4 Sum Games – Chapter 4 Induction – Chapter 6 Tower of Hanoi – Chapter 8. A recap on induction.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Tower of Hanoi' - pekelo


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
tower of hanoi

Tower of Hanoi

AE1APS Algorithmic Problem Solving

John Drake

outline of the course
Outline of the course
  • Invariants – Chapter 2
  • River Crossing – Chapter 3
  • Logic Puzzles – Chapter 5
  • Matchstick Games - Chapter 4
    • Sum Games – Chapter 4
  • Induction – Chapter 6
    • Tower of Hanoi – Chapter 8
a recap on induction
A recap on induction
  • Breaking larger problems down into sub-problems
  • Using small instances of a problem to help us solve larger instances
  • Find a trivial base case where size = 0
  • Show for an arbitrary number n how to solve n + 1 (induction step)
tower of hanoi introduction
Tower of Hanoi - Introduction
  • This problem is discussed in many maths texts, and is used in computer science and AI as an illustration of recursion and problem solving
  • You probably know the problem, but we will look at it slightly differently
  • Induction gives a systematic way of finding a solution
  • However this solution is undesirable
  • A better solution is obtained by observing the invariants of the inductive solution
begin with the solution
Begin with the solution
  • We will start at the end
  • We begin with the solution (as you probably already know it) and you can see where we are going
  • Another reason is to understand why a correct solution has been found, if no information about the solution method is provided
problem specification
 Problem specification
  • There is a temple in Bramah, where there are 3 giant poles fixed in the ground.
  • On the first pole, God placed 64 discs, each of different size in decreasing order of size
  • The Brahmin monks were given the task of moving the discs, one per day, from one pole to another
  • However, no disc must be above a smaller disc, when on the same pole
triangle representation
Triangle representation
  • Almost every book (and webpage) I have seen draws the 3 poles in a line
  • We can call the poles A, B, C
  • However there is a simple symmetry which is being ignored here
triangle representation1
Triangle representation
  • We draw them in different positions
  • A better way is to draw and equilateral triangle, and the symmetry is obvious.
  • Now the moves of the discs can easily be described as clockwise or anti-clockwise.
iterative solution assumptions
Iterative solution (assumptions)
  • There is a very easy solution to the Towers of Hanoi problem
  • It is easy to remember and execute
  • We assume the problem is to move the discs from one pole to the next in the clockwise direction
  • The days are numbered from 0, 1, 2…
  • On day 0, the discs are placed in their initial position, and the monks begin moving the discs on day 1.
iterative solution 1
Iterative solution 1
  • On every alternate day, the smallest disk is moved
  • The smallest disc should cycle around the poles.
  • The direction of rotation depends on the number of discs
  • It the total number is odd, it cycles clockwise, otherwise if the total is even, it cycles anticlockwise
iterative solution 2
Iterative solution 2
  • On every other day, another disc is moved (other than the smallest disc)
  • As no disc can be on a smaller disc, there is only one possible move for the disc
  • The algorithm terminates when no further moves are possible
  • That is, on a even numbered day when all the discs are on the same pole
slide29
Why?
  • Presenting the solution like this, provides us with no help in understanding how the solution was constructed
  • How would we give a formal mathematical verification of the correctness of the algorithm
  • By observing a number of invariants, we show how to derive the algorithm from the inductive solution.
inductive solution
Inductive solution
  • Suppose the task is to move M discs from one pole to another specific pole.
  • Base case. When there are 0 discs, no steps are needed to complete the task
  • For the inductive step, we assume we can move n discs from A to B, and the problem is to show how to move n+1 discs from A to B
  • We get stuck with this approach
stuck
Stuck
  • First move n top discs from A to B
  • After doing this, all the discs are on B
  • We have no hypothesis about moving discs from this pole
  • i.e. The information that we can move n discs from A to B does not help us in trying to move n+1 from A to B
still stuck
Still stuck
  • Alternatively, we can move the smallest from pole A to pole C
  • We then move n discs from A to B
  • Once again we have exhausted all possibilities of using the inductive hypothesis
  • Because the n discs are on pole B and we have no hypothesis about moving discs from this pole.
too specific
Too Specific
  • We have been too specific about the inductive hypothesis
  • The way out of this is to introduce some parameters which model the start and final positions of the discs
rotational s ymmetry
Rotational symmetry
  • We make a crucial decision
  • Rather than name the poles A B C, we observe that the problem exhibits a rotational symmetry
  • This is obvious when the poles are arranged in a triangle, but obscured when the poles are placed in a line.
an additional parameter
An additional parameter
  • One additional parameter needs to be introduced, the direction of movement
  • We only need to say if a particular disc needs to be moved in a clockwise or anti- clockwise direction
  • The generalisation of the problem becomes, how to move n discs from one pole to the next in the direction d
    • (where d is either clockwise or anti-clockwise)
inductive hypothesis
Inductive hypothesis
  • The inductive hypothesis we use is that it is possible to move the n smallest discs from one pole to another in direction d beginning from any valid starting point
  • That is, a starting position in which the discs are distributed arbitrarily over the poles, but no disc is on top of a disc smaller than itself
  • This is a far more general definition
base and inductive case
Base and inductive case
  • For n = 0, the sequence of moves is empty.
  • In the case of n+1 discs, we assume we have a method of moving the n smallest discs from one pole to one of the other two poles.
  • We must show how to move n+1 discs from one pole to another pole in direction d, where d is either clockwise or anticlockwise.
  • Assume the discs are numbered 1 upwards (with the smallest disc numbered 1)
using the inductive hypothesis
Using the inductive hypothesis
  • There is little choice in exploiting the inductive hypothesiswe can begin by moving the n smallest discs in the direction d, or direction ¬d.
  • The solution is to move the n discs in direction ¬d, then the n+1thdisc can be moved in direction d
  • We can then use the inductive hypothesis again to move the n smallest discs in the direction ¬d.
  • This places the n discs above the n+1th disc, and all of the n+1 smallest discs have now been moved from their original position to a new pole in direction d
for n 1 i e 3 1 4
For n+1 (i.e. 3+1 = 4)
  • We can use the previous solution to get a solution for n+1 using the inductive step
psuedocode
Psuedocode
  • The following code summarises the inductive solution to the problem
  • Hn(d) is the sequence of pairs <k,d’> where n in the number of discs, k is a disc number and d and d’ are directions
  • Directions are Boolean values, true representing clockwise, and false representing anti-clockwise
  • The pair <k, d’> means, move disc number k from its current position in the direction d’
  • The pair is therefore an action.
  • We use the ; to separate movements.
h n d
Hn(d)
  • Hn(d) means the sequence to move the n smallest discs in direction d
  • Taking the pairs in order from left to right, the complete sequence Hn(d) prescribes how to move the n smallest discs, one by one, from one pole to another in direction d
psuedocode1
Psuedocode
  • Hn(d)
  • H0(d)= []

– base case (i.e. 0 moves needed)

  • Hn+1(d) = Hn(¬d) ; [<n+1, d>] ; Hn(¬d)

– induction step (move n discs in a given direction, move the n+1th disc in the opposite direction then move n discs again in the same direction)

psuedocode2
Psuedocode
  • Notice that the procedure name, H, occurs on both sides of the equation for Hn+1(d)
    • Hn+1(d) = Hn(¬d) ; [<n+1, d>] ; Hn(¬d)
  • For this reason we call this a recursive solution (i.e. the procedure calls itself, think of Java)
how to use
How to use
  • This inductive procedure gives us a way to generate the solution to the problem for any size n
  • We simply use the rules as rewrite rules, until all occurrences of H have been eliminated
    • i.e. we are left with just a sequence of actions
      • (e.g. move disc 3 clockwise)
h 2 cw
H2(cw)
  • Let us use cw and aw to mean clockwise and anti-clockwise, rather than true and false to improve readability
  • Calculate H2(cw) i.e. how to move 2 discs, one pole in a clockwise direction
  • Equation (1)
    • H0(d) = []
  • Equation (2)
    • Hn+1(d) = Hn(¬d) ; [<n+1, d>] ; Hn(¬d)
h 3 cw
H3(cw)?
  • Exercise – Can you do H3(aw)?
  • Can you see a pattern in the number of moves required for n discs? i.e. H0,H1, H2, H3…
  • Show this as a formula in terms of n?
  • If this is easy, try exercise 8.3 a) (without cheating and looking at the answer first) 