ヘキソミノ完全解へのシナリオ
ver. 0.10 2002/12/11 daichin@excite.co.jp
   http://hexomino.hp.infoseek.co.jp/

・Version History
 0.10 02/12/11 原点の「パズルのプログラミングを楽しもう」に戻って、再出発

 0.05 01/10/09 ヘキソミノ完全解へのシナリオVer. 0.05


出直しの「第3期の方針」

 ・ 原点の「パズルのプログラミングを楽しもう」に戻って、部分解の最適化(高速化)で遊ぶ。
  但し、あくまでもその内容は、完全解を目指したものにする。


10年後のCPUパワーに関する考察(というほどのものではないが)

 このプロジェクトをはじめた頃は、CPUは600MHzあたりが最速だったものが、いまや3GHzまできており、10GHz程度までは十分現実的なロードマップの中に入ってきている。ただし、その変化は一台のPCにおける、CPUの複数化を含めても、あくまでリニアなものであり、本テーマである天文学的な解数を求める為には、「遅いより早いほうが良い」程度の効果しかない。

 一方、グリッド・コンピューティング、セル・コンピューティング、ユビキタス・コンピューティングといった概念が実現に向けて動き始めている。特に、プレステ2、(3)、Xboxといったゲーム機の分野においての進歩は、いずれPCを凌駕しかねないポテンシャルを感じさせている。本テーマがゲームユーザーの琴線に触れるかどうか、また、本テーマのような使用ができるよう仕様が公開されるかは難しいところではあるが、分母(ネットワークに接続され、利用可能なCPU時間)が劇的に増えることは間違いないと思われる。

 このような状況の中、未来学者でない私が、10年先を予測することには当然無理があるが、まあざっくりとした超楽観的な見通しを考えてみる。

 1.ひとりの協力者が提供可能な平均CPUパワー: 1GHz Pentium の100〜1000倍 (5倍の能力のCPU20台 〜 20倍の能力のCPU50台) 
   家中のそこかしこにネットワークに繋がれた「何か」が転がっていて、現在のマイコンのように、その存在は意識されていない状態になっていると考える。

 2.協力者が提供する平均時間(期間): 10,000時間
   1日20時間、興味の持続する期間を500日と仮定。特に根拠はないが、完全解に対する進捗がReal timeで見え、ゴールが現実的な時間であれば、1年半程度は妥当と考える。

 3.協力者の数: 100,000〜1,000,000人
   参加することに対する負担(手間、コスト)は限りなくゼロに近づくと思われ、気軽に参加できる(ワンクリック?)環境を整えることにより、100万人の参加も決して非現実的ではないと考える。セル・コンピューティングおよびそのコミュニティーの形成いかんによっては、意識せずに協力を得ることも可能になるかもしれない。

 総利用可能CPUパワー: 1GHzPentiumの 10^11 から 10^13倍

 完全解を 10^23解と仮定すると

 1GHzPentiumにて、10^10解/1時間の速度が要求されるが、以前200億解(2x10^10)を182時間強で求めたことを考えると、”たった”100倍の高速化チューニングで良いことになる。

 めざせ 100億解/1時間 !!


課題: 中央縦一列を下図に固定した場合の総解数をまずは、力づくで求める。次に、各種高速化を試み、100億解/1時間の実現性、限界を探る。

 Step1: 左側の16ピース分の空白を埋める全組み合わせを求める。
       結果は、組み合わせるピースの種類毎の、解数のみを記録すれば十分。

 記録データ

32bit (中央で固定した3ピースを除く32ピースに対応)

解数

11111111 11111111 00000000 00000000

***
11111111 11111110 10000000 00000000 ***
:          :
00000000 00000000 11111111 11111111 ***

 Step2: 総解数(中央は下図に固定)を求める。

Σ (左側のある組み合わせの解数) * (左側の補数に相当する組み合わせの解数)

                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           

inserted by FC2 system