"SpringElectricalEmbedding" (グラフレイアウトメソッド)
"SpringElectricalEmbedding" (グラフレイアウトメソッド)
- GraphLayoutの頂点レイアウト
- バネ電気埋込みを使ってグラフの頂点をレイアウトする.
詳細とオプション
- バネ電気埋込みは,各頂点に電荷があり,各辺がバネに対応している場合に,機械・電気エネルギーを最小に抑えるようにグラフの頂点を配置するグラフ描画手法である.
- バネ電気埋込みは,通常,複雑で大きいグラフのレイアウトに使われる.
- グラフの頂点 viのレイアウト xiは,以下でエネルギー関数
を最小化することで計算される. -
.
は反発力の相対強度を制御する定数で,
は相対的なバネの長さである.- 頂点は
に埋め込むことができる. - 次は,使用可能なモデルパラメータである.
-
"RepulsiveForcePower" 反発力係数 
"SpringConstant" バネ係数 
- 次は,使用可能なグラフパラメータである.
-
"EdgeWeighted" 辺の重みを使うかどうか "VertexWeighted" 頂点の重みを使うかどうか - 次は,エネルギーの最小化過程の制御に使用可能な設定である.
-
"EnergyControl" 最小化中にエネルギー関数をどのように制御するか "InferentialDistance" 遠くの頂点からの推定のためのカットオフ距離 "MaxIterations" 最大反復回数 "RandomSeed" 初期頂点配置のための乱数生成器のシード "StepControl" エネルギーの最小化中のステップ長の変更方法 "StepLength" 頂点の移動に使用する初期ステップ長 "Tolerance" 過程の終了に使用する許容範囲 - 次は,レイアウトの制御に使用可能な設定である.
-
"Rotation" Automatic レイアウトの回転
例題
すべて開く すべて閉じる例 (2)
Graph[{12, 13, 15, 19, 24, 26, 210, 34, 37, 311, 48, 412, 56, 57, 513, 68, 614, 78, 715, 816, 910, 911, 913, 1012, 1014, 1112, 1115, 1216, 1314, 1315, 1416, 1516}, GraphLayout -> "SpringElectricalEmbedding"]"SpringElectricalEmbedding"はほとんどのグラフに最適である:
KnightTourGraph[10, 10, GraphLayout -> "SpringElectricalEmbedding"]オプション (11)
"EdgeWeighted" (1)
"EdgeWeighted"Trueと設定すると,辺の重みが使われる:
edge = RandomInteger[#]# + 1& /@ Range[0, 10];
weight = RandomInteger[{1, 5}, 11];Graph[edge, EdgeWeight -> weight, GraphLayout -> {"SpringElectricalEmbedding", "EdgeWeighted" -> #}]& /@ {True, False}"EnergyControl" (1)
オプション"EnergyControl"e を使って,最小化中の系の総エネルギーに対する制限を指定する:
edge = RandomInteger[#]# + 1& /@ Range[0, 20];Graph[edge, {GraphLayout -> {"SpringElectricalEmbedding", "EnergyControl" -> #, "StepControl" -> "Monotonic"}}]& /@ {Automatic, "Monotonic", "NonMonotonic"}