pgr_kruskal  pgRouting Manual (3.0)
pgr_kruskal
pgr_kruskal
 Returns the minimum spanning tree of graph using Kruskal algorithm.
Availability

Version 3.0.0

New Official function

Support

Supported versions: current( 3.0 )
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:
 ANYINTEGER

SMALLINT, INTEGER, BIGINT
 ANYNUMERICAL

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