?>
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.
| Parameter | Beschreibung |
|---|---|
| deterministic | Gibt an, ob bei jeder Ausführung (bei gleicher Maschinenkonfiguration und Parametereinstellungen) dasselbe Endergebnis erzeugt werden soll. Standardmäßig ist dies TRUE. |
| direction | Gibt an, ob der Eingabegraph als gerichtet oder ungerichtet betrachtet werden soll. Standard ist UNDIRECTED. |
| display | Gibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen. |
| distributed | Gibt an, ob ein verteilter Graph verwendet werden soll. Standardmäßig ist dies FALSE. |
| graph | Gibt den zu verwendenden In-Memory-Graphen an. |
| indexOffset | Gibt den Index-Offset für Bezeichner in den Log- und Ergebnisausgabetabellen an. Standard ist 0. |
| links | Gibt die Eingabedatentabelle an, die die Linkinformationen des Graphen enthält. |
| linksVar | Gibt die Datenvariablennamen für die Linktabelle an. |
| logFreqTime | Steuert die Frequenz (in Sekunden) für die Anzeige von Iterationsprotokollen. Standard ist 5. |
| logLevel | Steuert die Menge der im SAS-Log angezeigten Informationen. Standard ist BASIC. |
| multiLinks | Gibt an, ob beim Lesen eines Eingabegraphen Mehrfachlinks berücksichtigt werden sollen. Standardmäßig ist dies TRUE. |
| 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 von Threads für die multithreaded Verarbeitung an. |
| out | Gibt die Ausgabedatentabelle an, die die zusammenfassenden Informationen über die bikonnektierten Komponenten enthalten soll. |
| outBCTreeLinks | Gibt die Ausgabedatentabelle an, die die Links im Block-Cut-Baum enthalten soll. |
| outBCTreeNodes | Gibt die Ausgabedatentabelle an, die die Knoten im Block-Cut-Baum enthalten soll. |
| outGraphList | Gibt die Ausgabedatentabelle an, die zusammenfassende Informationen über In-Memory-Graphen enthalten soll. |
| outLinks | Gibt die Ausgabedatentabelle an, die die Linkinformationen des Graphen zusammen mit den Ergebnissen der Algorithmen enthalten soll. |
| outNodes | Gibt die Ausgabedatentabelle an, die die Knoteninformationen des Graphen zusammen mit den Ergebnissen der Algorithmen enthalten soll. |
| outputTables | Listet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen. |
| selfLinks | Gibt an, ob beim Lesen eines Eingabegraphen Selbstverknüpfungen berücksichtigt werden sollen. Standardmäßig ist dies TRUE. |
| standardizedLabels | Gibt an, dass die Eingabegraphdaten in einem standardisierten Format vorliegen. Standardmäßig ist dies FALSE. |
| standardizedLabelsOut | Fordert an, dass die Ausgabegraphdaten ein standardisiertes Format enthalten. Standardmäßig ist dies FALSE. |
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;
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.
| 1 | PROC CAS; |
| 2 | ACTION optNetwork.biconnectedComponents / |
| 3 | links={name='LinkSetIn'} |
| 4 | outNodes={name='mycas.ArtPoints', replace=true} |
| 5 | out={name='mycas.BiConComp', replace=true}; |
| 6 | RUN; |
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.
| 1 | PROC 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}; |
| 8 | RUN; |