La sélection de l'algorithme approprié pour un graphe peut être effectuée par l'utilisateur lors de la phase d'exécution ou par le programmeur lors du développement de l'application. Ce processus peut être semi-automatique, lorsque l'utilisateur est impliqué, ou automatique, lorsque les actions de l'application ne nécessitent aucune intervention de l'utilisateur.
En tant que programmeur d'applications, vous pouvez choisir Agencement semi-automatique pour impliquer l'utilisateur dans la sélection de l'agencement, ou Agencement automatique, auquel cas, les actions de l'application ne nécessitent aucune intervention de l'utilisateur.
Agencement semi-automatique
Pour les applications qui utilisent un agencement semi-automatique, la sélection de l'algorithme d'agencement est effectuée par l'utilisateur. L'application peut fournir un menu ou un autre moyen pour sélectionner l'algorithme d'agencement.
Dans certains cas, il peut s'agir d'un processus itératif. L'utilisateur peut tenter différents algorithmes d'agencement avec différentes valeurs pour les paramètres et/ou appliquer des améliorations manuelles pour trouver l'agencement le plus approprié. L'application peut fournir de l'aide via des textes explicatifs ou en vérifiant automatiquement le graphe pour rechercher la classe à laquelle il appartient.
Par exemple, pour déterminer si le graphe qui a été attaché à une instance d'agencement est une arborescence, la classe GraphLayoutUtil fournit la méthode suivante :
IsTree(layout, startNode)
Pour plus d'informations sur cette méthode, voir ibm_ilog.graphlayout.GraphLayoutUtil.IsTree.
Agencement automatique
Si un agencement automatique est nécessaire, la sélection de l'algorithme d'agencement peut être :
- effectuée dynamiquement lors de la phase d'exécution via des méthodes heuristiques ou des règles, pour déterminer l'algorithme d'agencement approprié en fonction de la structure et/ou de la taille du graphe ;
- codée en dur si le développeur connaît les types de graphe qui sont utilisés et peut déterminer l'algorithme d'agencement approprié.