pgr_transitiveClosure
- 实验¶
pgr_transitiveClosure
— 有向图的传递闭包图。
Warning
可能服务器崩溃
这些功能可能会导致服务器崩溃
Warning
实验功能
它们不是当前版本的正式版本。
它们可能不会正式成为下一个版本的一部分:
这些函数可能不使用 ANY-INTEGER 和 ANY-NUMERICAL
名称可能会改变。
签名可能会改变。
功能可能会改变。
pgTap 测试可能丢失。
可能需要 c/c++编码。
可能缺乏文档。
文档(如果有)可能需要重写。
可能需要自动生成文档示例。
可能需要社区的大量反馈。
可能取决于 pgRouting 的拟议功能
可能依赖于 pgRouting 的已弃用函数
可用性
版本3.0.0
新 实验 函数
描述¶
将输入有向图转换为图的传递闭包。
主要特点是:
过程对于有向图有效。
无向图的传递闭包产生簇图
当无向图上的顶点属于同一连通分量时,就会发生它们之间的可达性。(参阅 pgr_connectedComponents)
返回值未排序
返回的图被压缩
运行时间: \(O(|V||E|)\)
签名¶
总结
pgr_transitiveClosure 函数具有以下签名:
(seq, vid, target_array)
- 示例:
子图的可达性
SELECT * FROM pgr_transitiveclosure(
'SELECT id, source, target, cost, reverse_cost
FROM edges WHERE id IN (2, 3, 5, 11, 12, 13, 15)')
ORDER BY vid;
seq | vid | target_array
-----+-----+--------------------
1 | 6 | {}
6 | 8 | {12,17,16}
2 | 10 | {12,17,16,11,6}
4 | 11 | {12,17,16}
5 | 12 | {17,16}
3 | 15 | {12,17,16,10,11,6}
8 | 16 | {17,16}
7 | 17 | {17,16}
(8 rows)
参数¶
参数 |
类型 |
描述 |
---|---|---|
|
Edges SQL 如下所述。 |
内部查询¶
Edges SQL¶
列 |
类型 |
默认 |
描述 |
---|---|---|---|
|
ANY-INTEGER |
边的标识符。 |
|
|
ANY-INTEGER |
边的第一个端点顶点的标识符。 |
|
|
ANY-INTEGER |
边的第二个端点顶点的标识符。 |
|
|
ANY-NUMERICAL |
边( |
|
|
ANY-NUMERICAL |
-1 |
边(
|
其中:
- ANY-INTEGER:
SMALLINT
,INTEGER
,BIGINT
- ANY-NUMERICAL:
SMALLINT
,INTEGER
,BIGINT
,REAL
,FLOAT
结果列¶
Returns set of (seq, vid, target_array)
列 |
类型 |
描述 |
---|---|---|
|
|
从 \(1\) 开始的连续数值 |
|
|
边来源的标识符 |
|
|
边目标的标识符
|
另请参阅¶
索引和表格