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.
| Paramètre | Description |
|---|---|
| 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. |
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`.
| 1 | DATA mycas.LinkSetIn; |
| 2 | INPUT from $ to $ @@; |
| 3 | DATALINES; |
| 4 | A B A C A D B C B D C D |
| 5 | E F E G F G H I H J I J |
| 6 | ; |
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`.
| 1 | PROC 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; |
| 10 | QUIT; |
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.
| 1 | PROC 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; |
| 11 | QUIT; |
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.
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'optNetwork'; |
| 3 | ACTION optNetwork.clique / |
| 4 | links={name='LinkSetIn'} |
| 5 | cliqueNumber=true; |
| 6 | RUN; |
| 7 | QUIT; |