最短路径的数据结构


19

令为具有个顶点和边的未加权无向图。是否可以预处理并生成大小为的数据结构,以便它可以在时间O(n)内回答“与之间的距离”形式的查询?GnmGmpolylog(n)uv

这个问题似乎太基本了,无法解决。


1
针对您关于“太基础而无法解决”的最后一句话:如果必须在固定时间内回答查询,则确实经过了充分研究。但问题的关键是您允许O(n)时间进行查询(而不是O(1)或琐碎的O(m))。尽管我认为这是一个有趣的问题,但我认为该问题没有根本的重要性。
伊藤刚(Tsuyoshi Ito)

1
@TsuyoshiIto-我不明白,如果这个问题允许超常数但低于线性的查询时间,为什么这个问题会失去其“根本重要性”。例如,假设我可以用以下约束条件解决上述问题:距离查询可以在时间内回答一些,并且处理时间最多为 -这样会不会给我一个用于计算最短路径的亚三次算法?我个人认为这是一个非常有趣的问题。O(n1ε)ε>0O(n3ε)
拉奇

我不知道有没有通用的方法,但是有界树宽图中有个好方法,请参阅有界树宽图中的最短路径查询
Saeed

同样如果您可以创建最短路径树(从每个节点开始),然后在回答最短路径查询(通过相关根,或者可以通过类似的方式构造具有较小内存大小的数据结构。m=Ω(n2)O(n)
Saeed

Answers:


9

这是一个非常有趣的问题。从高层次上讲,您在问是否可以预处理图,以使最短路径查询变得独立于图的密度,而无需使用过多的额外空间-有趣的是,但是正如您所说,尚未解决。

如果您对近似距离感到满意,这是一种获得近似值的方法。令为具有节点和边的加权无向图。在以下论文中显示,对于近似距离查询,为具有边的图设计数据结构并不比每个节点的度数受限制的图更难:2Gnmmm/n

R. Agarwal,PB Godfrey,S.Har-Peled,稀疏图中的近似距离查询和紧凑型路由,INFOCOM 2011

因此,假设G是一个度有界图。样本α = O m / n )个节点随机均匀;称这些地标节点。在预处理阶段,存储图中每个地标节点到每个其他节点的距离;这需要O m 空间。对于每个节点u,存储其最近的界标节点u 。同样,将图形存储在数据结构中,例如作为邻接表。m/nα=O(m/n)O(m)u(u)

当查询v之间的距离时,在两个节点周围都长出球-节点w的球定义为严格距离w比与其最接近的地标节点(例如w ))的节点集。可以看出,每个球的大小是预期的O n 2 / m 。让Γ Û = Û Ñ Û ,其中,Ûuvww(w)O(n2/m)Γ(u)=B(u)N(B(u))是节点的球 ù Ñ Û 是在一组节点的邻居的Û 。可以看出,期望的是 Γ u 的大小为 O n B(u)uN(B(u))B(u)Γ(u)O(n)

Γ(u)Γ(v)minxΓ(u)Γ(v){d(u,x)+d(v,x)}d(u,(u))d(v,(v))d(u,(u))+d((u),v)d(v,(v))+d((v),u)2

在查询时间方面,请注意,对于度有界图,成长球需要时间;给定各自的球构造和需要时间(因为邻居存储在数据结构中);并检查是否为空也需要时间。O(n)m/nΓ(u)Γ(v)O(n)Γ(u)Γ(v)O(n)

以上范围是预期的;我认为对结构进行随机化很容易。不幸的是,这种技术似乎不允许逼近比。这是一个非常有趣的问题。2


上述技术没有利用输入图未加权的事实;也许可以利用这个事实来做一些有趣的事情,但是我想不出一种检索精确距离的方法。例如,可以将查询时间减少到并获得以边界的距离,其中是和之间的精确距离。O(n2/m)2d+1duv
拉奇(Rachit)2011年

我意识到我不明白为什么它是2近似值。在相同情况下,Thorup-Zwick得出3的近似值。
ilyaraz 2012年

@ilyaraz:请注意,Thorup-Zwick方案不需要检查(因此,几乎可以在恒定的时间内回答查询)。请参阅我上面提到的有关拉伸证明的论文。Γ(u)Γ(v)2
拉奇(Rachit)2012年

4

您需要的被称为“远程预言”。不幸的是,我对距离预言片不是很熟悉,因此由于Thorup和Zwick的缘故,我只能向您介绍开创性论文:

Mikkel Thorup和Uri Zwick。近似距离预言。STOC '01,2001年。

这是摘要的摘录:

令是的无向加权图和。令为整数。我们显示可以在预期时间内进行预处理,构造一个大小为的数据结构,这样任何后续距离查询可以大约以时间回答。返回的近似距离最大为,即通过将估计距离除以实际距离而获得的商介于1和。我们的算法的空间需求基本上是最佳的。G=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k)O(kn1+1/k)O(k)2k12k1

根据他们的结果,即使对于加权图,您所请求的内容基本上也是可行的:选择产生在预期时间获得的大小的距离Oracle,该距离Oracle 可以用回答最短路径查询-延长时间!k=1O(n2)O(mn)1O(1)

远距离预言片是一个经过充分研究的领域,因此,我相信您将能够进一步挖掘。


2
期刊版本:JACM 2005
伊藤刚(Tsuyoshi Ito)

3
使用空间,可以天真地存储查找表。因此,本文(我知道)与本文无关。O(n2)
ilyaraz 2011年

1
很公平。最接近您要求AFAIK的结果是平均度数,该图在查询中提供了具有空间的Stretch-2路径时间。(R. Agarwal,P。Godfrey和S. Har-Peled,“稀疏图中的近似距离查询和紧凑路由”,Θ(logn)O(n3/2)O(n)
INFOCOM2011

使用Bourgain将指标嵌入,可以得出一个Oracle,其空间为,查询时间为和乘法误差。1O(nlog2n)O(log2n)O(logn)
ilyaraz 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.