Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

1. JUNG 入門

2006.01.19 株式会社四次元データ 鈴木 圭

1.1. JUNG とは

JUNG とは

  • Java で記述されたオープンソースライブラリ
  • ネットワーク(グラフ)で表現できる情報の解析や視覚化を行うためのフレームワーク

であり、

  • 有向/無向グラフ
  • マルチモーダルグラフ
  • 平行辺(多重辺)を持つグラフ
  • ハイパーグラフ(1つの辺が2個以上の頂点を含むグラフ)

などを扱うことが出来ます。

JUNG で扱う「グラフ」とは円グラフや棒グラフのような統計結果を表示するものではなく、グラフ理論で扱うような、頂点と辺の集合で表されるグラフのことを指します。グラフ理論などと言うと難しそうな印象を持たれるかも知れませんが、「一筆書き問題」や「巡回セールスマン問題」、「四色問題(地図の彩色問題)」などはグラフ理論における有名な問題であり、聞いたことがある、という方も多いと思います。グラフ(ネットワーク)構造を持つ身近な例としては、「WWW(=グラフ) における HTML 文書(=頂点)とリンク(=辺)」や「地図(=グラフ)における建物(=頂点)とそれを結ぶ道路(=辺)」などがあります。

JUNG ではグラフ理論やデータマイニング、ソーシャルネットワーク分析から多くのアルゴリズムが実装されています。具体的には

  • クラスタリングのためのルーチン
  • ランダムグラフの生成
  • 統計解析
  • ネットワーク距離や最大流の計算
  • 中心性, PageRank, HITS などの測定

などが実装されています。JUNG にはグラフの各要素(グラフ自身や頂点, 辺)に任意のデータを関連付ける仕組みがあります。この仕組みを利用することで、グラフとは別に複雑なデータ構造を用意することなく、グラフを解析するアルゴリズムを記述することができます。

JUNG ではグラフ(ネットワーク)の解析だけでなく、視覚化するための機能も含みます。これにより、グラフ(ネットワーク)を対話的に扱うアプリケーションを簡単に作成することができます。視覚化には、JUNG で提供されている(もしくは独自に作成する)レイアウト・アルゴリズムや描画クラスを使用します。グラフの視覚化に関しては、MVC(Model-View-Controller)モデルのように機能が分離されており、必要な部分を開発するだけで独自のアプリケーションを開発できるようになっています。

JUNG には、この他にもグラフデータのファイルに対する読み書きなど、「グラフを扱うアプリケーション」で必要とされる多くの機能が含まれています。

ここでは、JUNG の持つ膨大な機能のうち「グラフの視覚化」と「対話的操作」について解説していきます。

1.2. JUNG の取得

JUNG のバイナリは SourceForge から取得することができます。また、http://jung.sourceforge.net/ が JUNG のメインサイトです。ここには JUNG に関する情報や各種ドキュメントが揃っているので、一読することをお勧めします。JUNG のメインサイトのダウンロードページには JUNG が依存しているライブラリが記されているので、JUNG を使う場合はそれらも取得する必要があります。

今回ダウンロードしたものを以下に示します。

JUNG jung-1.7.0.jar
Apache Jakarta Commons Collections commons-collections-3.1.zip
CERN Colt colt-1.2.0.zip
Xerces Xerces-J-bin.2.7.1.zip


  TECHSCOREのTOPページへ 次のページへ
TECHSCORE PR
PR
PR
PR
PR
PR

techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa