Les utilisateurs expérimentés peuvent utiliser les paramètres ci-après.
Déplacements maximum autorisés par itération (FL)
A chaque itération, l'algorithme d'agencement déplace légèrement les noeuds. Ce déplacement ne doit pas être trop important, sinon l'algorithme peut ne pas converger. Il ne doit pas être trop faible non plus, sinon le nombre d'itérations nécessaires et le temps d'exécution s'accroissent.
Le nombre maximum de déplacements à chaque itération est contrôlé par un paramètre.
Pour définir ce paramètre :
Exemple de définition du nombre nombre maximum de déplacements par itération
forceDirectedLayout.setMaxAllowedMovePerIteration(3);
Les valeurs classiques pour ce paramètre vont de 1 à 30, mai elles dépendent de la
valeur du paramètre
PreferredLinksLength
.
Par exemple, si le paramètre PreferredLinksLength
a la valeur 1000, la valeur 100 convient toujours pour le paramètre MaxAllowedMovePerIteration
. Longueur / poids du lien (FL)
L'algorithme d'agencement est basé sur le calcul des forces d'attraction
et de rejet de chacun des noeuds et sur la recherche itérative d'une configuration d'équilibre. L'une de ces forces est associée à
l'objectif d'obtenir une longueur de lien proche de la longueur préférée spécifiée. Le poids de cette force, qui représente la force totale, est contrôlé par un paramètre.
Pour définir ce paramètre :
Exemple de définition de la force du poids/longueur de lien
forceDirectedLayout.setLinkLengthWeight(1.5);
La valeur par défaut est
1
. Si vous augmentez ce
paramètre, vous pouvez obtenir des longueurs de lien plus proches de la longueur spécifiée, mais si une trop forte augmentation peut accroître le nombre d'intersections de liaisons. Poids de rejet de noeud supplémentaire (FL)
Une force de rejet supplémentaire peut être calculée entre les noeuds
qui ne sont connectés par un lien. Le poids de cette force, qui représente la force totale, est contrôlé par un paramètre.
Pour définir ce paramètre :
Exemple de définition du poids de rejet de noeud
forceDirectedLayout.setAdditionalNodeRepulsionWeight(0.4);
La valeur par défaut de ce paramètre est
0.2f
.
Le fait d'augmenter (ou de réduire) le poids augment (ou réduit) la priorité qui est accordée au maintien des noeuds à une distance
supérieure au seuil de distance des noeuds. Voir setNodeDistanceThreshold. Le fait d'augmenter le poids réduit également la possibilité
pour l'algorithme d'atteindre rapidement une convergence. Dans les figures ci-après, vous pouvez comparer le même graphe avec un agencement dans lequel
le rejet supplémentaire est désactivé (Rejet supplémentaire désactivé, produit avec l'agencement Force-directed) puis activé (Rejet supplémentaire activé, produit avec l'agencement Force-directed). Vous pouvez voir que
la configuration “en étoile”, dans laquelle
de nombreux noeuds sont connectés au même noeud central, s'affiche mieux lorsque le rejet supplémentaire est activé.

Rejet supplémentaire désactivé, produit avec l'agencement Force-directed

Rejet supplémentaire activé, produit avec l'agencement Force-directed
Seuil de distance de noeuds (FL)
La force de rejet supplémentaire entre deux noeuds non connectés par un lien est calculée uniquement
lorsque leur distance est inférieure à une distance prédéfinie.
Pour définir cette distance :
Exemple de définition du seuil de distance de noeuds
forceDirectedLayout.setNodeDistanceThreshold(25);
Cette force supplémentaire est calculée uniquement si le poids de rejet de noeud supplémentaire
est défini par une valeur supérieure à la valeur par défaut
0
. Il est recommandé de définir pour ce seuil une valeur inférieure à la longueur préférée des liens.
Mode multiniveaux rapide : pourcentage maximum du temps écoulé pour l'étape d'amélioration (FL)
Dans le mode multiniveaux rapide, l'algorithme effectue une étape d'amélioration supplémentaire. Vous pouvez définir le pourcentage maximum du temps déjà écoulé qui doit être consacré à l'étape d'amélioration finale lorsque le mode d'agencement est FAST_MULTILEVEL_MODE. L'augmentation de cette valeur peut accroître la qualité de l'agencement, parfois au détriment de la vitesse.
Pour définir ce paramètre :
Exemple de définition du pourcentage maximum du temps écoulé
à utiliser pour l'étape d'amélioration finale
forceDirectedLayout.setMaxPercentageOfElapsedTimeForRefinement(500);
Ce paramètre est utilisé uniquement en mode multiniveaux rapide.
Mode multiniveaux rapide : pourcentage maximum du temps total autorisé pour l'étape d'amélioration (FL)
Dans le mode multiniveaux rapide, l'algorithme effectue une étape d'amélioration supplémentaire. Vous pouvez définir le temps total autorisé qui doit être consacré à l'étape d'amélioration finale lorsque le mode d'agencement est FAST_MULTILEVEL_MODE. L'augmentation de cette valeur peut accroître la qualité de l'agencement, parfois au détriment de la vitesse.
Pour définir ce paramètre :
Exemple de définition du pourcentage maximum du temps total à consacrer
à l'étape d'amélioration finale
forceDirectedLayout.setMaxPercentageOfTotalAllowedTimeForRefinement(5);
Ce paramètre est utilisé uniquement en mode multiniveaux rapide.
Mode multiniveaux rapide : nombre maximum de répétitions pour la convergence (FL)
Vous pouvez définir le nombre maximum de tentatives possibles pour atteindre la convergence
à chaque étape lorsque le mode d'agencement est FAST_MULTILEVEL_MODE.
L'augmentation de cette valeur peut accroître la qualité de l'agencement, parfois au détriment de la vitesse.
Pour définir ce paramètre :
Exemple de définition du nombre maximum de tentatives possibles pour atteindre la convergence
à chaque étape
forceDirectedLayout.setMaxRepeatForConvergence(5);
Ce paramètre est utilisé uniquement en mode multiniveaux rapide.