Modes d'agencement renversé

Un tracé en mode d'agencement radial et en mode d'agencement libre peut être ajusté en fonction du rapport hauteur/largeur de la zone de tracé. Pour équilibrer la hauteur et la profondeur du tracé, le mode d'agencement libre peut également utiliser l'alignement renversé.
L'alignement renversé peut être spécifié explicitement pour des noeuds individuels. L'algorithme d'agencement arborescent comporte également des modes d'agencement qui utilisent automatiquement l'alignement renversé lorsque cela est nécessaire.
Les modes d'agencement renversé fonctionnent comme suit :
Plusieurs agencements d'essai sont exécutés en mode d'agencement libre.
Dans le cadre de chaque essai, l'alignement renversé est défini pour certains noeuds individuels, tandis que l'alignement spécifié pour tous les autres noeuds est préservé.
L'algorithme choisit l'agencement d'essai qui correspond le mieux au rapport hauteur/largeur spécifié pour la zone de tracé.
Utilisez la méthode setAspectRatio, dont la valeur est un nombre.
L'exécution des modes d'agencement renversé dure un peu plus longtemps que les autres modes d'agencement.
Avec des arborescences très volumineuses, il est recommandé de définir une valeur élevée pour le temps imparti de l'agencement (par exemple, 50 secondes) lorsque vous utilisez les modes d'agencement renversé.
Pour définir ce mode :
Appelez :
layout.setAllowedTime(50000);
Lorsque vous utilisez cet appel, vous disposez de suffisamment de temps pour les itérations nécessaires de l'algorithme d'agencement. Etant donné qu'il serait trop long de vérifier toutes les possibilités d'utilisation d'alignement renversé, il existe des méthodes heuristiques qui vous permettent de ne vérifier que certains agencements d'essai en fonction des différentes stratégies représentées dans l'illustration ci-après.
Agencements
arborescents illustrant les différentes options du mode d'agencement renversé
Stratégies d'agencement renversé

Renverser les feuilles

Pour utiliser cette stratégie d'agencement renversé, définissez le mode d'agencement comme suit :
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_LEAVES_OVER);
La méthode heuristique essaie d'abord d'exécuter l'agencement sans aucun option de renversement supplémentaire. Elle tente ensuite de renverser les feuilles, puis les feuilles et leurs parents, puis les parents de ces parents, etc. Après quoi, les noeuds les plus proches de la racine utilisent l'alignement normal et les noeuds les plus proches des feuilles utilisent l'alignement renversé.

Renverser les racines

Pour utiliser cette stratégie d'agencement renversé, définissez le mode d'agencement comme suit :
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_OVER);
La méthode heuristique essaie d'abord d'exécuter l'agencement sans aucun option de renversement supplémentaire. Elle tente ensuite de renverser le noeud racine, puis le noeud racine et ses noeuds enfants, puis les noeuds enfants de ces noeuds enfants, etc. Après quoi, les noeuds les plus proches des feuilles utilisent l'alignement normal et les noeuds les plus proches de la racine utilisent l'alignement renversé.

Renverser les racines et les feuilles

Pour utiliser cette stratégie d'agencement renversé, définissez le mode d'agencement comme suit :
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_ROOTS_AND_LEAVES_OVER); 
La méthode heuristique essaie d'abord d'exécuter l'agencement sans aucun option de renversement supplémentaire. Elle tente ensuite de renverser le noeud racine et les feuilles simultanément, puis la racine et ses noeuds enfants et les feuilles de ses parents, puis, les noeuds enfants de ces noeuds enfants et les parents de ces parents, etc. Après quoi, les noeuds situés au milieu de l'arborescence utilisent l'alignement normal et les noeuds les plus proches de la racine ou des feuilles utilisent l'alignement renversé.
Cette stratégie est la plus lente, car elle inclut tous les essais de la stratégie Renverser les feuilles, ainsi que tous les essais de la stratégie Renverser les racines.

Renversement rapide

Le renversement rapide fournit un compromis entre toutes les stratégies. La méthode heuristique fait des essais avec une petite sélection des autres stratégies, et non avec toutes les possibilités. Par conséquent, elle est la stratégie la plus rapide pour les graphes volumineux.
Pour utiliser cette stratégie, définissez le mode d'agencement comme suit :
treeLayout.setLayoutMode(ibm_ilog.graphlayout.tree.TreeLayout.TIP_OVER);
Il est possible que les quatre stratégies produisent le même résultat car elles ne sont pas distinctes, c'est-à-dire que certains essais sont exécutés dans les quatre stratégies. En outre, les modes d'agencement renversé ne produisent pas nécessairement l'agencement optimal qui offre le meilleur ajustement vis-à-vis du rapport hauteur/largeur. Cela s'explique par le fait que certaines configurations inhabituelles de l'alignement renversé ne font jamais l'objet d'essais car elles rallongeraient considérablement le temps d'exécution.