optNetwork

biconnectedComponents

Description

L'action `biconnectedComponents` est utilisée pour trouver les composantes biconnexées et les points d'articulation d'un graphe. Une composante biconnexée (ou bloc) est un sous-graphe connexe maximal qui ne peut pas être déconnecté par la suppression d'un seul nœud. Un point d'articulation est un nœud dont la suppression augmenterait le nombre de composantes connexes du graphe. Cette analyse est fondamentale en théorie des graphes pour comprendre la robustesse et les points de défaillance potentiels d'un réseau.

optNetwork.biconnectedComponents <result=results> <status=rc> / deterministic=TRUE | FALSE, direction="DIRECTED" | "UNDIRECTED", display={...}, distributed=TRUE | FALSE, graph=integer, indexOffset=integer, links={...}, linksVar={...}, logFreqTime=integer, logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE", multiLinks=TRUE | FALSE, nodes={...}, nodesVar={...}, nThreads=integer, out={...}, outBCTreeLinks={...}, outBCTreeNodes={...}, outGraphList={...}, outLinks={...}, outNodes={...}, outputTables={...}, selfLinks=TRUE | FALSE, standardizedLabels=TRUE | FALSE, standardizedLabelsOut=TRUE | FALSE;
Paramètres
ParamètreDescription
deterministicLorsque défini sur True, garantit que chaque exécution (avec la même configuration machine et les mêmes paramètres) produit le même résultat final.
directionSpécifie si le graphe d'entrée doit être considéré comme orienté ou non orienté.
displaySpécifie une liste de tables de résultats à envoyer au client pour affichage.
distributedLorsque défini sur True, utilise un graphe distribué.
graphSpécifie le graphe en mémoire à utiliser.
indexOffsetSpécifie le décalage d'index pour les identifiants dans les journaux et les tables de résultats. Par exemple, si trois entités sont trouvées, elles sont étiquetées 0, 1, 2 par défaut. Si la valeur est 4, elles seront étiquetées 4, 5, 6.
linksSpécifie la table de données d'entrée qui contient les informations sur les liens du graphe.
linksVarSpécifie les noms des variables de données pour la table des liens.
logFreqTimeContrôle la fréquence (en secondes) d'affichage des journaux d'itération pour certains algorithmes.
logLevelContrôle la quantité d'informations affichées dans le journal SAS.
multiLinksLorsque défini sur True, inclut les liens multiples lors de la lecture d'un graphe d'entrée.
nodesSpécifie la table de données d'entrée qui contient les informations sur les nœuds du graphe.
nodesVarSpécifie les noms des variables de données pour la table des nœuds.
nThreadsSpécifie le nombre maximum de threads à utiliser pour le traitement multithread.
outSpécifie la table de données de sortie pour contenir les informations récapitulatives sur les composantes biconnexées.
outBCTreeLinksSpécifie la table de données de sortie pour contenir les liens de l'arbre de blocs-coupes (block-cut tree).
outBCTreeNodesSpécifie la table de données de sortie pour contenir les nœuds de l'arbre de blocs-coupes (block-cut tree).
outGraphListSpécifie la table de données de sortie pour contenir des informations récapitulatives sur les graphes en mémoire.
outLinksSpécifie la table de données de sortie pour contenir les informations sur les liens du graphe ainsi que les résultats des algorithmes.
outNodesSpécifie la table de données de sortie pour contenir les informations sur les nœuds du graphe ainsi que les résultats des algorithmes.
outputTablesListe les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.
selfLinksLorsque défini sur True, inclut les liens réflexifs (boucles) lors de la lecture d'un graphe d'entrée.
standardizedLabelsLorsque défini sur True, spécifie que les données du graphe d'entrée sont dans un format standardisé.
standardizedLabelsOutLorsque défini sur True, demande que les données du graphe de sortie incluent un format standardisé.
Préparation des Données Voir la fiche de ce code dataprep
Création de Données de Graphe

Pour utiliser l'action `biconnectedComponents`, il faut d'abord créer une table de liens qui définit la structure du graphe. Chaque ligne de la table représente un lien (ou arête) entre deux nœuds.

Copié !
1DATA mycas.LinkSetIn;
2 INPUT from $ to $ @@;
3 DATALINES;
4 A B A C A D B C D E D F E F
5 ;
6RUN;

Exemples

Cet exemple trouve les composantes biconnexées et les points d'articulation pour un graphe simple non orienté. Les résultats sont stockés dans les tables `ArtPoints` et `BiConComp`.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 ACTION optNetwork.biconnectedComponents /
3 links={name='LinkSetIn'},
4 outNodes={name='ArtPoints', replace=true},
5 out={name='BiConComp', replace=true};
6RUN;
7QUIT;
Résultat :
La table `ArtPoints` listera les nœuds qui sont des points d'articulation (dans ce cas, les nœuds 'A' et 'D'). La table `BiConComp` listera les composantes biconnexées, identifiées par un index unique, avec les nœuds et les liens qui les composent.

Cet exemple plus complexe analyse un graphe, identifie les composantes biconnexées et les points d'articulation, puis génère l'arbre de blocs-coupes. L'arbre de blocs-coupes est un graphe auxiliaire qui représente la relation entre les points d'articulation et les composantes biconnexées. Les nœuds de cet arbre sont les points d'articulation et les blocs (composantes biconnexées) du graphe original.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 ACTION optNetwork.biconnectedComponents /
3 links={name='LinkSetIn'},
4 outNodes={name='ArtPoints', replace=true},
5 outLinks={name='BiConCompLinks', replace=true},
6 outBCTreeNodes={name='BCTreeNodes', replace=true},
7 outBCTreeLinks={name='BCTreeLinks', replace=true};
8RUN;
9QUIT;
Résultat :
En plus des tables de l'exemple simple, deux tables supplémentaires sont créées. `BCTreeNodes` contient les nœuds de l'arbre de blocs-coupes, différenciant les nœuds originaux (points d'articulation) des nouveaux nœuds représentant les blocs. `BCTreeLinks` décrit les arêtes de cet arbre, montrant comment les points d'articulation connectent les différentes composantes biconnexées.

FAQ

Quel est l'objectif de l'action `biconnectedComponents` dans SAS Viya?
Qu'est-ce qu'un point d'articulation dans le contexte de l'analyse de graphes ?
Comment sont définies les composantes biconnexes ?
Quelles tables de sortie principales peuvent être générées par cette action ?
À quoi sert le paramètre `direction` ?
Quels sont les principaux résultats numériques retournés par l'action `biconnectedComponents` ?
Quel est l'objectif de l'action `biconnectedComponents` ?
Qu'est-ce qu'un point d'articulation dans le contexte de cette action ?
Qu'est-ce qu'une composante biconnexe ?
Quelles sont les principales tables de sortie générées par cette action ?
Peut-on utiliser cette action sur des graphes orientés (directed) ?

Scénarios associés

Cas d'usage
Analyse de Robustesse d'un Réseau Logistique Européen

Une entreprise de transport souhaite identifier les hubs logistiques (nœuds) les plus critiques de son réseau de distribution en Europe. La suppression d'un hub critique (point ...

Cas d'usage
Analyse de Communautés sur un Réseau Social par Pays (Volumétrie)

Un réseau social veut analyser la structure des communautés d'utilisateurs dans différents pays. L'objectif est d'exécuter l'analyse en parallèle pour chaque pays (en utilisant ...

Cas d'usage
Validation de la Topologie d'un Réseau Informatique avec Redondances et Nœuds Isolés

Un administrateur système veut vérifier la résilience de son réseau informatique. Le schéma du réseau contient des liens redondants (multi-liens), des équipements en auto-diagno...