optNetwork

minCut

Descripción

La acción minCut calcula el corte mínimo de un grafo. Un corte mínimo es un conjunto de enlaces cuyo peso total es el mínimo entre todos los conjuntos de enlaces que separan dos nodos específicos, el nodo origen y el nodo destino.

optNetwork.minCut { deterministic=TRUE | FALSE, direction="DIRECTED" | "UNDIRECTED", display={...}, distributed=TRUE | FALSE, graph=integer, indexOffset=integer, links={...}, linksVar={...}, logFreqTime=integer, logLevel="AGGRESSIVE" | "BASIC" | "MODERATE" | "NONE", maxCuts=integer, maxWeight=double, multiLinks=TRUE | FALSE, nodes={...}, nodesVar={...}, nThreads=integer, outCutSets={...}, outGraphList={...}, outLinks={...}, outNodes={...}, outPartitions={...}, outputTables={...}, selfLinks=TRUE | FALSE, sink="string" | double | 64-bit-integer, source="string" | double | 64-bit-integer, standardizedLabels=TRUE | FALSE, standardizedLabelsOut=TRUE | FALSE }
Parámetros
ParámetroDescripción
deterministic Cuando se establece en Verdadero, 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.
display Especifica una lista de tablas de resultados para enviar al cliente para su visualización.
distributed Cuando se establece en Verdadero, utiliza un grafo distribuido.
graph Especifica el grafo en memoria a utilizar.
indexOffset Especifica el desplazamiento de índice para los identificadores en el registro y las tablas de datos de salida de 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.
maxCuts Especifica el número máximo de cortes que el algoritmo debe devolver.
maxWeight Especifica el peso máximo de los cortes que debe devolver el algoritmo.
multiLinks Cuando se establece en Verdadero, 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.
outCutSets Especifica la tabla de datos de salida que contendrá los conjuntos de cortes mínimos.
outGraphList Especifica la tabla de datos de salida que contendrá información resumida 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.
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.
outPartitions Especifica la tabla de datos de salida que contendrá las particiones de corte mínimo.
outputTables Lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
selfLinks Cuando se establece en Verdadero, incluye autoenlaces cuando se lee un grafo de entrada.
sink Especifica el nodo de destino del corte mínimo.
source Especifica el nodo de origen del corte mínimo.
standardizedLabels Cuando se establece en Verdadero, especifica que los datos del grafo de entrada están en un formato estandarizado.
standardizedLabelsOut Cuando se establece en Verdadero, solicita que los datos del grafo de salida incluyan un formato estandarizado.
Creación del Conjunto de Datos de Enlaces

Este conjunto de datos define los enlaces de un grafo. Para cada enlace, se especifican los nodos de origen y destino, junto con un peso.

¡Copiado!
1DATA mycas.LinkSetIn;
2 INPUT from $ to $ weight;
3 DATALINES;
4A B 1
5A C 2
6A D 3
7B E 4
8B F 5
9B G 6
10C E 7
11C F 8
12C G 9
13D E 10
14D F 11
15D G 12
16E H 13
17F H 14
18G H 15
19;
20RUN;

Ejemplos

Este ejemplo calcula el corte mínimo para el grafo de entrada definido en la tabla `LinkSetIn` entre el nodo 'A' como origen y el nodo 'H' como destino.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 ACTION optNetwork.minCut /
3 direction = "undirected"
4 links = {name = 'LinkSetIn'}
5 SOURCE = 'A'
6 sink = 'H'
7 outCutSets = {name = 'CutSets', replace=true}
8 outPartitions = {name = 'Partitions', replace=true};
9RUN;
10QUIT;
Resultado :
La acción devuelve el valor del corte mínimo y crea las tablas 'CutSets' y 'Partitions' con los detalles de los enlaces del corte y las particiones de nodos resultantes.

FAQ

¿Cuál es el propósito de la acción minCut en SAS Viya?
¿Cómo se especifican los nodos de origen y destino para el cálculo del corte mínimo?
¿Es posible limitar el número de cortes que devuelve el algoritmo?
¿Cómo puedo filtrar los cortes encontrados basándose en su peso total?
¿En qué tablas de salida se guardan los resultados del corte mínimo?