La acción `biconnectedComponents` se utiliza en el análisis de redes para identificar componentes biconexos y puntos de articulación en un grafo. En teoría de grafos, un componente biconexo (o bloque) es un subgrafo biconexo máximo. Un grafo es biconexo si permanece conectado incluso después de eliminar cualquier nodo individual. Los puntos de articulación son nodos cuya eliminación aumentaría el número de componentes conectados del grafo. Esta acción es fundamental para analizar la robustez y vulnerabilidad de una red, como redes de comunicación, eléctricas o sociales, ya que permite identificar puntos críticos de fallo.
| Parámetro | Descripción |
|---|---|
| deterministic | Cuando se establece en True, asegura que cada invocación (con la misma configuración de máquina y ajustes de parámetros) produzca el mismo resultado final. |
| direction | Especifica si se debe considerar el grafo de entrada como dirigido o no dirigido. El valor predeterminado es 'UNDIRECTED'. |
| display | Especifica una lista de tablas de resultados para enviar al cliente para su visualización. |
| distributed | Cuando se establece en True, utiliza un grafo distribuido. |
| graph | Especifica el grafo en memoria a utilizar. |
| indexOffset | Especifica el desplazamiento del índice para los identificadores en las tablas de datos de salida de registro y resultados. |
| links | Especifica la tabla de datos de entrada que contiene la información de los enlaces del grafo. |
| linksVar | Especifica los nombres de las variables de datos para la tabla de enlaces. |
| logFreqTime | Controla la frecuencia n (en segundos) para mostrar los registros de iteración para algunos algoritmos. |
| logLevel | Controla la cantidad de información que se muestra en el registro de SAS. |
| multiLinks | Cuando se establece en True, incluye multienlaces cuando se lee un grafo de entrada. |
| nodes | Especifica la tabla de datos de entrada que contiene la información de los nodos del grafo. |
| nodesVar | Especifica los nombres de las variables de datos para la tabla de nodos. |
| nThreads | Especifica el número máximo de hilos a utilizar para el procesamiento multihilo. |
| out | Especifica la tabla de datos de salida que contendrá la información de resumen sobre los componentes biconexos. |
| outBCTreeLinks | Especifica la tabla de datos de salida que contendrá los enlaces en el árbol de bloques y cortes (block-cut tree). |
| outBCTreeNodes | Especifica la tabla de datos de salida que contendrá los nodos en el árbol de bloques y cortes (block-cut tree). |
| outGraphList | Especifica la tabla de datos de salida que contendrá información de resumen sobre los grafos en memoria. |
| outLinks | Especifica la tabla de datos de salida que contendrá la información de los enlaces del grafo junto con los resultados de los algoritmos que calculan métricas en los enlaces. |
| outNodes | Especifica la tabla de datos de salida que contendrá la información de los nodos del grafo junto con los resultados de los algoritmos que calculan métricas en los nodos. |
| outputTables | Lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor. |
| selfLinks | Cuando se establece en True, incluye auto-enlaces (bucles) cuando se lee un grafo de entrada. |
| standardizedLabels | Cuando se establece en True, especifica que los datos del grafo de entrada están en un formato estandarizado. |
| standardizedLabelsOut | Cuando se establece en True, solicita que los datos del grafo de salida incluyan un formato estandarizado. |
Este código SAS crea una tabla CAS llamada `LinkSetIn` que representa los enlaces de un grafo no dirigido. Esta tabla se utilizará como entrada para los ejemplos de la acción `biconnectedComponents`.
| 1 | DATA mycas.LinkSetIn; |
| 2 | INFILE DATALINES delimiter=','; |
| 3 | INPUT from $ to $ @@; |
| 4 | DATALINES; |
| 5 | A,B A,F B,C B,E C,D |
| 6 | D,E D,G G,H G,I H,I |
| 7 | J,K K,L L,M M,J |
| 8 | ; |
| 9 | RUN; |
Este ejemplo encuentra los componentes biconexos y los puntos de articulación para el grafo no dirigido definido en `LinkSetIn`. Es el uso más simple de la acción para un análisis de robustez básico.
| 1 | PROC CAS; |
| 2 | ACTION optNetwork.biconnectedComponents / |
| 3 | links={name='LinkSetIn'} |
| 4 | outNodes={name='outArtPoints', replace=true} |
| 5 | outLinks={name='outBiconnectedComponents', replace=true}; |
| 6 | RUN; |
| 7 | QUIT; |
Este ejemplo realiza un análisis más profundo generando el árbol de bloques y cortes. Esta estructura de datos es un árbol que representa la relación entre los puntos de articulación (cortes) y los componentes biconexos (bloques) de un grafo. Es extremadamente útil para visualizaciones avanzadas y para comprender la estructura jerárquica de la conectividad de la red.
| 1 | PROC CAS; |
| 2 | ACTION optNetwork.biconnectedComponents / |
| 3 | links={name='LinkSetIn'} |
| 4 | outNodes={name='outArtPoints', replace=true} |
| 5 | outLinks={name='outBiComponents', replace=true} |
| 6 | outBCTreeNodes={name='outBCTreeNodes', replace=true} |
| 7 | outBCTreeLinks={name='outBCTreeLinks', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
Una empresa de telecomunicaciones necesita identificar los routers y conmutadores críticos (puntos de articulación) en su infraestructura de red. La caída de uno de estos nodos ...
Una corporación multinacional quiere analizar su compleja red de proveedores para identificar dependencias críticas. Un proveedor que actúa como punto de articulación podría int...
Un analista de logística está trabajando con datos de rutas de transporte extraídos de un sistema heredado. Los datos son 'sucios' y contienen anomalías: rutas que empiezan y te...