network

core

Beschreibung

Berechnet die Kernzerlegung eines Graphen. Die k-Kern-Zerlegung eines Graphen ist eine Methode zur Identifizierung dicht verbundener Untergraphen. Ein k-Kern ist ein maximaler Untergraph, in dem jeder Knoten einen Grad von mindestens k hat. Diese Analyse ist nützlich, um kohäsive Gruppen in sozialen Netzwerken, biologischen Netzwerken oder anderen komplexen Systemen zu finden.

network.core <result=results> <status=rc> / deterministic=TRUE | FALSE, direction="DIRECTED" | "UNDIRECTED", display={...}, distributed=TRUE | FALSE, graph=integer, indexOffset=integer, links={...}, linksVar={...}, logFreqTime=integer, logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE", maxTime=double, multiLinks=TRUE | FALSE, nodes={...}, nodesVar={...}, nThreads=integer, outGraphList={...}, outLinks={...}, outNodes={...}, outputTables={...}, selfLinks=TRUE | FALSE, standardizedLabels=TRUE | FALSE, standardizedLabelsOut=TRUE | FALSE, timeType="CPU" | "REAL";
Einstellungen
ParameterBeschreibung
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 Log- und Ergebnisausgabetabellen an.
linksGibt die Eingabedatentabelle an, die die Verbindungsinformationen des Graphen enthält.
linksVarGibt die Datenvariablennamen für die Verbindungstabelle an.
logFreqTimeSteuert die Frequenz n (in Sekunden) für die Anzeige von Iterationsprotokollen für einige Algorithmen.
logLevelSteuert die Menge der Informationen, die im SAS-Log angezeigt werden.
maxTimeGibt die maximale Zeit an, die der Algorithmus aufwenden darf.
multiLinksWenn auf TRUE gesetzt, werden Mehrfachverbindungen 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 von Threads an, die für die multithreaded Verarbeitung verwendet werden sollen.
outGraphListGibt die Ausgabedatentabelle an, die zusammenfassende Informationen über In-Memory-Graphen enthalten soll.
outLinksGibt die Ausgabedatentabelle an, die die Verbindungsinformationen des Graphen zusammen mit den Ergebnissen der Algorithmen enthält.
outNodesGibt die Ausgabedatentabelle an, die die Knoteninformationen des Graphen zusammen mit den Ergebnissen der Algorithmen enthält.
outputTablesListet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen.
selfLinksWenn auf TRUE gesetzt, werden Selbstverbindungen beim Lesen eines Eingabegraphen berücksichtigt.
standardizedLabelsWenn auf TRUE gesetzt, gibt an, dass die Eingabegraphdaten in einem standardisierten Format vorliegen.
standardizedLabelsOutWenn auf TRUE gesetzt, fordert an, 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

Dieser Code erstellt eine CAS-Tabelle 'Links', die die Verbindungen eines Graphen darstellt. Diese Tabelle wird in den folgenden Beispielen verwendet, um die Kernzerlegung zu demonstrieren.

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

Beispiele

Dieses Beispiel berechnet die Kernzerlegung des in 'mycas.Links' definierten Graphen. Die Ergebnisse, die die Kernnummer für jeden Knoten enthalten, werden in der Tabelle 'mycas.OutNodes' gespeichert.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 LOADACTIONSET "network";
3 ACTION network.core /
4 links={name='Links'}
5 outNodes={name='OutNodes', replace=true};
6 RUN;
7 ACTION TABLE.fetch / TABLE='OutNodes';
8 RUN;
9QUIT;
Ergebnis :
Die Tabelle 'OutNodes' wird angezeigt und enthält die Spalten 'node' und 'core'. Die Spalte 'core' gibt die höchste k-Kern-Nummer an, zu der jeder Knoten gehört. Knoten A, B, C, D, E haben einen Kernwert von 4, während F, G, H einen Kernwert von 2 haben.

Dieses Beispiel behandelt den Graphen als gerichtet und berechnet die Kernzerlegung. Der Parameter 'direction' ist auf 'DIRECTED' gesetzt. Die resultierenden Kernnummern für die Knoten werden in 'mycas.OutNodesDirected' gespeichert und können sich von denen des ungerichteten Falls unterscheiden, da die Knotengrade unterschiedlich berechnet werden (In-Grad + Aus-Grad).

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 LOADACTIONSET "network";
3 ACTION network.core /
4 links={name='Links'}
5 direction='DIRECTED'
6 outNodes={name='OutNodesDirected', replace=true};
7 RUN;
8 ACTION TABLE.fetch / TABLE='OutNodesDirected';
9 RUN;
10QUIT;
Ergebnis :
Die Tabelle 'OutNodesDirected' wird angezeigt. Die Kernwerte werden basierend auf den Graden im gerichteten Graphen berechnet. Zum Beispiel hat Knoten A einen Aus-Grad von 4 und einen In-Grad von 0, was zu einem Gesamtgrad von 4 führt. Die Kernwerte werden entsprechend angepasst.

Dieses Beispiel zeigt, wie die Tabelle der Kernzerlegung selbst ausgegeben wird, die Informationen über jeden k-Kern enthält. Dies wird durch Angabe der Tabelle 'CoreSummary' im Parameter 'outputTables' erreicht.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 LOADACTIONSET "network";
3 ACTION network.core /
4 links={name='Links'}
5 outputTables={names={CoreSummary='mycas.CoreSummary'}};
6 RUN;
7 ACTION TABLE.fetch / TABLE='mycas.CoreSummary';
8 RUN;
9QUIT;
Ergebnis :
Die Tabelle 'CoreSummary' wird angezeigt. Sie enthält Spalten wie 'core_k', 'n_nodes' und 'n_links', die die Kernnummer, die Anzahl der Knoten und die Anzahl der Verbindungen für jeden k-Kern-Untergraphen zusammenfassen.

FAQ

Was ist die `network.core` Aktion?
Was versteht man unter der Kernnummer eines Knotens?
Welche Hauptparameter sind für die `core` Aktion erforderlich?
Was ist der Unterschied zwischen `direction='DIRECTED'` und `direction='UNDIRECTED'`?
Wie kann ich die Ergebnisse der `core` Aktion speichern?