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