レイアウト・アルゴリズムの選択

グラフに適したアルゴリズムは、実行時にユーザーが選択することも、 アプリケーションの開発時にプログラマーが選択することもできます。 このプロセスは、半自動的 (ユーザーが 介入する場合) または自動的 (ユーザーが 介入せずにアプリケーションによってすべて行われる場合) に行うことができます。
アプリケーションのプログラマーは、半自動レイアウトを選択してユーザーがレイアウトを 選択できるようにするか、または自動レイアウト を選択してユーザーが介入せずに アプリケーションによってすべて行われるようにすることができます。

半自動レイアウト

半自動レイアウトを使用するアプリケーションの場合、レイアウト・アルゴリズムの 選択はユーザーが行います。レイアウト・アルゴリズムを選択するためのメニューまたは他の何らかの 手段をアプリケーションにより提供することができます。
このプロセスは、場合によっては反復プロセスになることがあります。ユーザーは、 パラメーターに異なる値を指定してさまざまなレイアウト・アルゴリズムを試行したり、 最適なレイアウトを見つけるために手動でより細かく設定したり、あるいはその両方を行ったりする 場合があります。グラフがどのクラスに属しているかをユーザーが判別できるように、アプリケーションで、テキストによる説明を提供したり、グラフを自動的に検査したりすることができます。
例えば、レイアウト・インスタンスに関連付けられているグラフがツリーであるかどうか を判別するために、GraphLayoutUtil クラスには以下のメソッドが用意されています。
IsTree(layout, startNode) 
このメソッドについて詳しくは、ibm_ilog.graphlayout.GraphLayoutUtil.IsTree を参照してください。

自動レイアウト

自動レイアウトにする必要がある場合、レイアウト・アルゴリズムの選択は 以下のようにして行えます。
  • グラフの構造またはサイズ、あるいはその両方に基づいて 適切なレイアウト・アルゴリズムを決定するために、実行時にヒューリスティックまたはルールを 使用して動的に選択する。
  • 開発者が、使用されるグラフのタイプを把握しており、 適切なレイアウト・アルゴリズムを決定できる場合は、アプリケーションにハードコーディングする。