Optimizing Towers of Hanoi Puzzle with Heuristic Search

  • Thread starter Thread starter Tony11235
  • Start date Start date
Click For Summary

Discussion Overview

The discussion revolves around finding an effective heuristic for optimizing the Towers of Hanoi puzzle with multiple posts. Participants explore various approaches to estimate the number of moves required to reach the goal state of moving all disks to the rightmost post, considering different numbers of posts and disks.

Discussion Character

  • Exploratory
  • Technical explanation
  • Mathematical reasoning

Main Points Raised

  • One participant inquires about a heuristic that estimates the number of moves from a given state to the goal state for a Towers of Hanoi puzzle with P posts and D disks.
  • Another participant proposes a method for P = 4, suggesting a strategy that involves stacking disks on different pegs and calculating the minimum moves required based on a recursive formula.
  • This participant notes that their evaluations up to D = 40 reveal a relationship between D and k that follows triangular numbers, leading to an approximate formula for the number of moves.
  • A later reply corrects the earlier approximation, providing exact results for specific cases and defining a relationship involving triangular numbers and the number of moves.
  • Another participant discusses using a heuristic in the context of informed search algorithms like Best-First-Search and A* Search, noting the limitations of their heuristic based on the problem's goal state.

Areas of Agreement / Disagreement

Participants express differing views on the effectiveness and accuracy of the proposed heuristics, with no consensus reached on the optimal approach or algorithm for the problem.

Contextual Notes

Some participants acknowledge that their heuristics may not be optimal or accurate, and there are unresolved mathematical steps in the proposed formulas and relationships.

Tony11235
Messages
254
Reaction score
0
For a P posts, D discs, Towers of Hanoi puzzle, does anybody know of a decent heuristic? Where given a state, give back a rough estimate of the number of moves away from the goal state, which in this case is having all the disks moved to the right most post?

I know that for a 3 posts, D disk problem, the shortest number of moves is given by 2^D - 1. , but that is not of much use here.
 
Physics news on Phys.org
I played around with this for P = 4.

I thought a reasonable idea to move D disks was

1 Stack k < D disks on an empty peg using all 4 pegs.

2 Stack the remaining D-k disks on an empty peg using 3 pegs (you can't use the peg with the smaller disks already on it). This takes 2^{(D-k)}-1 moves.

3. Stack the k disks on top if the bigger ones using all 4 pegs again.

So if the number of moves for D disks is M(D),

M(D) = min_k\big(2M(k) + 2^{(D-k)}-1\big)

Evaluating this up to D = 40 showed that the relation between D and k followed the triangular numbers 1,3,6,10, 15,21 ... i.e. when D = 15 k = 10, when D = 21 k = 15, etc.

Curve fitting gave the number of moves as approx 1.35 \times 3.34^{\sqrt D}

This is completely different from the 3 pegs. The number of moves for 40 disks is 2817 for P=4 and about 5.5e11 for P=3!

I don't know if this is the optimum algorithm. It generalises to more than 4 posts (e.g. for 5 posts, stack k disks using 5 posts, m disks using 4 posts, D-k-m disks using 3 posts, find the minimum values of k and m) but I haven't played with P > 4.
 
Last edited:
That 1.35 \times 3.34^{\sqrt D} was based on too little data

An exact result for 4 pegs:

Let M(k) be the number of moves for k disks and 4 pegs using the algorithm above.

M(1) = 1
M(3) = 2*M(1) + 2^2 - 1 = 5
M(6) = 2*M(3) + 2^3 - 1 = 17
M(10) = 2*M(6) + 2^4 - 1 = 49
etc.

Define the n'th triangular number t_n = n(n+1)/2

Then M(t_n) = (n-1)2^n + 1 - proof by induction.

:cool:
 
I'm trying to use a heuristic of this sort as part of an informed search, first Best-First-Search (aka greedy search), then A* Search. So that instead expanding all nodes, using a heuristic to decide which node is closest to the goal state and only expand that node. This is really not an accurate one, but since my problem states that the goal state is having all the discs arranged properly to the right-most post, I guess I can just check the end post of each node and go with the one that has the most so far. If the problem stated that the goal was for the discs to be moved to any other post, then this would be worthless of course.
 

Similar threads

Replies
2
Views
3K
Replies
2
Views
8K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 5 ·
Replies
5
Views
13K
Replies
5
Views
5K
  • · Replies 5 ·
Replies
5
Views
18K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 61 ·
3
Replies
61
Views
13K
  • · Replies 16 ·
Replies
16
Views
4K