1
1
如所述 goran ,只需重新计算包含同时删除的节点的最短路径。因此,我将执行以下操作:
|
2
0
好吧,我不认为你需要重新运行整个构建如果一个节点被删除。只适用于那些有节点的路径。 解决问题的简单方法是添加有关冗余路径的信息,例如,对于最短路径上的每个节点,都可以有第二条最短路径。 这不会减少计算时间,但会将其缓存(它还会将存储需求增加一倍n,其中n是平均节点数,对于单节点删除,对于2节点冗余,它会增加一倍n*(n-1)。。。加上n!对于完全冗余,也会以相同的因子增加初始构建时间,同时也会增加添加节点所需的时间) 如果有一种方法可以改进这一点并减少重建时间,那么您需要找到一种结构,该结构允许快速计算最短距离,但在删除节点或将节点添加到图中时,该结构应该是不可变的(或重新计算成本较低)。 |
3
0
我将回答这个问题隐含的非泛型变体,其中的图形是一个道路网络。在我看来,这是任意图的理论界不那么有趣的情况之一。 寻找最短路径的一些最佳方法是公路节点路由和过境节点路由。(描述于 dissertation by Dominik Schultes ). 加速结构可以相当快地构建(整个欧洲的HNR大约15分钟),并且支持增量更新。有趣的是,随机查询的查询时间大约为1ms,所有成对的距离表可以计算为每个条目0.2us。更有趣的是查询性能的缩放,数据显示缩放在图形大小上是次对数/接近常数。传输节点路由在4.3us随机查询时更快。唉,我没有任何关于数据结构可更新性的信息。直观地说,增量更新应该不会太难。 相同或相似的方法可用于类似于道路网络(稀疏、平面、层次)的其他图形。 |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |