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
cliqueNumber Gibt an, ob die Cliquenzahl des Graphen berechnet werden soll.
deterministic Wenn auf True gesetzt, stellt sicher, dass jeder Aufruf (mit derselben Maschinenkonfiguration und Parametereinstellungen) dasselbe Endergebnis liefert.
direction Gibt an, ob der Eingabegraph als gerichtet oder ungerichtet betrachtet werden soll.
display Gibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen.
distributed Wenn auf True gesetzt, wird ein verteilter Graph verwendet.
graph Gibt den zu verwendenden In-Memory-Graphen an.
indexOffset Gibt den Index-Offset für Bezeichner in den Protokoll- und Ergebnisausgabetabellen an.
links Gibt die Eingabedatentabelle an, die die Kanteninformationen des Graphen enthält.
linksVar Gibt die Datenvariablennamen für die Kantentabelle an.
logFreqTime Steuert die Frequenz n (in Sekunden) für die Anzeige von Iterationsprotokollen für einige Algorithmen.
logLevel Steuert die Menge der im SAS-Protokoll angezeigten Informationen.
maxCliques Gibt die maximale Anzahl der Cliquen an, die während der Cliquen-Enumeration zurückgegeben werden sollen.
maxLinkWeight Gibt die maximale Summe der Kantengewichte in einer Clique an.
maxNodeWeight Gibt die maximale Summe der Knotengewichte in einer Clique an.
maxSize Gibt die maximale Anzahl der Knoten in einer Clique an.
maxTime Gibt die maximale Zeitspanne an, die der Algorithmus aufwenden darf.
minLinkWeight Gibt die minimale Summe der Kantengewichte in einer Clique an.
minNodeWeight Gibt die minimale Summe der Knotengewichte in einer Clique an.
minSize Gibt die minimale Anzahl der Knoten in einer Clique an.
multiLinks Wenn auf True gesetzt, werden Mehrfachkanten beim Lesen eines Eingabegraphen berücksichtigt.
nodes Gibt die Eingabedatentabelle an, die die Knoteninformationen des Graphen enthält.
nodesVar Gibt die Datenvariablennamen für die Knotentabelle an.
nThreads Gibt die maximale Anzahl der für die Multithread-Verarbeitung zu verwendenden Threads an.
out Gibt die Ausgabedatentabelle an, die die maximalen Cliquen enthalten soll.
outGraphList Gibt die Ausgabedatentabelle an, die zusammenfassende Informationen über In-Memory-Graphen enthalten soll.
outLinks Gibt die Ausgabedatentabelle an, die die Kanteninformationen des Graphen zusammen mit allen Ergebnissen der Algorithmen enthält, die Metriken für Kanten berechnen.
outNodes Gibt die Ausgabedatentabelle an, die die Knoteninformationen des Graphen zusammen mit allen Ergebnissen der Algorithmen enthält, die Metriken für Knoten berechnen.
outputTables Listet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen.
selfLinks Wenn auf True gesetzt, werden Schleifen (Self-Links) beim Lesen eines Eingabegraphen berücksichtigt.
standardizedLabels Wenn auf True gesetzt, gibt an, dass die Eingabegraphdaten in einem standardisierten Format vorliegen.
standardizedLabelsOut Wenn auf True gesetzt, wird angefordert, dass die Ausgabegraphdaten ein standardisiertes Format enthalten.
timeType Gibt 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?

Zugehörige Szenarien

Anwendungsfall
Identifizierung von Betrugsringen in Finanztransaktionen

Eine Bank möchte organisierte Geldwäsche-Netzwerke aufdecken. Verdächtige Konten, die untereinander Transaktionen durchführen und eine voll vernetzte Gruppe (Clique) bilden, deu...

Anwendungsfall
Skalierbarkeitstest: Community-Erkennung in großen sozialen Netzwerken

Eine Social-Media-Plattform analysiert Millionen von Verbindungen, um Marketing-Zielgruppen (Communities) zu finden. Da der Graph riesig ist, muss die Berechnung zeitlich begren...

Anwendungsfall
Gezielte Suche nach funktionellen Proteinkomplexen (Edge Case)

In der Bioinformatik werden Protein-Interaktions-Netzwerke analysiert. Forscher sind speziell an Komplexen interessiert, die aus genau 4 bis 5 Proteinen bestehen, da diese oft s...