Experimental
Advertencia
Posible bloqueo del servidor
Advertencia
Funciones experimentales
Versiones anteriores de esta página
Las características principales son:
pgr_maxFlow es el Flujo Máximo y se garantiza que ese máximo es el mismo en las funciones pgr_pushRelabel, pgr_edmondsKarp, pgr_boykovKolmogorov, pero el flujo real a través de cada arista puede variar.
Columna | Tipo | Valores predeterminados | Descripción |
---|---|---|---|
Edges SQL | TEXT |
La consulta SQL de aristas como se describe en Inner Query. | |
origen | BIGINT |
Identificador del vértice inicial del flujo. | |
orígenes | ARRAY[BIGINT] |
Conjunto de identificadores de los vértices iniciales del flujo. | |
objetivo | BIGINT |
Identificador del vértice final del flujo. | |
destinos | ARRAY[BIGINT] |
Conjunto de identificadores de los vértices finales del flujo. |
Para pgr_pushRelabel, pgr_edmondsKarp, pgr_boykovKolmogorov :
Edges SQL: | Consulta SQL de un grafo dirigido de capacidades, que debe devolver un conjunto de filas con las siguientes columnas: |
---|
Columna | Tipo | Valores predeterminados | Descripción |
---|---|---|---|
id | ANY-INTEGER |
Identificador de la arista. | |
origen | ANY-INTEGER |
Identificador del primer punto final en el vértice de la arista. | |
objetivo | ANY-INTEGER |
Identificador del segundo punto final en el vértice de la arista. | |
capacidad | ANY-INTEGER |
Peso de la arista (source, target)
|
|
reverse_capacity (capacidad inversa) | ANY-INTEGER |
-1 | Peso de la arista (target, source),
|
Donde:
ANY-INTEGER: | SMALLINT, INTEGER, BIGINT |
---|
Para pgr_maxFlowMinCost - Experimental and pgr_maxFlowMinCost_Cost - Experimental:
Edges SQL: | Consulta SQL de un grafo dirigido de capacidades, que debe devolver un conjunto de filas con las siguientes columnas: |
---|
Columna | Tipo | Valores predeterminados | Descripción |
---|---|---|---|
id | ANY-INTEGER |
Identificador de la arista. | |
origen | ANY-INTEGER |
Identificador del primer punto final en el vértice de la arista. | |
objetivo | ANY-INTEGER |
Identificador del segundo punto final en el vértice de la arista. | |
capacidad | ANY-INTEGER |
Capacidad de la arista (origen, destino)
|
|
reverse_capacity (capacidad inversa) | ANY-INTEGER |
-1 | Capacidad de la arista (destino, origen),
|
cost | ANY-NUMERICAL |
Peso de la arista (origen, destino) si existe. | |
reverse_cost | ANY-NUMERICAL |
0 | Peso de la arista (destino, origen) si existe. |
Donde:
ANY-INTEGER: | SMALLINT, INTEGER, BIGINT |
---|---|
ANY-NUMERICAL: | smallint, int, bigint, real, float |
Para pgr_pushRelabel, pgr_edmondsKarp, pgr_boykovKolmogorov :
Columna | Tipo | Descripción |
---|---|---|
seq | INT |
Valor secuencial a partir de 1. |
edge | BIGINT |
Identificador de la arista en la consulta original(edges_sql). |
start_vid | BIGINT |
Identificador del primer punto final en el vértice de la arista. |
end_vid | BIGINT |
Identificador del segundo punto final en el vértice de la arista. |
flujo | BIGINT |
Flujo a través del arista en la dirección (start_vid , end_vid ). |
residual_capacity (capacidad residual) | BIGINT |
Capacidad residual del arista en la dirección (start_vid , end_vid ). |
Para pgr_maxFlowMinCost - Experimental
Columna | Tipo | Descripción |
---|---|---|
seq | INT |
Valor secuencial a partir de 1. |
edge | BIGINT |
Identificador de la arista en la consulta original(edges_sql). |
origen | BIGINT |
Identificador del primer punto final en el vértice de la arista. |
objetivo | BIGINT |
Identificador del segundo punto final en el vértice de la arista. |
flujo | BIGINT |
Flujo a través de la arista en la dirección (origen, destino). |
residual_capacity (capacidad residual) | BIGINT |
Capacidad residual de la arista en la dirección (origen, destino). |
cost | FLOAT |
El costo de enviar este flujo a través de la arista en la dirección (origen, destino). |
agg_cost | FLOAT |
El costo agregado. |
Una red de flujo es un gráfico dirigido donde cada arista tiene una capacidad y un flujo. El flujo a través de una arista no debe exceder la capacidad de la misma. Además, el flujo entrante y saliente de un nodo debe ser igual, excepto para el origen que solo tiene flujo saliente, y el destino (receptor) que solo tiene flujo entrante.
Los algoritmos de Flujo Máximo calculan a través del grafo el flujo máximoy el flujo de cada arista
Se garantiza que el flujo máximo a través del grafo es el mismo con todas las implementaciones, pero el flujo real a través de cada arista puede variar. Dada la siguiente consulta:
pgr_maxFlow \((edges\_sql, source\_vertex, sink\_vertex)\)
where \(edges\_sql = \{(id_i, source_i, target_i, capacity_i, reverse\_capacity_i)\}\)
Definición del grafo
El grafo ponderado dirigido, \(G(V,E)\), se define como:
Problema de Flujo Máximo
Dado:
Entonces:
Donde:
\(\boldsymbol{\Phi}\) es un subconjunto de las aristas originales con su flujo y capacidad residual. El flujo máximo a través del grafo se puede obtrener agregando en el origen o sumidero y sumiendo el flujo hacia él. En particular:
Índices y tablas