正二十面体の二点間ルート
正二十面体の二点間のルートを探索してみます。 頂点の数も多いので、目視では
なくプログラムを使って調べます。
課題(その1)
12C2=66通りある二点の組み合わせを分類してください。 三次元的な距離を基
に分類しても構いません。
ヒント: 点Aから見て以下のように各頂点を分類できます。
(1)点B、点C、点D、点E、点F
(2)点G、点H、点 I、点J、点K
(3)点L
(図1、Functionviewで作成)
まずは、プログラムを実行する為に必要な結線情報を作成します。
A B C D E F G H I J K L
A 0,1,1,1,1,1,0,0,0,0,0,0
B 1,0,1,0,0,1,1,1,0,0,0,0
C 1,1,0,1,0,0,0,1,1,0,0,0
D 1,0,1,0,1,0,0,0,1,1,0,0
E 1,0,0,1,0,1,0,0,0,1,1,0
F 1,1,0,0,1,0,1,0,0,0,1,0
G 0,1,0,0,0,1,0,1,0,0,1,1
H 0,1,1,0,0,0,1,0,1,0,0,1
I 0,0,1,1,0,0,0,1,0,1,0,1
J 0,0,0,1,1,0,0,0,1,0,1,1
K 0,0,0,0,1,1,1,0,0,1,0,1
L 0,0,0,0,0,0,1,1,1,1,1,0
上の結線情報を使ってプログラムを実行してみます。経由する頂点の数が増えると
ルートの数も急速に増えることが予想されるので 、ここでは経由する頂点数を最大
4に抑えたシミュレーションを行います。試行回数は100000に増やしています。
点Aから点Bへのルートを示します。
課題(その2)
経由する頂点数が大幅に増えると、 可能なルートを求める為に膨大な試行回数が
必要になります。 全ての頂点を通るルートを効率よく得る方法を議論してください。
例えば、始点と終点の両方から探索をスタートさせるなどです。