ルート探索のプログラム


 

まず、 正多面体の頂点間を結ぶ各辺の結線情報をファイルから読み込むことから

考えましょう。ファイル形式はテキストファイルになります。以下に、そのファイル内

容を示します(正四面体の場合)。 結線がある部分については、 その情報はで、

無い部分については、になります。 また、自分同士の場合も、としています。 数

字は半角で記述します。

 

  A B C D

A 0,1,1,1

B 1,0,1,1

C 1,1,0,1

D 1,1,1,0

 

課題(その1)

 

正六面体正八面体正十二面体正二十面体のそれぞれに関して、頂点間を

結ぶ各辺の結線情報を作成してください。

 

正六面体に関するプログラムを作ってみます。ルートを探索するアルゴリズムは二

つの部分からなります。 最初は、 上記の結線情報に基づいて始点から終点までの

間に点を経由するルートを探すアルゴリズムです。各点でランダムに次に進む方

向を決めているので、ループになっているルートも含まれます。二番目は、これらの

ルートからループ状のものを取り除くと同時に、終点が指定された点になっているも

のに限定するアルゴリズムです。 モンテカルロ法の一種のようなプログラムになっ

ています。 このプログラムを修正して、正十二面体正二十面体に適用する時に

は、試行回数を十分大きく取ってプログラムを実行してください。回数が十分でない

と、一部のルートを見逃す可能性があります。

 

次に、プログラムの詳細を示します。 プログラムはメインプログラムとルートを探索

するROUTEという外部副プログラムから構成されます。  プログラムを実行すると

二つの頂点を入力するための入力ウィンドウ テキストウィンドウ が同時に開き

ます。始点と終点を順番に入力してOKボタンをクリックしてください。数秒後に、二

頂点間の全てのルートがテキストウィンドウ上に表示されます。

 

十進BASICを使用>

PROGRAM-ROUTE-TANSAKU-1.GIF - 7,681BYTES

PROGRAM-ROUTE-TANSAKU-2.GIF - 7,357BYTES

PROGRAM-ROUTE-TANSAKU-3.GIF - 5,369BYTES

PROGRAM-ROUTE-TANSAKU-4.GIF - 5,921BYTES

PROGRAM-ROUTE-TANSAKU-5.GIF - 7,276BYTES

PROGRAM-ROUTE-TANSAKU-6.GIF - 6,042BYTES

PROGRAM-ROUTE-TANSAKU-7.GIF - 5,948BYTES

 

正四面体については、 試行回数は100程度でも構いませんが、  ルート数が著しく

増える正六面体の場合はより大きく取ってください。 上のプログラムでは、10000

にしています。

 

以下の結果は、  上記のプログラムを使って求めた点Aから点Bまでのルートです。

全部で15のルートがあります。

 

ROUTE-TANSAKU-PROGRAM-1.GIF - 3,970BYTES

 

また、点Aから点Fまでと点Aから点Gまでのルートに関しても示します。 それぞれ、

1618のルートがあることが判ります。

 

ROUTE-TANSAKU-PROGRAM-2.GIF - 4,029BYTES

 

ROUTE-TANSAKU-PROGRAM-3.GIF - 4,472BYTES

 

RANDOMIZEを使っているので、ルート数は変わりませんが、個々のルートの順

番はプログラムを実行する度に変わってきます。

 

課題(その2)

 

正八面体正十二面体正二十面体に関する頂点間のルートを探すプログラムを

作成してください。

 

 

 

 


 

Topへ