La liste suivante de questions et réponses fournit des suggestions utiles pour l'utilisation des algorithmes d'agencement. Vous pouvez trouver des réponses à des questions que vous vous posez lorsque vous utilisez le package d'agencement de graphe.
Questions et réponses sur les algorithmes d'agencement
Question |
Réponse |
---|---|
J'effectue l'agencement et rien ne se passe (aucun noeud n'est déplacé). Pourquoi ? |
L'une des causes possibles peut être la suivante : les algorithmes d'agencement fournis dans le produit sont tous conçus pour ne rien faire, par défaut, si aucune modification n'a eu lieu dans le graphe depuis la dernière exécution réussie de l'agencement sur le même graphe. Une modification signifie qu'un noeud a été déplacé, ou qu'un noeud ou un lien a été ajouté, supprimé, déplacé ou remodelé.
Vous pouvez forcer une nouvelle exécution de l'agencement, même si aucune modification n'a eu lieu en appelant la méthode performLayout(force:Boolean = false, traverse:Boolean = false):int avec une valeur
true pour l'argument force. Une autre cause possible peut être la suivante : une erreur ou un cas spécial s'est produit lors de l'agencement. D'abord, vous devez vérifier si la méthode performLayout() a émis une erreur. Si aucune erreur n'a été générée, extrayez la propriété code de l'instance du rapport d'agencement. Vérifiez cette valeur par rapport à la documentation de la classe de rapport d'agencement appropriée. (Pour plus d'informations, voir Utilisation d'un rapport d'agencement de graphe.)
|
Avec l'algorithme Force-directed en mode incrémentiel, après avoir exécuté une fois l'agencement, je ne constate aucun mouvement même si j'utilise l'option d'agencement forcé. Pourquoi ? |
La cause probable est que la première fois que vous avez exécuté l'agencement, l'algorithme a atteint la convergence. Lorsque l'agencement est à nouveau effectué, celui-ci détecte que la convergence a déjà été atteinte et s'arrête. Si vous souhaitez vraiment continuer à travailler, par exemple, pour "désencombrer" une partie du graphe, vous pouvez avoir besoin de déplacer un ou plusieurs noeuds pour modifier la configuration initiale. (L'algorithme est dépendant de la configuration
initiale.) |
Après l'exécution de l'agencement, le graphe est agencé loin de sa position initiale. Pourquoi ? |
La plupart des algorithmes d'agencement utilisent un paramètre de région d'agencement qui contrôle la taille et la position de l'agencement. (Pour plus d'informations, voir Région d'agencement.) En fonction de la valeur de ce paramètre, les noeuds peuvent être déplacés loin de leur position initiale. Pour savoir si un algorithme d'agencement est conçu pour utiliser un paramètre de région d'agencement, vérifiez dans la
documentation si la classe d'agencement remplace la méthode suivante de la classe de base pour renvoyer true :D'autres algorithmes ont un mécanisme différent qui vous permet de spécifier l'emplacement souhaité de l'agencement. Il peut arriver que la valeur par défaut du paramètre d'emplacement soit telle que le graphe est agencé loin de sa position initiale. |
Lorsque j'utilise certains algorithmes d'agencement sur certains graphes, des noeuds se chevauchent. Pourquoi et que puis-je faire ? |
Une cause possible peut être liée aux différents manières dont les algorithmes d'agencement traitent la taille de noeuds. - Les algorithmes arborescents et hiérarchiques évitent toujours le chevauchement des noeuds. (L'algorithme de lien ne déplace pas les noeuds. Il remodèle uniquement les noeuds pour limiter les croisements et les chevauchements. La taille des noeuds est prise en compte.)
- L'algorithme Force-directed (avec l'option de respect des tailles de noeud activée), dans de nombreux cas, réussit à éviter le chevauchement des noeuds.
En tout cas, si l'algorithme d'agencement prend en charge le mécanisme de région d'agencement (voir Région d'agencement), essayez d'augmenter la taille de la région d'agencement. Par exemple, si votre graphe contient des centaines de noeuds, il n'est pas raisonnable d'utiliser une région d'agencement de petite taille, par exemple 600x600. Il n'y a pas suffisamment d'espace pour tous les noeuds. Essayez une région d'agencement plus grande, par exemple
5000x5000. La taille optimale de la région d'agencement dépend non seulement du nombre de noeuds, mais aussi de leur taille. Si les noeuds sont relativement grands par rapport à la taille de la région d'agencement, il peut être nécessaire d'ajuster certains des paramètres (par exemple, la longueur de lien préférée pour l'agencement Force-directed). |
Dans certains réseaux, plusieurs sous-réseaux ne sont pas connectés. Comment cela affecte-t-il les algorithmes d'agencement ? |
Cela dépend de la classe d'agencement que vous utilisez : -
ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout :
Cet algorithme prend en charge les graphes déconnectés, mais il est généralement préférable d'utiliser le paramètre d'agencement de composants connectés. (Voir Agencement des composants connectés.) -
ibm_ilog.graphlayout.hierarchical.HierarchicalLayout et ibm_ilog.graphlayout.tree.TreeLayout :
Ils disposent d'une prise en charge intégrée pour les graphes déconnectés. Vous pouvez également
utiliser la prise en charge automatique de la classe de base. (Voir Agencement des composants connectés.)-
ibm_ilog.graphlayout.longlink.LongLinkLayout , ibm_ilog.graphlayout.shortlink.ShortLinkLayout, ibm_ilog.graphlayout.grid.GridLayout , ibm_ilog.graphlayout.random.RandomLayout :
Ces algorithmes prennent en charge les graphes connectés et les graphes déconnectés. Leur comportement est le même pour les deux catégories de graphe. |
Il existe certains attributs du réseau que nous connaissons (par exemple, nous connaissons le commutateur de base et le centre). De tels attributs sont-ils pris en compte par l'algorithme d'agencement ? |
Cela dépend de l'algorithme d'agencement. -
L'agencement circulaire est conçu pour vous permettre de spécifier des informations sur la topologie physique du réseau. Vous pouvez indiquer les noeuds qui appartiennent au même cluster (en anneau ou en étoile), l'ordre des noeuds dans le cluster et le noeud qui constitue le centre d'un cluster en étoile.
- Dans l'agencement arborescent, vous pouvez spécifier le noeud racine. - Dans l'algorithme d'agencement hiérarchique, vous pouvez spécifier des index de position de noeud et des index de niveau, ainsi que des contraintes de positionnement relatif. |
Si j'utilise IBM ILOG Dojo Diagrammer sur différents ordinateurs avec un navigateur différent, j'obtiens parfois des agencements différents pour le même graphe et avec les mêmes paramètres. Pourquoi ?
|
1. Des ordinateurs et des navigateurs différents peuvent être plus lents ou plus rapides. Si l'algorithme d'agencement que vous utilisez arrête le calcul lorsque le temps imparti s'est écoulé, un ordinateur ou un navigateur plus lent entraîne l'arrêt du calcul plus tôt. Cela peut être la cause des résultats différents.
Cela peut se produire avec le même ordinateur et le même navigateur si la charge de l'ordinateur a augmenté. Vous pouvez avoir besoin d'augmenter la spécification de temps imparti lors de l'exécution sur un ordinateur ou un navigateur plus lent.
|
J'utilise les algorithmes d'agencement avec liens longs et avec liens courts pour agencer les liens d'un réseau d'objets graphiques.
Lorsque plusieurs liens se
connectent sur le même côté d'un noeud, ils se chevauchent alors que je souhaite qu'ils respectent le paramètre d'écart entre liens (ou de taille de grille)
de l'agencement de liens. Pourquoi ? |
Certains paramètres dimensionnels des algorithmes d'agencement doivent être sélectionnés en fonction de la taille des noeuds.
C'est la cas des paramètres d'écart entre liens et de
distance de contournement pour l'agencement avec liens courts et la taille de grille pour l'agencement avec liens longs. En effet, ces valeurs par défaut ne sont pas appropriées lorsque les noeud sont grands. Comparées à cette taille, les valeurs par défaut des paramètres sont si petites qu'elles semblent être nulles. La solution consiste à augmenter les valeurs des paramètres dimensionnels en prenant en compte la taille des noeuds. Si des noeuds différents ont des tailles différentes, la taille moyenne ou la taille la plus grande des noeuds peut être utilisée pour calculer les paramètres en tant que fraction de cette taille. |