L'action `core` calcule la décomposition en k-cœurs d'un graphe. Un k-cœur est un sous-graphe maximal où chaque sommet a un degré d'au moins k. Cette analyse est utile pour comprendre la cohésion et la structure hiérarchique des réseaux.
| Paramètre | Description |
|---|---|
| deterministic | Lorsqu'il est défini sur True, garantit que chaque invocation (avec la même configuration machine et les mêmes paramètres) produit le même résultat final. |
| direction | Spécifie s'il faut considérer le graphe d'entrée comme orienté ou non orienté. |
| display | Spécifie une liste de tables de résultats à envoyer au client pour affichage. |
| distributed | Lorsqu'il est 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 données de résultats. |
| 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 n (en secondes) pour l'affichage des journaux d'itération pour certains algorithmes. |
| logLevel | Contrôle la quantité d'informations affichées dans le journal SAS. |
| maxTime | Spécifie la durée maximale que l'algorithme doit consacrer. |
| multiLinks | Lorsqu'il est 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. |
| outGraphList | Spécifie la table de données de sortie pour contenir les 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 tous les résultats des algorithmes qui calculent des métriques sur les liens. |
| outNodes | Spécifie la table de données de sortie pour contenir les informations sur les nœuds du graphe ainsi que tous les résultats des algorithmes qui calculent des métriques sur les nœuds. |
| outputTables | Liste les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur. |
| selfLinks | Lorsqu'il est défini sur True, inclut les auto-liens lors de la lecture d'un graphe d'entrée. |
| standardizedLabels | Lorsqu'il est défini sur True, spécifie que les données du graphe d'entrée sont dans un format standardisé. |
| standardizedLabelsOut | Lorsqu'il est défini sur True, demande que les données du graphe de sortie incluent un format standardisé. |
| timeType | Spécifie s'il faut utiliser le temps CPU ou le temps réel pour la limite de temps maximale. |
Cet exemple de code SAS crée une table CAS nommée `mycas.Links` qui définit les relations (liens) entre différents nœuds d'un graphe. Chaque ligne représente un lien dirigé d'un nœud `from` vers un nœud `to`.
| 1 | DATA mycas.Links; |
| 2 | INFILE DATALINES missover; |
| 3 | INPUT from $ to $ @@; |
| 4 | DATALINES; |
| 5 | A B A C B C B D C D |
| 6 | ; |
| 7 | RUN; |
Cet exemple exécute l'action `core` sur la table `Links` pour calculer la décomposition en k-cœurs du graphe. Les résultats, y compris le numéro de cœur pour chaque nœud, sont stockés dans la table de sortie `mycas.OutNodes`.
| 1 | PROC CAS; |
| 2 | ACTION network.core / |
| 3 | links={name='Links'} |
| 4 | outNodes={name='OutNodes', replace=true}; |
| 5 | RUN; |
| 6 | QUIT; |
Cet exemple calcule la décomposition en k-cœurs en traitant le graphe comme orienté (`direction='DIRECTED'`). Il génère deux tables de sortie : `OutNodesDirected` pour les numéros de cœur des nœuds et `OutLinksDirected` pour les numéros de cœur des liens.
| 1 | PROC CAS; |
| 2 | ACTION network.core / |
| 3 | direction='DIRECTED' |
| 4 | links={name='Links'} |
| 5 | outNodes={name='OutNodesDirected', replace=true} |
| 6 | outLinks={name='OutLinksDirected', replace=true}; |
| 7 | RUN; |
| 8 | QUIT; |
Une équipe marketing souhaite identifier les groupes d'utilisateurs les plus cohésifs (les 'noyaux') au sein d'un réseau social d'entreprise pour cibler des campagnes d'ambassad...
Un opérateur télécom analyse la résilience de son réseau physique. Il s'agit de tester l'action sur un volume de données plus important généré programmatiquement pour simuler un...
Une banque cherche des schémas de blanchiment d'argent ('Smurfing') où les fonds circulent dans une direction spécifique entre des comptes complices. Ici, la direction des trans...