ネットワーク内の距離計算
「友達の友達」でネットワーク内の距離ということを書いた。
こういうネットワークを例にとって人と人との距離を計算するということ、さらにその結果からネットワーク(人間の集団)の結束力とか人間関係とかを測ることができるのではないか、ということを指摘したかったのだった。
例えばBLOGでトラックバックしたりされたり、コメントを付けたり付けられたりというふうなことからBLOGの世界全体でこういうことができるとおもしろいなぁ、とか思っているわけです。実際、こういうことを実現しているBLOGサイトもありますね。表示にJavaを使っているのでかなり重たいようですが。
そのためにはこういうデータをコンピュータで扱える必要があって、そういうことをやってみたのが下の表です。人間にとってはもちろんネットワークく図の方が認識しやすいのだが、コンピュータはそういう認識とか把握が苦手で、こういう表にしてやらないと扱うことができないのです。
例のようなネットワークに関して、それぞれのメンバ間の距離を計算するとこんなふうになります。
黄色い部分は距離が1ということでお隣どうしということである。これはネットワークを表している図からよみとって入力した。一律に「1」になっているのはそういう決めごとにしているからだ。FからDに行くのもその逆も「1」になっているのはお互いの関係が対等であることを反映している。
灰色に囲まれている「0」は自分自身との距離だ。普通に考えれば自分自身との距離がゼロというのは順当だと思うが、ここを「0.2」とか設定することもできる。一人の人間を情報や友情が通るときに時には変質することもあるだろうし。
背景が白いままの数字は、計算によって得られた各メンバ間の距離である。お約束に従って対角線に対して対象になっている。
この計算はPerlで書いた小さなプログラムで行ったのですが、リカーシブ・コールを実現できるはずがなかなかうまく行かなくて、時間がかかりました。変数を「my」にしているのに局所化できないという現象です。結局おかしな(カコワルイ)方法で回避しています。
CGIの形で公開してみようかと思っていますが、使い道ありますかね?
| 固定リンク
「プログラミング」カテゴリの記事
- HTMLのaudioオブジェクトで悩む(2017.07.09)
- JavaScriptで悩む(2017.04.01)
- プログラム言語「Ruby」で悩む(2016.07.03)
- 苗字の漢字で悩む(2015.09.06)
- 擬似乱数の図示化で悩む(2015.08.16)
コメント