Chapter Seventy nine

第79話


地下鉄の大江戸線の定期券の料金計算は他の路線との接続駅が多いので大変だというニュースが流れていた。経路の組み合わせが膨大でランダムネットワークに似ているような話だと思い、少し楽しくなった。

前回のプログラムでネットワークの状態と生成されるパターンが記録できるようになったので、落ち着いて信号の連鎖の様子を見ようと思い、手書きでネットワークを書きはじめた。32個しか素子はないのだが、集中力をかなり要求される作業の末、線がのたうちまわり紙面からはみ出して、紙を2枚つなぎ合わせてやっとできあがった。

自動的にネットワークを表示するプログラムができないかとしばし考えていたが、31次元空間の球の上に素子を等間隔で配置すれば任意のネットワークを線が交差せずに接続することができそうだと思い付いた。これも2次元に表示させる段階で交差してしまうので実質的にはあまり意味はないのでボツ。32個の素子を任意に接続し、接続した線が交差しないようにするようなうまい手はないとあきらめた。

とは言え、手書きも大変なので、素子の配置はマウスで行い配線だけ自動的に書かせるプログラムを作ることにした。x-yグラフを使ってカーソルを素子に見立てて作ってみよう。パターンもファイルに記録されているので素子のオンオフに従ってカーソルの色が変化するようにすれば流れが分かりやすいかも知れない。話が決まればプログラムを作るのは簡単だ。

下のダイアグラムでは、上半分でx-yグラフの属性ノードを使ってカーソル名やカーソル位置を設定し、下のホワイルループでカーソル位置に応じた矢印の描画を行っている。ケースのFalseではパターンに応じてカーソルの色を変更したり、カーソル位置の変化を読み取ったりしている。

カーソルの位置を変えると矢印が追従してくれるので、ネットワークの構造が分かりやすいような配置に試行錯誤を楽しむことができる。

cursor Posと書かれたアイコンはカーソルリストからカーソル座標を抜き出して2次元配列に変換するVIだ。クラスターの配列より2次元配列の方がカーソル変化をチェックしやすいのでこのVIを作ることにした。

もう一つ下のVIが矢印を描画するVIだ。線で繋いだだけだとinとoutの区別がつかないので簡単な矢印を付けた。解像度が粗いので美しさに欠けるのが難点。

このVIを使うとネットワークのつながりを調べることは、手で描くより楽にできるし、意外に頭を使う楽しい作業だ。ただ、せっかくきれいに配置してもカーソルの配置を記録する機能を作らなかったので、ちょっと空しいかも知れない。

 

See you!

Nigel Yamaguchi


戻る