graphe mot-clé) est la norme de l’industrie pour représenter des systèmes où les relations sont mutuelles, égalitaires ou non hiérarchiques. Dans un graphe non orienté, l’opérateur de connexion -- indique un lien entre deux nœuds sans suggérer qu’un nœud mène à, cause ou gère l’autre.
La philosophie des relations non orientées
Les graphes non orientés sont le langage naturel des réseaux physiques et logiques. Dans des scénarios tels que les grilles de serveurs, le partage de fichiers pair à pair (P2P), la connectivité sociale ou les câblages matériels, la « direction » des données est souvent fluide ou bidirectionnelle. Utiliser une déclaration de graphe non orienté élimine le biais cognitif du « source » et de la « destination », permettant au lecteur de se concentrer sur la graphe supprime le biais cognitif du « source » et de la « destination », permettant au lecteur de se concentrer sur la topologie—l’intégrité structurelle et la densité du réseau lui-même.
1. Mécanique de la syntaxe
Définir un graphe non orienté suit une syntaxe presque identique à celle d’un digraphe, avec une modification cruciale : l’opérateur. En remplaçant -> par --, vous indiquez au compilateur DOT que ces connexions représentent des associations symétriques.
graph NetworkTopology {
// Une association bidirectionnelle
"Serveur_01" -- "Serveur_02";
// Une connexion en maillage à plusieurs nœuds
"Serveur_02" -- "Serveur_03" -- "Serveur_04";
} 
Stratégies avancées de disposition : le « modèle ressort »
Un piège courant pour les nouveaux utilisateurs de Graphviz est d’essayer de représenter des graphes non orientés en utilisant le moteur par défaut dot moteur. Étant donné que le dot le moteur est optimisé pour le classement hiérarchique, il produit souvent des dispositions déséquilibrées et inconfortables pour les données non orientées. En revanche, pour vos données non orientées,graphedéfinitions, vous devriez utiliser des moteurs conçus pour l’équilibre :
- neato : Le choix principal pour les graphes non orientés. Il utilise l’algorithme « Kamada-Kawai », qui traite chaque arête comme un ressort physique. Les nœuds connectés se rapprochent, tandis que les nœuds non liés s’éloignent jusqu’à ce que le système atteigne un état d’énergie minimale.
- fdp : Une variante de l’algorithme de modèle à ressort, spécifiquement optimisée pour les grands jeux de données. Elle est très efficace pour éviter le chevauchement des nœuds dans les cartes de réseaux denses.
Exemple d’implémentation
En spécifiant le moteur layoutdans votre fichier DOT, vous assurez que quiconque rend votre code obtiendra une sortie visuelle correcte et équilibrée, indépendamment de son installation locale.
graph MeshArchitecture {
layout=neato; // Force l'utilisation du moteur de modèle à ressort
// Défauts globaux esthétiques
node [shape=hexagon, style=filled, fillcolor=orange];
edge [color=gray, style=dotted];
// Définition de la maille
"Node_A" -- "Node_B";
"Node_A" -- "Node_C";
"Node_B" -- "Node_C";
"Node_C" -- "Node_D";
} 
Optimisation des visualisations non orientées pour le référencement et la lisibilité
Lors de la cartographie des réseaux non orientés, la disposition visuelle peut rapidement devenir encombrée. Suivez ces stratégies pour maintenir des résultats de qualité professionnelle :
- Évitez les graphes « chevelu » : Si une carte de réseau est trop dense pour être comprise, la solution Graphviz n’est pas d’ajouter davantage d’arêtes — c’est de regrouper. Utilisez des sous-graphes pour diviser une grande maille en « quartiers » logiques, reliés par moins d’arêtes, mais plus significatives.
- Exploitez les longueurs des arêtes : Dans
neato, vous pouvez définirlendes attributs sur les arêtes (par exemple,"A" -- "B" [len=2.0]). Cela vous permet d’augmenter mathématiquement la distance physique entre les nœuds, donnant ainsi effectivement à votre réseau un « espace de respiration » dans les zones denses. - Concentrez-vous sur les regroupements de nœuds : Même sans le
cluster_préfixe utilisé dans les digraphes, vous pouvez regrouper des nœuds dans des sous-graphes pour aider le moteur de modèle de ressort à comprendre que certains nœuds doivent rester physiquement proches.
Maîtriser la syntaxe des graphes non orientés vous permet de documenter le « tissu » de votre infrastructure plutôt que seulement le « flux ». En utilisant les moteurs de disposition appropriés et les attributs du modèle de ressort, vous pouvez créer des cartes réseau à la fois rigoureuses sur le plan mathématique et intuitives visuellement.