?> biconnectedComponents - WeAreCAS
optNetwork

biconnectedComponents

Beschreibung

Die Aktion `biconnectedComponents` wird verwendet, um die bikonnektierten Komponenten und Artikulationspunkte eines Graphen zu berechnen. Ein Graphen wird als bikonnektiert bezeichnet, wenn er auch nach dem Entfernen eines beliebigen Knotens zusammenhängend bleibt. Eine bikonnektierte Komponente ist ein maximaler bikonnektierter Untergraph. Jeder Knoten, dessen Entfernung die Anzahl der zusammenhängenden Komponenten eines Graphen erhöht, wird als Artikulationspunkt bezeichnet. Diese Analyse ist entscheidend für das Verständnis der Robustheit und Verletzlichkeit von Netzwerken, wie z.B. Kommunikations- oder Transportnetze.

optNetwork.biconnectedComponents { deterministic=TRUE | FALSE, direction="DIRECTED" | "UNDIRECTED", display={...}, distributed=TRUE | FALSE, graph=integer, indexOffset=integer, links={...}, linksVar={...}, logFreqTime=integer, logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE", multiLinks=TRUE | FALSE, nodes={...}, nodesVar={...}, nThreads=integer, out={...}, outBCTreeLinks={...}, outBCTreeNodes={...}, outGraphList={...}, outLinks={...}, outNodes={...}, outputTables={...}, selfLinks=TRUE | FALSE, standardizedLabels=TRUE | FALSE, standardizedLabelsOut=TRUE | FALSE };
Einstellungen
ParameterBeschreibung
deterministicGibt an, ob bei jeder Ausführung (bei gleicher Maschinenkonfiguration und Parametereinstellungen) dasselbe Endergebnis erzeugt werden soll. Standardmäßig ist dies TRUE.
directionGibt an, ob der Eingabegraph als gerichtet oder ungerichtet betrachtet werden soll. Standard ist UNDIRECTED.
displayGibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen.
distributedGibt an, ob ein verteilter Graph verwendet werden soll. Standardmäßig ist dies FALSE.
graphGibt den zu verwendenden In-Memory-Graphen an.
indexOffsetGibt den Index-Offset für Bezeichner in den Log- und Ergebnisausgabetabellen an. Standard ist 0.
linksGibt die Eingabedatentabelle an, die die Linkinformationen des Graphen enthält.
linksVarGibt die Datenvariablennamen für die Linktabelle an.
logFreqTimeSteuert die Frequenz (in Sekunden) für die Anzeige von Iterationsprotokollen. Standard ist 5.
logLevelSteuert die Menge der im SAS-Log angezeigten Informationen. Standard ist BASIC.
multiLinksGibt an, ob beim Lesen eines Eingabegraphen Mehrfachlinks berücksichtigt werden sollen. Standardmäßig ist dies TRUE.
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 für die multithreaded Verarbeitung an.
outGibt die Ausgabedatentabelle an, die die zusammenfassenden Informationen über die bikonnektierten Komponenten enthalten soll.
outBCTreeLinksGibt die Ausgabedatentabelle an, die die Links im Block-Cut-Baum enthalten soll.
outBCTreeNodesGibt die Ausgabedatentabelle an, die die Knoten im Block-Cut-Baum enthalten soll.
outGraphListGibt die Ausgabedatentabelle an, die zusammenfassende Informationen über In-Memory-Graphen enthalten soll.
outLinksGibt die Ausgabedatentabelle an, die die Linkinformationen des Graphen zusammen mit den Ergebnissen der Algorithmen enthalten soll.
outNodesGibt die Ausgabedatentabelle an, die die Knoteninformationen des Graphen zusammen mit den Ergebnissen der Algorithmen enthalten soll.
outputTablesListet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen.
selfLinksGibt an, ob beim Lesen eines Eingabegraphen Selbstverknüpfungen berücksichtigt werden sollen. Standardmäßig ist dies TRUE.
standardizedLabelsGibt an, dass die Eingabegraphdaten in einem standardisierten Format vorliegen. Standardmäßig ist dies FALSE.
standardizedLabelsOutFordert an, dass die Ausgabegraphdaten ein standardisiertes Format enthalten. Standardmäßig ist dies FALSE.
Datenaufbereitung
Erstellung von Beispieldaten

Dieser Code erstellt eine Beispieltabelle `mycas.LinkSetIn`, die die Verbindungen (Links) eines Graphen darstellt. Jeder Link wird durch ein 'from'- und ein 'to'-Knotenpaar definiert. Diese Tabelle wird dann in den folgenden Beispielen verwendet, um die bikonnektierten Komponenten zu finden.

data mycas.LinkSetIn; 
   infile datalines delimiter=',';
   input from $ to $ @@;
   datalines;
A,B A,F B,C B,E C,D
D,E D,G G,H H,I I,J
J,K K,L L,H
;
run;

Beispiele

Dies ist ein grundlegendes Beispiel für die Ausführung der Aktion `biconnectedComponents`. Es verwendet die zuvor erstellte `LinkSetIn`-Tabelle und gibt die resultierenden Artikulationspunkte und bikonnektierten Komponenten in den Tabellen `mycas.ArtPoints` bzw. `mycas.BiConComp` aus.

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2 ACTION optNetwork.biconnectedComponents /
3 links={name='LinkSetIn'}
4 outNodes={name='mycas.ArtPoints', replace=true}
5 out={name='mycas.BiConComp', replace=true};
6RUN;
Ergebnis :
Die Aktion wird ausgeführt und erstellt zwei Ausgabetabellen: `mycas.ArtPoints`, die die identifizierten Artikulationspunkte enthält, und `mycas.BiConComp`, die die Knoten auflistet, die zu jeder bikonnektierten Komponente gehören. Das SAS-Log zeigt eine Zusammenfassung des Problems und der Lösung an, einschließlich der Anzahl der gefundenen Artikulationspunkte und Komponenten.

Dieses Beispiel erweitert die einfache Analyse, indem es auch den Block-Cut-Baum des Graphen berechnet. Der Block-Cut-Baum ist eine Hilfsstruktur, die die Beziehung zwischen den Artikulationspunkten und den bikonnektierten Komponenten darstellt. Die Knoten und Links dieses Baumes werden in den Tabellen `mycas.BCTreeNodes` und `mycas.BCTreeLinks` gespeichert. Dies ermöglicht eine tiefere Analyse der Graphenstruktur.

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2 ACTION optNetwork.biconnectedComponents /
3 links={name='LinkSetIn'}
4 outNodes={name='mycas.ArtPoints', replace=true}
5 out={name='mycas.BiConComp', replace=true}
6 outBCTreeNodes={name='mycas.BCTreeNodes', replace=true}
7 outBCTreeLinks={name='mycas.BCTreeLinks', replace=true};
8RUN;
Ergebnis :
Zusätzlich zu den Tabellen `mycas.ArtPoints` und `mycas.BiConComp` aus dem einfachen Beispiel erstellt diese Ausführung zwei weitere Tabellen: `mycas.BCTreeNodes`, die die Knoten des Block-Cut-Baums (sowohl ursprüngliche Artikulationspunkte als auch Knoten, die Blöcke/Komponenten repräsentieren) auflistet, und `mycas.BCTreeLinks`, die die Kanten dieses Baums beschreibt. Dies bietet eine vollständige strukturelle Zerlegung des Graphen.

FAQ

Was ist der Zweck der Aktion biconnectedComponents?
Was ist eine bikonnektierte Komponente?
Welche Ausgabetabellen kann die Aktion biconnectedComponents erzeugen?
Welche Bedeutung hat der Parameter 'direction'?
Wie kann ich die Ergebnisse für jeden Graphen in einer 'BY group'-Verarbeitung speichern?