pgr_cuthillMckeeOrdering
- Experimental¶
pgr_cuthillMckeeOrdering
— Returns the reverse Cuthill-Mckee ordering of an undirected
graphs
Warning
Possible server crash
These functions might create a server crash
Warning
Experimental functions
They are not officially of the current release.
They likely will not be officially be part of the next release:
The functions might not make use of ANY-INTEGER and ANY-NUMERICAL
Name might change.
Signature might change.
Functionality might change.
pgTap tests might be missing.
Might need c/c++ coding.
May lack documentation.
Documentation if any might need to be rewritten.
Documentation examples might need to be automatically generated.
Might need a lot of feedback from the comunity.
Might depend on a proposed function of pgRouting
Might depend on a deprecated function of pgRouting
Availability
Version 3.4.0
New experimental function
Description¶
In numerical linear algebra, the Cuthill-McKee algorithm (CM), named after Elizabeth Cuthill and James McKee, is an algorithm to permute a sparse matrix that has a symmetric sparsity pattern into a band matrix form with a small bandwidth.
The vertices are basically assigned a breadth-first search order, except that at each step, the adjacent vertices are placed in the queue in order of increasing degree.
The main Characteristics are:
The implementation is for undirected graphs.
The bandwidth minimization problems are considered NP-complete problems.
The running time complexity is: \(O(m log(m)|V|)\)
where \(|V|\) is the number of vertices,
\(m\) is the maximum degree of the vertices in the graph.
Signatures¶
(seq, node)
- Example:
Graph ordering of pgRouting Sample Data
SELECT * FROM pgr_cuthillMckeeOrdering(
'SELECT id, source, target, cost, reverse_cost FROM edges'
);
seq | node
-----+------
1 | 13
2 | 14
3 | 2
4 | 4
5 | 1
6 | 9
7 | 3
8 | 8
9 | 5
10 | 7
11 | 12
12 | 6
13 | 11
14 | 17
15 | 10
16 | 16
17 | 15
(17 rows)
Parameters¶
Parameter |
Type |
Description |
---|---|---|
|
Edges SQL as described below. |
Inner Queries¶
Edges SQL¶
Column |
Type |
Default |
Description |
---|---|---|---|
|
ANY-INTEGER |
Identifier of the edge. |
|
|
ANY-INTEGER |
Identifier of the first end point vertex of the edge. |
|
|
ANY-INTEGER |
Identifier of the second end point vertex of the edge. |
|
|
ANY-NUMERICAL |
Weight of the edge ( |
|
|
ANY-NUMERICAL |
-1 |
Weight of the edge (
|
Where:
- ANY-INTEGER:
SMALLINT
,INTEGER
,BIGINT
- ANY-NUMERICAL:
SMALLINT
,INTEGER
,BIGINT
,REAL
,FLOAT
Result columns¶
Returns set of (seq, node)
Column |
Type |
Description |
---|---|---|
|
|
Sequence of the order starting from 1. |
|
|
New ordering in reverse order. |
See Also¶
The queries use the Sample Data network.
Indices and tables