HL の機能および制限

機能

  • 水平レベルまたは垂直レベルで重複がないノードを編成します。
  • ほとんどのリンクが短くて同じ方向 (左から右、上から下など) に一様にフローするようにグラフを配置します。
  • リンク交差数を削減します。 ほとんどの場合、交差がない、あるいは交差が少しだけの描画を生成します。
  • 多くの場合、グラフの対称性を強調した、バランスの取れた描画を生成します。
  • セルフリンク (つまり、ソース・ノードと宛先ノードが同じリンク)、同じノード・ペア間の複数リンク、および環状をサポートしています。
  • 効率的で拡張が容易なアルゴリズム。非常にまばらなグラフおよび中密度のグラフで、ノード数が非常に多い場合でも比較的迅速に優れたレイアウトを生成します。
  • いくつかの整列オプションおよびオフセット・オプションを提供します。
  • リンクをノードに接続するときのポートの指定をサポートしています。リンクが接続できるノードの側面 (上、下、左、右) を指定したり、 接続に使用する相対ポート位置を指定したりすることができます。
  • レイアウトの制約をサポートしています。相対位置制約 (例えば、ノードが別のノードの上にある、別のノードの左にある) を指定できます。
  • インクリメンタル・モードおよび非インクリメンタル・モード インクリメンタル・モードでは、以前のノード位置が考慮されます。 ノードの相対順序を変更せずにノードを配置して、グラフのインクリメンタルな変更時にレイアウトが安定するようにします。
  • 計算時間は、ノード数、レベル数、複数のレベルを交差するリンクの数によって異なります。 ほとんどの場合、リンクは隣り合うレベル間に配置されます。これにより、計算時間が長くならないで済みます。

制限

  • アルゴリズムは、リンク交差を最小化しようとします (これは一般的に、 NP 完全 問題です)。 任意のグラフ・サイズに対してこの問題を迅速に解決するのは、数学的に不可能です。 そのため、アルゴリズムは高速なヒューリスティックを使用して優れたレイアウトを得ますが、常にリンク交差の理論的最小数になるわけではありません。
  • アルゴリズムは、すべてのリンクが同じ方向に一様に向かうようにノードを配置しようとします。 このようにリンクの循環を配置するのは不可能です。そのため、いくつかのリンクが反転して反対方向に向かうグラフを生成する場合があります。 アルゴリズムは、反転されるリンクの数を最小化しようとします (これもまた NP 完全問題です)。 そのため、アルゴリズムは高速なヒューリスティックを使用して優れたレイアウトを得ますが、常に反転されるリンクの理論的最小数になるわけではありません。
  • 適切な描画を得るために必要な計算時間は、リンクの曲折点数に最も依存します。 アルゴリズムは、リンクがレベルを交差するときに常に 1 つの曲折点を配置するため、レイアウトで複数のリンクにまたがる多くの長いリンクが必要な場合は、曲折点数の増加が比較的早くなる可能性があります。 そのため、高密度のグラフ (リンク数がノード数と比べて比較的多い) または多くのノード・レベルが必要なグラフでは、レイアウト・プロセスで時間がかかる可能性があります。