pgr_kruskal¶
pgr_kruskal
— Returns the minimum spanning tree of graph using Kruskal algorithm.
Availability
Version 3.0.0
New Official function
Description¶
This algorithm finds the minimum spanning forest in a possibly disconnected graph using Kruskal’s algorithm.
The main Characteristics are:
It’s implementation is only on undirected graph.
Process is done only on edges with positive costs.
The total weight of all the edges in the tree or forest is minimized.
When the graph is connected
The resulting edges make up a tree
When the graph is not connected,
Finds a minimum spanning tree for each connected component.
The resulting edges make up a forest.
Kruskal’s running time: \(O(E * log E)\)
EMPTY SET is returned when there are no edges in the graph.
Signatures¶
Summary
pgr_kruskal(edges_sql)
RETURNS SET OF (seq, edge, cost)
OR EMPTY SET
- Example
Minimum Spanning Forest
SELECT * FROM pgr_kruskal(
'SELECT id, source, target, cost, reverse_cost
FROM edge_table ORDER BY id'
) ORDER BY edge;
edge | cost
------+------
1 | 1
2 | 1
3 | 1
6 | 1
7 | 1
10 | 1
11 | 1
12 | 1
13 | 1
14 | 1
15 | 1
16 | 1
17 | 1
18 | 1
(14 rows)
Parameters¶
Parameter |
Type |
Description |
---|---|---|
Edges SQL |
|
SQL query described in Inner query. |
Inner query¶
Column |
Type |
Default |
Description |
---|---|---|---|
id |
|
Identifier of the edge. |
|
source |
|
Identifier of the first end point vertex of the edge. |
|
target |
|
Identifier of the second end point vertex of the edge. |
|
cost |
|
Weight of the edge (source, target)
|
|
reverse_cost |
|
-1 |
Weight of the edge (target, source),
|
Where:
- ANY-INTEGER
SMALLINT, INTEGER, BIGINT
- ANY-NUMERICAL
SMALLINT, INTEGER, BIGINT, REAL, FLOAT
Result Columns¶
Returns SET OF (edge, cost)
Column |
Type |
Description |
---|---|---|
edge |
|
Identifier of the edge. |
cost |
|
Cost to traverse the edge. |
See Also¶
The queries use the Sample Data network.
Indices and tables