tkenichi の日記

毒舌皮肉系恥さらし日記

JUNGを利用してスモールワールドシミュレータを作り直してみた。

JUNG とは the University of California のコンピュータサイエンス専攻の大学院生が作った Java のネットワークとグラフ理論のための汎用フレームワークです。視覚化はそれほど多機能ではない、といっても私の用途には十分。シミュレーションで遊ぶためのアルゴリズムがたくさん実装されているのでとても便利。

というわけで、JUNGの勉強も兼ねて、スモールワールドシミュレータを作り直してみました。ノードがアニメーションで動くとなかなか楽しいです。

Watts Strogatz Small World Simulator (JUNG)

ノードを付け替える確率を与えて、ボタンを押すと、実際に付け替えが発生し、それによってノード間の平均距離が変化します。ノードの半径はそこから出ているリンクの本数に比例します。ノードをマウスでつかんで動かすことができます。


無駄な車輪の再発明をしないために使えるものは何でも使おう、と思ってはいても、なかなか難しいのが実情。

  • 使えそうなものを調べるための時間が結構かかる。自分で作った方が早い?
  • ライブラリの仕様を理解するのに時間がかかる。
  • すでに設計したあとだと、方針が合わずに組み込むのが難しい。

などがその理由。JUNG は2番目について言えば習得するのは比較的楽だった。有用なサンプルがたくさん付いているのと、もともとの自作のグラフのためのクラスと設計が似ていたせいもあるかな。