Algorithm 网络流算法相关问题

Algorithm 网络流算法相关问题,algorithm,network-flow,Algorithm,Network Flow,我正试图从塔多斯那里解决以下问题。如有任何建议或帮助,将不胜感激 您被要求帮助一些网络管理员诊断其网络中的故障程度。该网络设计用于将流量从指定的源节点s传输到指定的目标节点t,因此我们将其建模为有向图G=(V,E),其中每条边的容量为1,并且每个节点位于从s到t的至少一条路径上 现在,当网络中的一切都顺利运行时,G中的最大s-t流的值为k。然而,目前的情况——以及您出现在这里的原因——是攻击者破坏了网络中的一些边缘,因此现在没有使用剩余(幸存)边缘从s到t的路径。出于我们在此不讨论的原因,他们认

我正试图从塔多斯那里解决以下问题。如有任何建议或帮助,将不胜感激

您被要求帮助一些网络管理员诊断其网络中的故障程度。该网络设计用于将流量从指定的源节点s传输到指定的目标节点t,因此我们将其建模为有向图G=(V,E),其中每条边的容量为1,并且每个节点位于从s到t的至少一条路径上

现在,当网络中的一切都顺利运行时,G中的最大s-t流的值为k。然而,目前的情况——以及您出现在这里的原因——是攻击者破坏了网络中的一些边缘,因此现在没有使用剩余(幸存)边缘从s到t的路径。出于我们在此不讨论的原因,他们认为攻击者只破坏了k条边,这是分离s和t所需的最小数量(即最小s-t切割的大小);我们假设他们相信这一点是正确的。 网络管理员正在节点s上运行一个监视池,该监视池具有以下行为:如果您发出命令ping(v),对于给定的节点v,它将告诉您当前是否存在从s到v的路径。(因此pint(t)报告当前不存在路径;另一方面,ping(s)总是报告从s到自身的路径。)由于出去检查网络的每个边缘并不实际,他们希望通过明智地使用ping命令,使用此监视工具确定故障的程度。 因此,您面临的问题是:给出一个算法,向网络中的各个节点发出一系列ping命令,然后报告当前无法从s访问的全部节点集。当然,您可以通过ping网络中的每个节点来实现这一点,但您希望使用更少的ping来实现这一点(假设只删除了k条边)。在发出此序列时,允许您的算法根据先前ping操作的结果决定下一步ping哪个节点。
给出一个仅使用O(k log n)ping来完成此任务的算法。

在完整网络上使用Floyd Fulkerson来计算最大流,该最大流由k条边不相交的路径组成

由于删除了整整k条边,并且所有流都被切断,因此必须沿每个路径删除整整一条边


对于每个最多包含n条边的路径,使用O(logn)ping对路径上的节点进行二进制搜索以发现断裂边的位置。

回答非常好,谢谢,我一直在研究如何将“最大流概念”链接到此处福特富尔克森的运行时间如何小于O(klogn)?@SahilManchanda O(k logn)是ping的数量,不是跑步时间。