繁体   English   中英

在图中找到距离至少为D(常数)的两条路径

[英]Find two paths in a graph that are in distance of at least D(constant)

问题的实例:无向和未加权图G =(V,E)。 两个源节点a和b,两个目标节点c和d以及一个常数D(完全正数)。(我们可以假设lambda(c,d),lambda(a,b)> D,当lambda(x,y) )是G)中x和y之间的最短路径。 我们有两个人站在节点a和b上。

定义 :调度程序集 - 调度程序集是一组命令,这样在每个步骤中只有一个人从他的节点v移动到v个邻居之一,当它们的起始位置在节点a,b和结束位置在节点c中,dA“调度程序集”缺失 - 如果在每个步骤中两个民族之间的距离> D则失调。

我需要找到一种算法,决定是否存在“缺失调度程序集”。

有什么建议?

一个简单的解决方案是首先使用来自O(n *(n + m))中的每个节点的n个广度优先搜索来求解所有对最短路径

然后使用lambda(x,y)> D创建有效节点对(x,y)的图形,边缘指示可能的移动。 如果v = x,则存在边{(v,w),(x,y)}并且原始图中存在边{w,y}或者如果w = y并且存在边{v,x}在原始图表中。 该新图具有O(n ^ 2)个节点和O(nm)边。

现在您只需要检查(c,d)是否可以从新图中的(a,b)到达。 这可以使用DFS或BFS来实现。

总运行时间为O(n *(n + m))。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM