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
deterministic Lorsque 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.
direction Spécifie si le graphe d'entrée doit être considéré comme orienté ou non orienté.
display Spécifie une liste de tables de résultats à envoyer au client pour affichage.
distributed Lorsque défini sur True, utilise un graphe distribué.
graph Spécifie le graphe en mémoire à utiliser.
indexOffset Spé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.
links Spécifie la table de données d'entrée qui contient les informations sur les liens du graphe.
linksVar Spécifie les noms des variables de données pour la table des liens.
logFreqTime Contrôle la fréquence (en secondes) d'affichage des journaux d'itération pour certains algorithmes.
logLevel Contrôle la quantité d'informations affichées dans le journal SAS.
multiLinks Lorsque défini sur True, inclut les liens multiples lors de la lecture d'un graphe d'entrée.
nodes Spécifie la table de données d'entrée qui contient les informations sur les nœuds du graphe.
nodesVar Spécifie les noms des variables de données pour la table des nœuds.
nThreads Spécifie le nombre maximum de threads à utiliser pour le traitement multithread.
out Spécifie la table de données de sortie pour contenir les informations récapitulatives sur les composantes biconnexées.
outBCTreeLinks Spécifie la table de données de sortie pour contenir les liens de l'arbre de blocs-coupes (block-cut tree).
outBCTreeNodes Spécifie la table de données de sortie pour contenir les nœuds de l'arbre de blocs-coupes (block-cut tree).
outGraphList Spécifie la table de données de sortie pour contenir des informations récapitulatives sur les graphes en mémoire.
outLinks Spécifie la table de données de sortie pour contenir les informations sur les liens du graphe ainsi que les résultats des algorithmes.
outNodes Spé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.
outputTables Liste les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.
selfLinks Lorsque défini sur True, inclut les liens réflexifs (boucles) lors de la lecture d'un graphe d'entrée.
standardizedLabels Lorsque défini sur True, spécifie que les données du graphe d'entrée sont dans un format standardisé.
standardizedLabelsOut Lorsque 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...