optNetwork

clique

Description

L'action `clique` est utilisée pour trouver les cliques maximales dans un graphe non orienté. Une clique maximale est un sous-ensemble de sommets où chaque sommet est connecté à tous les autres sommets du sous-ensemble, et il n'est pas possible d'ajouter un autre sommet au sous-ensemble sans perdre cette propriété de complétude.

optNetwork.clique <result=results> <status=rc> / cliqueNumber=TRUE | FALSE, deterministic=TRUE | FALSE, direction="DIRECTED" | "UNDIRECTED", display={...}, distributed=TRUE | FALSE, graph=integer, indexOffset=integer, links={...}, linksVar={...}, logFreqTime=integer, logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE", maxCliques=64-bit-integer | "ALL", maxLinkWeight=double, maxNodeWeight=double, maxSize=integer, maxTime=double, minLinkWeight=double, minNodeWeight=double, minSize=integer, multiLinks=TRUE | FALSE, nodes={...}, nodesVar={...}, nThreads=integer, out={...}, outGraphList={...}, outLinks={...}, outNodes={...}, outputTables={...}, selfLinks=TRUE | FALSE, standardizedLabels=TRUE | FALSE, standardizedLabelsOut=TRUE | FALSE, timeType="CPU" | "REAL";
Paramètres
ParamètreDescription
cliqueNumber Spécifie s'il faut calculer le nombre de cliques du graphe.
deterministic Lorsque 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 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 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.
maxCliques Spécifie le nombre maximum de cliques à retourner lors de l'énumération des cliques.
maxLinkWeight Spécifie la somme maximale des poids des liens dans une clique.
maxNodeWeight Spécifie la somme maximale des poids des nœuds dans une clique.
maxSize Spécifie le nombre maximum de nœuds dans une clique.
maxTime Spécifie la durée maximale que l'algorithme peut passer.
minLinkWeight Spécifie la somme minimale des poids des liens dans une clique.
minNodeWeight Spécifie la somme minimale des poids des nœuds dans une clique.
minSize Spécifie le nombre minimum de nœuds dans une clique.
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 cliques maximales.
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 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 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 Lorsque défini sur True, inclut les auto-liens 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é.
timeType Spécifie s'il faut utiliser le temps CPU ou le temps réel pour la limite de temps maximale.
Préparation des Données Voir la fiche de ce code dataprep
Création de Données de Graphe

Cet exemple crée un ensemble de données `mycas.LinkSetIn` qui représente les liens d'un graphe simple. Chaque ligne définit un lien entre deux nœuds, `from` et `to`.

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

Exemples

Cet exemple trouve toutes les cliques maximales dans le graphe défini par `mycas.LinkSetIn` et stocke les résultats dans la table `mycas.Cliques`.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 LOADACTIONSET 'optNetwork';
3 ACTION optNetwork.clique /
4 links={name='LinkSetIn'}
5 out={name='Cliques', replace=true}
6 maxCliques='ALL';
7 RUN;
8 ACTION TABLE.fetch / TABLE='Cliques';
9 RUN;
10QUIT;
Résultat :
La table `mycas.Cliques` est créée, contenant deux cliques. La première clique contient les nœuds A, B, C, D. La seconde clique contient les nœuds E, F, G. Une autre clique contient H, I, J.

Cet exemple illustre comment trouver les cliques maximales tout en limitant leur taille. Le paramètre `maxSize=3` restreint les cliques à un maximum de trois nœuds.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 LOADACTIONSET 'optNetwork';
3 ACTION optNetwork.clique /
4 links={name='LinkSetIn'}
5 maxSize=3
6 out={name='Cliques_MaxSize3', replace=true}
7 maxCliques='ALL';
8 RUN;
9 ACTION TABLE.fetch / TABLE='Cliques_MaxSize3';
10 RUN;
11QUIT;
Résultat :
La table `mycas.Cliques_MaxSize3` est créée. Elle contient les cliques maximales du graphe qui ont une taille de 3 ou moins. Dans ce cas, les cliques {A,B,C}, {A,B,D}, {A,C,D}, {B,C,D}, {E,F,G} et {H,I,J} sont trouvées.

Cet exemple montre comment utiliser le paramètre `cliqueNumber` pour calculer le nombre de cliques du graphe, qui est la taille de la plus grande clique.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 LOADACTIONSET 'optNetwork';
3 ACTION optNetwork.clique /
4 links={name='LinkSetIn'}
5 cliqueNumber=true;
6 RUN;
7QUIT;
Résultat :
Le journal SAS affichera le résumé de la solution, qui inclut le 'Nombre de Cliques'. Pour le graphe d'exemple, le nombre de cliques est 4, car la plus grande clique {A, B, C, D} a une taille de 4.

FAQ

À quoi sert l'action `clique` ?
Quels sont les principaux paramètres pour contrôler la recherche de cliques ?
Comment puis-je trouver uniquement les cliques d'une taille spécifique, par exemple 5 nœuds ?
Qu'est-ce que le 'nombre de clique' et comment puis-je le calculer ?
Dans quel format les résultats sont-ils fournis ?

Scénarios associés

Cas d'usage
Analyse de Paniers - Création de Bundles Produits

Une plateforme e-commerce souhaite identifier des groupes de produits (3 ou 4 articles maximum) qui sont systématiquement achetés ensemble. L'objectif est de créer des offres pr...

Cas d'usage
Détection de Réseaux de Fraude (Ring) - Test de Charge

Un opérateur télécom suspecte l'existence de 'Rings' de fraude (numéros s'appelant tous entre eux pour gonfler artificiellement le trafic). Sur un volume important d'appels simu...

Cas d'usage
Ciblage 'Squad 5' - Filtre Strict et Liens Manquants

Un réseau social lance un concours réservé strictement aux groupes de 5 amis tous connectés entre eux (ni plus, ni moins). Le test doit vérifier la capacité de l'action à filtre...