グラフを奇麗に描画するアルゴリズム
TRANSCRIPT
グラフを奇麗に描画するアルゴリズム
同じグラフ?
力学モデル
• グラフの描画方法の一つ
• 各ノードに力学的エネルギーが加わるとしてそれが安定する位置を探す
Fruchterman-Reingold アルゴリズム
• 力学モデルの一つ
• 各ノードは自分以外のノードから斥力,自分と繋がっているノードから引力をうける
• 受ける力に応じて位置を修正することを有限回繰り返す
• 引力
• 斥力
• ただしcを定数,areaを領域の面積として
引力と斥力
Fa(d) =d2
k
Fr(d) = �k2
d
k = c
rarea
|V |
引力と斥力の関係
温度パラメータt
• Fruchterman-Reingold アルゴリズムの重要なパラメータの一つ
• ノードの位置の変位の最大値を決める
• 例えば最初tは横幅の10分の1とし,徐々に減少させていく
アルゴリズムの流れ1. 各頂点に働く引力/斥力を計算
2. 1. で計算した値をもとに頂点を動かす.ただしこのとき枠外に出ないようにする.また変位は温度パラメータt以下とする
3. 温度パラメータtを下げる
4. 以上の処理をある一定回数繰り返す
• 基本的なオーダは (高速アルゴリズム有)O(|V |2 + |E|)
実際のノードの動き
before / after
別の例
before / after
参考• Graph Drawing by Force-directed Placement (1991) by Thomas M. J. Fruchterman , Edward , Edward M. Reingoldhttp://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.8444
• グラフ(ネットワーク)を奇麗に描画するアルゴリズム http://d.hatena.ne.jp/mFumi/20140213/1392287682