令为具有个顶点和边的未加权无向图。是否可以预处理并生成大小为的数据结构,以便它可以在时间O(n)内回答“与之间的距离”形式的查询?
这个问题似乎太基本了,无法解决。
令为具有个顶点和边的未加权无向图。是否可以预处理并生成大小为的数据结构,以便它可以在时间O(n)内回答“与之间的距离”形式的查询?
这个问题似乎太基本了,无法解决。
Answers:
这是一个非常有趣的问题。从高层次上讲,您在问是否可以预处理图,以使最短路径查询变得独立于图的密度,而无需使用过多的额外空间-有趣的是,但是正如您所说,尚未解决。
如果您对近似距离感到满意,这是一种获得近似值的方法。令为具有节点和边的加权无向图。在以下论文中显示,对于近似距离查询,为具有边的图设计数据结构并不比每个节点的度数受限制的图更难:
R. Agarwal,PB Godfrey,S.Har-Peled,稀疏图中的近似距离查询和紧凑型路由,INFOCOM 2011
因此,假设是一个度有界图。样本α = O (m / n )个节点随机均匀;称这些地标节点。在预处理阶段,存储图中每个地标节点到每个其他节点的距离;这需要O (m )空间。对于每个节点u,存储其最近的界标节点ℓ (u )。同样,将图形存储在数据结构中,例如作为邻接表。
当查询和v之间的距离时,在两个节点周围都长出球-节点w的球定义为严格距离w比与其最接近的地标节点(例如ℓ (w ))的节点集。可以看出,每个球的大小是预期的O (n 2 / m )。让Γ (Û )= 乙(Û )∪ Ñ (乙(Û )),其中,乙(Û是节点的球 ù和 Ñ (乙(Û ))是在一组节点的邻居的乙(Û )。可以看出,期望的是 Γ (u )的大小为 O (n )。
在查询时间方面,请注意,对于度有界图,成长球需要时间;给定各自的球构造和需要时间(因为邻居存储在数据结构中);并检查是否为空也需要时间。
以上范围是预期的;我认为对结构进行随机化很容易。不幸的是,这种技术似乎不允许逼近比。这是一个非常有趣的问题。
您需要的被称为“远程预言”。不幸的是,我对距离预言片不是很熟悉,因此由于Thorup和Zwick的缘故,我只能向您介绍开创性论文:
Mikkel Thorup和Uri Zwick。近似距离预言。STOC '01,2001年。
这是摘要的摘录:
令是的无向加权图和。令为整数。我们显示可以在预期时间内进行预处理,构造一个大小为的数据结构,这样任何后续距离查询可以大约以时间回答。返回的近似距离最大为,即通过将估计距离除以实际距离而获得的商介于1和。我们的算法的空间需求基本上是最佳的。
根据他们的结果,即使对于加权图,您所请求的内容基本上也是可行的:选择产生在预期时间获得的大小的距离Oracle,该距离Oracle 可以用回答最短路径查询-延长时间!
远距离预言片是一个经过充分研究的领域,因此,我相信您将能够进一步挖掘。