时间感知社交图DS /查询

时间:2010-09-12 05:34:51

标签: algorithm data-structures graph matrix social-networking

经典社交网络可以表示为图形/矩阵。

使用图表/矩阵可以轻松计算

  • 2位参与者之间的最短路径
  • 来自A的可达性 - >乙
  • 一般统计(互惠,平均连接等)

是否存在理想的数据结构(或图形/矩阵的修改),可以在识别时间的情况下轻松计算上述内容?

例如,

输入

t = 0 ... 100

  • A< - > B(t = 0 ... 10)
  • B - < - > C(t = 5 ... 100)
  • C - < - > A(t = 50 ... 100)

示例查询

  • A是否随时与B相关联? (是)
  • A与B相关联而B与C相关联? (是的。@ t = 5 ... 10)
  • C是否可以从A(是。@ t = 5)
  • 到达

1 个答案:

答案 0 :(得分:4)

您正在寻找的是一个明确的持久数据结构。关于这一点有相当多的文献,但它并不是众所周知的。 Chris Okasaki写了一本关于这个主题的实质性书。看看我对this question的回答。

鉴于像Driscoll等人的节点分裂结构这样的完整实现,有几种不同的方法来设置查询。如果您想了解特定时间范围内的真实内容,则只需检查包含该时间范围数据的节点。如果你想知道什么时间范围是真的,你会开始搜索,并在探索每个新节点时逐步收紧你的界限。请记住,您的结果可能并不总是连续的 - 考虑两个人开始约会,分手并重新聚在一起。

我猜想,如果对持久性图表进行有趣的查询,可能至少有一篇未经探索的出版物,如果不是更多的话。