Algorithme d'agencement circulaire (CL)

Les topologies en anneau et en étoile sont quelque peu similaires. Les illustrations Topologie en anneau et topologie en étoile donnent un aperçu de ces similarités.
Topologie en anneau simple
comparée à une topologie en étoile simple
Topologie en anneau
Topologie en étoile simple
comparée à une topologie en anneau simple
topologie en étoile
Les deux topologies sont composées de noeuds représentés dans un cercle. Pour l'algorithme CL, la seule différence entre les topologies en anneau et en étoile est que la topologie en étoile comporte un noeud spécial, appelé centre de l'étoile, tracé au centre du cercle.
Selon le mode de groupement (voir Mode de groupement (CL)), l'agencement permet de spécifier l'ordre des noeuds dans le cercle (voir Appartenance à un cluster et ordre des noeuds dans un cluster (CL)) ou il calcule l'ordre automatiquement afin de minimiser le nombre d'intersections de liaison.
La topologie de réseau peut se composer de plusieurs anneaux ou étoiles. Ces anneaux et étoiles peuvent être partiellement interconnectés, ce qui signifie qu'au moins deux clusters peuvent avoir un noeud commun, comme illustré dans la figure Anneaux interconnectés par des noeuds communs. Ils peuvent aussi être interconnectés par des liens entre les noeuds de deux clusters différents comme illustré dans la figure Anneaux interconnectés par des liens.
Trois anneaux interconnectés par des noeuds communs
Anneaux interconnectés par des noeuds communs
Trois anneaux interconnectés par des liens
Anneaux interconnectés par des liens
L'algorithme CL agence les topologies en anneau et en étoile de manière à préserver l'identité visuelle de chaque cluster et à éviter le chevauchement de noeuds et de clusters. Reportez-vous aux exemples de tracé à la section Exemples d'agencement circulaire (CL).
Pour comprendre comment l'agencement est effectué dans les modes de groupement AUTOMATIC et BY_CLUSTER_IDS, observons un graphe dans lequel chaque noeud représente une topologie de réseau en anneau ou en étoile. Ajoutons un lien entre deux noeuds chaque fois qu'il y a une interconnexion entre les clusters correspondants. L'algorithme CL est prévu pour le cas où le graphe obtenu de cette manière est une arborescence (c'est-à-dire, un graphe sans cycles). Si les cycles existent, l'agencement est effectué à l'aide d'une spanning tree du graphe.
Si on démarre à partir d'un cluster racine (un anneau ou une étoile), les clusters qui sont connectés au cluster racine sont dessinés dans un cercle qui est concentrique au cluster racine. Le rayon du cercle est calculé pour éviter les clusters se chevauchant. Ensuite, l'algorithme dispose le clusters connectés à ces derniers clusters sur un cercle plus large, et ainsi de suite. Chaque cercle est appelé un niveau.
Pour les réseaux qui ne sont pas connectés (c'est-à-dire, les groupes déconnectés de clusters qui existent dans ce graphe), il existe plusieurs arborescences STA. Chacun de ces arborescences est disposée séparément et placée près des autres. Cela est illustré dans les exemples de tracé présentés dans Exemples d'agencement circulaire (CL).
Dans le mode de groupement BY_SUBGRAPHS, chaque sous-graphe (cluster) conserve sa position initiale. Les sous-graphes peuvent être placés soit par un algorithme d'agencement soit de manière interactive.
Exemple d'agencement circulaire
L'exemple de code suivant utilise la classe ibm_ilog.graphlayout.circular.CircularLayout. Cet exemple de code illustre comment effectuer un agencement circulaire (CL) :
dojo.require("ibm_ilog.graphlayout.circular.CircularLayout");

var layout = new ibm_ilog.graphlayout.circular.CircularLayout();
graph.setNodeLayout(layout);
graph.performGraphLayout();