network

core

##set_network

Description

L'action `core` du set d'actions `network` permet de calculer la décomposition en cœurs (core decompositionTechnique d'analyse de réseaux (proc NETWORK) identifiant des sous-structures robustes (k-cores) où chaque nœud est connecté à au moins k autres membres, révélant la cohésion interne du graphe.) d'un graphe. C'est un peu comme éplucher un oignon structurel : l'algorithme identifie des sous-graphes imbriqués de plus en plus denses. Un k-cœurSous-graphe maximal où chaque nœud possède au moins k voisins à l'intérieur de ce groupe. Utilisé en analyse de réseaux pour identifier les zones de forte cohésion et les sommets les plus connectés. est le sous-graphe maximal où chaque nœud a un degré d'au moins k. C'est une méthode extrêmement efficace pour identifier les structures de cohésion, détecter les nœuds centraux ou simplifier visuellement un réseau complexe sans perdre ses propriétés fondamentales. C'est l'outil idéal pour séparer le 'noyau dur' de la périphérie bruyante de vos données.

Syntaxe Officielle
network.core /
links={caslib="string", name="table-name", where="expression"},
nodes={caslib="string", name="table-name", where="expression"},
outNodes={name="table-name", replace=true},
direction="DIRECTED" | "UNDIRECTED",
logLevel="NONE" | "BASIC" | "MODERATE" | "AGGRESSIVE",
nThreads=integer,
deterministic=true | false;

Paramètres Clés

Nom du paramètre Description
links Spécifie la table CAS contenant les liens (arêtes) du graphe. C'est l'ingrédient principal de votre soupe de données .
nodes Spécifie la table CAS contenant les informations sur les nœuds (sommets). Optionnel si tous les nœuds sont présents dans la table des liens .
outNodes Définit la table de sortie qui contiendra les résultats de la décomposition, notamment la colonne '_core_' indiquant le niveau de chaque nœud .
direction Indique si le graphe doit être traité comme orienté ('DIRECTED') ou non ('UNDIRECTED'). Par défaut, on considère que tout le monde est ami avec tout le monde sans flèche directionnelle .
logLevel Définit le niveau de détail des messages dans le journal. 'AGGRESSIVE' si vous êtes du genre curieux, 'NONE' si vous préférez le silence .
nThreads Le nombre de processeurs (threads) à mobiliser pour le calcul. Plus il y en a, plus l'oignon est épluché vite .
deterministic Garantit que vous obtiendrez exactement le même résultat à chaque exécution sur la même machine. La reproductibilité, c'est la vie .

Préparation des données

Création d'un graphe de test pour la décomposition en cœurs

Ce code génère un petit réseau avec un triangle dense (nœuds 1, 2, 3) et des connexions périphériques pour illustrer les différents niveaux de cœurs.

1DATA mycas.LinkSetIn;
2 INPUT from $ to $;
3 DATALINES;
41 2
51 3
62 3
71 4
82 4
93 4
104 5
114 6
125 6
13;
14RUN;

Exemples d'utilisation

Analyse de base du cœur de réseau

Lancement de la décomposition en cœurs avec les paramètres par défaut pour identifier les structures denses.

1PROC CAS;
2 network.core /
3 links = {name = "LinkSetIn"},
4 outNodes = {name = "NodeSetOut", replace = true};
5 RUN;
6 ACTION TABLE.fetch / TABLE = "NodeSetOut";
7RUN;
8QUIT;
Résultat Attendu :
Une table CAS contenant chaque nœud avec sa valeur de cœur (core shell). Les nœuds du bloc central auront une valeur plus élevée que les nœuds périphériques.
Décomposition avancée avec multi-threading et logs détaillés

Exemple utilisant plusieurs threads, un niveau de log agressif et forçant le caractère déterministe pour des environnements de production stables.

1PROC CAS;
2 network.core /
3 direction = "UNDIRECTED",
4 links = {name = "LinkSetIn"},
5 outNodes = {name = "NodeSetOut_Advanced", replace = true},
6 logLevel = "AGGRESSIVE",
7 nThreads = 4,
8 deterministic = true,
9 indexOffset = 10;
10 RUN;
11 ACTION TABLE.fetch / TABLE = "NodeSetOut_Advanced";
12RUN;
13QUIT;
Résultat Attendu :
Une analyse performante avec un compte-rendu détaillé dans le journal SAS et une table de résultats complète.