■ハノイの塔(その2)

 19世紀の数学者リュカの考案したゲームに「ハノイの塔」があります.ハノイの塔とは3本の柱A,B,Cがあり,柱Aにある何枚かの円盤を1枚ずつ柱Bを中継点にして柱Cに移動させるものです.ただし,どの柱でも上の円盤の方が小さくなければなりません.

(問)64枚の円盤があるとき,移し替えが完了するには何回移動しなければならないのか?

 円盤が3枚であるとします.Aにある3枚をBに移すにはCを中継点にしてBに移動させる.このためには上の2枚をCに移し,3枚目をBにもってきた後,Cの2枚をBに移動させる.次に円盤が4枚であるとします.上の三枚がくっついているとして,この3枚をBに移し,一番下の円盤をCにもってきて,Bの3枚をCに移せばよい.

 このような再帰的な方法を用いれば円盤が何枚あってもAからCに移動させることができるのですが,n枚の円盤を移動させるのに必要な最小回数をanと書くことにすれば,漸化式

  an=2an-1+1

で表せることがわかります.いま述べたn−1枚がくっついているとして・・・という考え方を小学5年生の息子に説明したところ,彼にも意味が理解できた様子でありました.

 anの具体的な値は

  an+1=2(an-1+1)

  an-1+1=2(an-2+1)

  ・・・・・・・・・・・・・

  a2+1=2(a1+1)

より,容易に

  an=2^n−1

で与えられることがわかりますが,こうして円盤が3枚のとき→4枚のとき→n枚のときに一般化することができます.

(答)64枚の円盤があるとき,2^64−1回の移動をしなければならない.1秒に1回移動をさせるにしても完了までには5820億年かかることになる.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 形は似ていますが,柱が3本のとき→4本のとき→n本のときに一般化するのはもっと難しい問題になります.4本のときのハノイの塔について

  一松信「整数と遊ぼう」日本評論社

の面白い記事がでていたので紹介します.

===================================

【1】柱を4本にしたときの手間

 あるとき,一松先生が熱心な中学生のグループから4本のときのハノイの塔について質問を受けたそうです.彼等が実験したところによると,その手間は

  n  1  2  3  4  5  6  7  8  9  10

  b  1  3  5  9  13  17  25  33  41  49

もちろん2^n−1に比べると桁違いに少ない回数です.

 差分をとってみると

  2  2  4  4  4  8  8  8  8・・・

となって,その先は

  16 16 16 16 16  32 32 32 32 32 32・・・(2^nがn+1個続く)

 このことから,4本のときのハノイの塔でもやはり枚数nの増加とともなって指数関数的に手間が増加することがわかります.ただしその増加が3本のときのハノイの塔(2^n−1)と比べ,桁違いに遅いというわけです.柱をいくら増やしても板の枚数の増加とともに指数関数的に増加します.

 そして,記事の最後に一松先生は「ハノイの塔の柱を1本増やす」という発展問題を考えた中学生に改めて敬意を表していますが,確かにこうした発想をつまらないものとして芽を摘むのは最悪の教育でしょう.私も大学院生のとき,微量元素の分析に現れる曲線は何かと考えて,当時の教授から「つまらないことを考えるな」とどやしつけられたことがあり,そのことを思い出しました.その曲線とはいまにして思えばフォークト関数です.

===================================

【2】k本ハノイの塔問題

 驚くべきことに,k≧4のときのk本ハノイの塔問題はいまだ解明されていません.

  [参]ハノイの塔,「離散数学のすすめ」第10章,現代数学社

に詳細がありますが,フレイム・スチュワートのアルゴリズムの移動回数M(n,k)は実験的にn=30程度まで調べられており,その範囲では実際に最小となることが確認されています.そのため,FSアルゴリズムが最小解を与えると信じられていますが,厳密な証明はされていないのです.

===================================