optNetwork

clique

Beschreibung

Die Aktion `clique` berechnet die maximalen Cliquen in einem Graphen. Eine Clique ist eine Teilmenge von Knoten, in der jeder Knoten direkt mit jedem anderen Knoten in der Teilmenge verbunden ist. Eine maximale Clique ist eine Clique, die nicht erweitert werden kann, indem ein weiterer benachbarter Knoten hinzugefügt wird. Diese Aktion ist nützlich in der sozialen Netzwerkanalyse, um eng verbundene Gruppen von Personen zu identifizieren, oder in der Bioinformatik, um funktionelle Module in Protein-Interaktions-Netzwerken zu finden.

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";
Einstellungen
ParameterBeschreibung
cliqueNumberGibt an, ob die Cliquenzahl des Graphen berechnet werden soll.
deterministicWenn auf True gesetzt, stellt sicher, dass jeder Aufruf (mit derselben Maschinenkonfiguration und Parametereinstellungen) dasselbe Endergebnis liefert.
directionGibt an, ob der Eingabegraph als gerichtet oder ungerichtet betrachtet werden soll.
displayGibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen.
distributedWenn auf True gesetzt, wird ein verteilter Graph verwendet.
graphGibt den zu verwendenden In-Memory-Graphen an.
indexOffsetGibt den Index-Offset für Bezeichner in den Protokoll- und Ergebnisausgabetabellen an.
linksGibt die Eingabedatentabelle an, die die Kanteninformationen des Graphen enthält.
linksVarGibt die Datenvariablennamen für die Kantentabelle an.
logFreqTimeSteuert die Frequenz n (in Sekunden) für die Anzeige von Iterationsprotokollen für einige Algorithmen.
logLevelSteuert die Menge der im SAS-Protokoll angezeigten Informationen.
maxCliquesGibt die maximale Anzahl der Cliquen an, die während der Cliquen-Enumeration zurückgegeben werden sollen.
maxLinkWeightGibt die maximale Summe der Kantengewichte in einer Clique an.
maxNodeWeightGibt die maximale Summe der Knotengewichte in einer Clique an.
maxSizeGibt die maximale Anzahl der Knoten in einer Clique an.
maxTimeGibt die maximale Zeitspanne an, die der Algorithmus aufwenden darf.
minLinkWeightGibt die minimale Summe der Kantengewichte in einer Clique an.
minNodeWeightGibt die minimale Summe der Knotengewichte in einer Clique an.
minSizeGibt die minimale Anzahl der Knoten in einer Clique an.
multiLinksWenn auf True gesetzt, werden Mehrfachkanten beim Lesen eines Eingabegraphen berücksichtigt.
nodesGibt die Eingabedatentabelle an, die die Knoteninformationen des Graphen enthält.
nodesVarGibt die Datenvariablennamen für die Knotentabelle an.
nThreadsGibt die maximale Anzahl der für die Multithread-Verarbeitung zu verwendenden Threads an.
outGibt die Ausgabedatentabelle an, die die maximalen Cliquen enthalten soll.
outGraphListGibt die Ausgabedatentabelle an, die zusammenfassende Informationen über In-Memory-Graphen enthalten soll.
outLinksGibt die Ausgabedatentabelle an, die die Kanteninformationen des Graphen zusammen mit allen Ergebnissen der Algorithmen enthält, die Metriken für Kanten berechnen.
outNodesGibt die Ausgabedatentabelle an, die die Knoteninformationen des Graphen zusammen mit allen Ergebnissen der Algorithmen enthält, die Metriken für Knoten berechnen.
outputTablesListet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen.
selfLinksWenn auf True gesetzt, werden Schleifen (Self-Links) beim Lesen eines Eingabegraphen berücksichtigt.
standardizedLabelsWenn auf True gesetzt, gibt an, dass die Eingabegraphdaten in einem standardisierten Format vorliegen.
standardizedLabelsOutWenn auf True gesetzt, wird angefordert, dass die Ausgabegraphdaten ein standardisiertes Format enthalten.
timeTypeGibt an, ob CPU-Zeit oder Echtzeit für das maximale Zeitlimit verwendet werden soll.
Erstellung von Beispieldaten für die Cliquen-Analyse

Dieser SAS-Code erstellt eine Beispieltabelle `mycas.Links`, die die Kanten eines ungerichteten Graphen darstellt. Dieser Graph enthält zwei unterschiedliche Cliquen, die zur Demonstration der `clique`-Aktion verwendet werden können.

Kopiert!
1DATA mycas.Links;
2 INFILE DATALINES delimiter=',';
3 INPUT from $ to $ @@;
4 DATALINES;
5A,B A,C A,D B,C B,D C,D
6A,E E,F F,G G,E
7;
8RUN;

Beispiele

Dieses Beispiel findet die größte maximale Clique im Eingabegraphen `mycas.Links`. Standardmäßig gibt die Aktion nur eine Clique zurück (die größte).

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 optNetwork.clique /
3 links={name='Links'}
4 out={name='Cliques', replace=true};
5RUN;
Ergebnis :
Die Ausgabetabelle `Cliques` wird erstellt und enthält die Knoten, die zur größten maximalen Clique gehören. In diesem Fall ist das die Clique {A, B, C, D}.

Dieses Beispiel listet alle maximalen Cliquen im Graphen auf, indem der Parameter `maxCliques` auf 'ALL' gesetzt wird.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 optNetwork.clique /
3 links={name='Links'}
4 maxCliques='ALL'
5 out={name='AllCliques', replace=true};
6RUN;
Ergebnis :
Die Ausgabetabelle `AllCliques` enthält alle gefundenen maximalen Cliquen. Für die Beispieldaten werden zwei Cliquen identifiziert: eine mit den Knoten {A, B, C, D} und eine weitere mit den Knoten {E, F, G}.

Dieses Beispiel findet alle maximalen Cliquen, die eine Größe zwischen 3 und 3 haben, unter Verwendung der Parameter `minSize` und `maxSize`.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 optNetwork.clique /
3 links={name='Links'}
4 maxCliques='ALL'
5 minSize=3
6 maxSize=3
7 out={name='CliquesSize3', replace=true};
8RUN;
Ergebnis :
Die Ausgabetabelle `CliquesSize3` enthält nur die Cliquen mit genau 3 Knoten. Für die Beispieldaten wird nur die Clique {E, F, G} zurückgegeben.

FAQ

Was ist der Zweck der `clique`-Aktion in SAS Viya?
Wie kann ich die Anzahl der zurückgegebenen Cliquen begrenzen?
Ist es möglich, Cliquen basierend auf ihrer Größe zu filtern?
Kann die `clique`-Aktion auf gerichteten Graphen ausgeführt werden?
Was ist die Cliquenzahl und wie kann ich sie berechnen lassen?
Wie kann ich die Ergebnisse der `clique`-Aktion in einer Ausgabetabelle speichern?