Presentation is loading. Please wait.

Presentation is loading. Please wait.

AE1APS Algorithmic Problem Solving John Drake.  Invariants – Chapter 2  River Crossing – Chapter 3  Logic Puzzles – Chapter 5  Matchstick Games -

Similar presentations


Presentation on theme: "AE1APS Algorithmic Problem Solving John Drake.  Invariants – Chapter 2  River Crossing – Chapter 3  Logic Puzzles – Chapter 5  Matchstick Games -"— Presentation transcript:

1 AE1APS Algorithmic Problem Solving John Drake

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

3  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)

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

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

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

7

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

9  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.

10  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.

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

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

13  Day 0

14  Day 1

15  Day 2

16  Day 3

17  Day 4

18  Day 5

19  Day 6

20  Day 7

21  Day 8

22  Day 9

23  Day 10

24  Day 11

25  Day 12

26  Day 13

27  Day 14

28  Day 15

29  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.

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

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

32 A B C

33 A B C

34  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.

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

36  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.

37  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)

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

39  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)

40  There is little choice in exploiting the inductive hypothesis we 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+1 th disc 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+1 th disc, and all of the n+1 smallest discs have now been moved from their original position to a new pole in direction d

41

42

43

44

45  We can use the previous solution to get a solution for n+1 using the inductive step

46

47

48

49

50  The following code summarises the inductive solution to the problem  H n (d) is the sequence of pairs 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 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.

51  H n (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 H n (d) prescribes how to move the n smallest discs, one by one, from one pole to another in direction d

52  H n (d)  H 0 (d) = [] – base case (i.e. 0 moves needed)  H n+1 (d) = H n (¬d) ; [ ] ; H n (¬d) – induction step (move n discs in a given direction, move the n+1 th disc in the opposite direction then move n discs again in the same direction)

53  Notice that the procedure name, H, occurs on both sides of the equation for H n+1 (d) ◦ H n+1 (d) = H n (¬d) ; [ ] ; H n (¬d)  For this reason we call this a recursive solution (i.e. the procedure calls itself, think of Java)

54  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)

55  Let us use cw and aw to mean clockwise and anti-clockwise, rather than true and false to improve readability  Calculate H 2 (cw) i.e. how to move 2 discs, one pole in a clockwise direction  Equation (1) ◦ H 0 (d) = []  Equation (2) ◦ H n+1 (d) = H n (¬d) ; [ ] ; H n (¬d)

56

57

58

59

60  Exercise – Can you do H 3 (aw)?  Can you see a pattern in the number of moves required for n discs? i.e. H 0, H 1, H 2, H 3…  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)


Download ppt "AE1APS Algorithmic Problem Solving John Drake.  Invariants – Chapter 2  River Crossing – Chapter 3  Logic Puzzles – Chapter 5  Matchstick Games -"

Similar presentations


Ads by Google