如何解决动态图相关问题


15

我在通用stackoverflow上问了这个问题,我被引导到这里。

如果有人可以解释通常如何解决部分或完全动态图问题,那将是很好的。

例如:

  • 当在每个实例上删除一条边时,在实例的无向加权图中的两个顶点之间找到最短路径。nüvñ
  • 当在每个实例上移除一条边等时,找到n个实例在无向图中的连接组件数。

我最近在编程竞赛中遇到了这类问题。我在网上搜索,发现了很多有关动态图的研究论文[1,2]。我读了其中的几本书,却找不到直接的东西(聚类,稀疏化等)。很抱歉含糊。

如果有人可以提供一些指针来更好地理解这些概念,我将非常感谢。


  1. D.Eppstein,Z.Galil,GF Italiano(1999)的动态图算法
  2. G. Nannicini,L。Liberti(2008)在动态图上的最短路径

Answers:


12

很难为您提供具体的技术,因为“动态”可能意味着各种各样的事情,并且算法/结果取决于您的模型。以下是问题的概述。是一篇论文,概述了一些不同的关注点和模型(与Peter在另一个答案中引用的内容有关)。


对于一般的动态问题,关键问题是:

  • 您是否在所有情况下都需要精确的解决方案,还是允许近似?
  • 您是否会知道将发生什么变化(例如概率分布),或者它们都具有相同的可能性?
  • 该算法如何了解这些变化?

典型的动态模型如下所示:

  1. 给定一个图,您想计算一些属性。您可以为初始图形计算解决方案。

  2. 然后,您会被告知一种修改:edge 被删除。使用有限的资源在新图上计算属性。ËF

  3. 重复2 次次。ñ

这是3种可能的修改:

  • 由于信息/时间/空间限制,您一开始就无法计算完整的解决方案(其中一个示例是在线算法

  • 在第2步中,该算法不是“告知”修改,而是必须通过查询数据结构或其他内容在图形中找到修改。

  • 分布式模型(例如Peter在另一个答案中讨论的模型),该模型在本地发现信息并在本地进行计算/更改。

由于资源(例如时间/空间)的限制,动态模型通常很有趣。在步骤2中,如果允许我计算一个完整的答案(就像在步骤1中所做的那样),则问题很容易,因为这只是重复的静态图问题。我们对计算更改所需的最小资源量更感兴趣。


非常感谢您的回复。我试图了解解决简单的部分动态图问题的复杂性和方法。
Prakash 2012年

非常感谢您的回复。我将仔细阅读论文。我试图了解解决简单的部分动态图形问题的复杂性和方法。例如,给定一组通过道路连接,无方向且按距离加权的城市。在每种情况下,由于种种原因,每条道路都被封锁时,找到n个实例中两个城市之间的最短路径。在n个实例上运行Dijkstra是不切实际的,是否有办法使现有算法(如A *)适应更好的时限来解决这些问题,或者本文中讨论的方法是唯一的方法。
Prakash 2012年

A *是Dijkstra +启发式的推广;在最坏的情况下,性能相似。对我来说,您的问题的重要问题是“您可以在实例之间存储什么样的信息,这将使下一个实例更快?” 例如,如果存储了先前的最短路径,我将能够快速找出它是否“失败”,但是没有明显的方法来计算下一条最短路径。(即使您存储了前一个实例的k条最短路径,我也怀疑这适用于任何k条。)
Lucas Cook

(我之前的评论主要是讨论最坏情况的解决方案。也许您关心平均情况?然后可能会有一种启发式方法,可以解决A *类型的问题。)
Lucas Cook

10

动态图模型已在分布式计算中进行了深入研究。对于分布式算法,计算被分为多个回合,并且图的拓扑(=网络)可能会在回合之间进行一些变化,这些变化都在对手的控制之下。此外,图的每个节点都运行一种算法,该算法可以向其(当前!)邻居发送消息。(此消息是下一轮邻居算法的输入。)使事情变得有趣的是,一个节点不会“看到”整个图,而只能看到其本地邻域。

这些设置中考虑的问题是例如信息传播,其中图形中的每个节点最初都拥有一个令牌,最终您希望每个节点都看到了每个令牌。目标是设计算法,以最少的回合次数,使用最少的消息数来实现这一目标。参见[2],了解最近的调查。

对于非分布式设置,您可能需要查看[1],它是您提到的论文的扩展。


[1] Aris Anagnostopoulos,Ravi Kumar,Mohammad Mahdian,Eli Upfal,Fabio Vandin:进化图上的算法。ITCS 2012:149-160

[2] Fabian Kuhn,Rotem Oshman:动态网络:模型和算法。SIGACT新闻42(1):82-96(2011)


这些消息传递算法难道没有(缺乏)收敛性问题吗?
拉斐尔

不知道我是否理解“融合”的含义。只要图在每一轮中保持连接,看到特定令牌t的节点数将至少增加1。因此,在n轮之后,每个人都将看到t,无论对手如何改变拓扑。
彼得

我在想由拓扑变化引起的无穷数问题
拉斐尔

@Raphael在分布式动力学中,研究人员通常正在研究在特定时间范围内可以保证最坏情况的属性。因此,由于该技术在动态环境中的基本问题,因此不能保证距离矢量/贝尔曼-福特的“收敛性”。还有其他收敛路由协议不存在无限计数问题。
卢卡斯·库克

3

建立在@Peter答案的基础上(这是一个很长的评论,因此我只是希望某人将从中受益)。

我建议以下参考:

Arnaud Casteigts,Paola Flocchini,Walter Quattrociocchi,Nicola Santoro:时变图和动态网络。IJPEDS 27(5):387-408(2012)

Δ

这种分类的真正重要之处在于不同类之间存在包含关系。因此,如果您在某个类别中解决问题,则可以在其中包含的所有其他类别中解决它。

同一作者在上述某些图表上介绍了广播算法。他们给出了与时间相关的不同性能指标(即,最短时间的不同定义)。在广播中,其思想是每个节点都在时域中构建网络视图。这是通过反复侦听邻居并将信息发送给邻居来完成的。如果采用周期性,则一个节点可以知道到另一个节点的最短时间路径。它在路由中使用此信息。更多详细信息,请参见:

Arnaud Casteigts,Paola Flocchini,Bernard Mans,Nicola Santoro:时变图中的确定性计算:非结构化移动下的广播。IFIP TCS 2010:111-124

üv{üX1X1X2Xķv}üvvü

我参加了以前的作者的演讲。据我了解,他们声称我们远远不能处理动态图算法(遵循他们遵循的定义)。我们仍然在简单类的情况下。实际上,他们声称大多数移动计算算法只是假设它们的算法太快而无法在网络过渡期间执行!(我相信我听到过很多)-或简单地假设边缘出现的周期性(请参见容错网络等)

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.