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
cliqueNumberSpécifie s'il faut calculer le nombre de cliques du graphe.
deterministicLorsque 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.
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 données de résultats.
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 n (en secondes) pour l'affichage des journaux d'itération pour certains algorithmes.
logLevelContrôle la quantité d'informations affichées dans le journal SAS.
maxCliquesSpécifie le nombre maximum de cliques à retourner lors de l'énumération des cliques.
maxLinkWeightSpécifie la somme maximale des poids des liens dans une clique.
maxNodeWeightSpécifie la somme maximale des poids des nœuds dans une clique.
maxSizeSpécifie le nombre maximum de nœuds dans une clique.
maxTimeSpécifie la durée maximale que l'algorithme peut passer.
minLinkWeightSpécifie la somme minimale des poids des liens dans une clique.
minNodeWeightSpécifie la somme minimale des poids des nœuds dans une clique.
minSizeSpécifie le nombre minimum de nœuds dans une clique.
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 cliques maximales.
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 qui calculent des métriques sur les liens.
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 qui calculent des métriques sur les nœuds.
outputTablesListe les noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.
selfLinksLorsque défini sur True, inclut les auto-liens 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é.
timeTypeSpé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 ?