The choice of the appropriate algorithm for a graph can
be done either by the user at run time or by the programmer when developing
the application. This process can be semiautomatic,
when the user is involved, or automatic,
when the application does everything with no user intervention.
As a programmer of applications, you can choose Semiautomatic layout to involve
the user in the choice of the layout, or Automatic layout, in which
case the application does everything with no user action.
Semiautomatic layout
For applications using a semiautomatic layout, the choice
of the layout algorithm is done by the user. The application can provide
a menu or some other way to select the layout algorithm.
In some cases, it can be an iterative process. The user
may try different layout algorithms with different values for the
parameters or may apply manual refinements to find the best layout,
or both. The application can provide some help using textual explanations
or by automatically checking the graph to find out to which class
it belongs.
For example, to detect whether the graph that has been
attached to a layout instance is a tree, the GraphLayoutUtil class provides the method:
IsTree(layout, startNode)
For details on this method, see ibm_ilog.graphlayout.GraphLayoutUtil.IsTree. See also Attaching or detaching a grapher.
Automatic layout
If an automatic layout is needed, the choice of the layout
algorithm can be:
- Chosen dynamically at run time with heuristics or rules to determine the appropriate layout algorithm depending on the structure or size of the graph, or both
- Hard-coded if the developer knows what types of graphs are used and can determine the appropriate layout algorithm.