【问题标题】:How to find probability of path in a directed graph?如何在有向图中找到路径的概率?
【发布时间】:2016-08-30 06:44:25
【问题描述】:

我有一个有向加权图 G=(V,E)。

在这个图中,边(v[i],v[j]) 的权重是 v[i] 和 v[j] 之间的转换计数。

我正在尝试确定完成任务的最佳方法:如何找到从节点 A 到节点 B 的路径的概率 P

所有权重都是正整数。

例如,

weight(A,B)=count of transition from A to B
weight(B,C)=count of transition from B to C
weight(B,D)=count of transition from B to D
weight(D,C)=count of transition from D to C

我们有几种路径:

A->B->C 
A->B->D->C

那么,如何计算这些路径的概率 P 并选择最佳路径?

【问题讨论】:

  • 目前还不清楚概率应该从哪里来。 “过渡计数”是什么意思?是什么让一条路径成为最好的?您没有向我们提供足够清晰的问题陈述,以便我们回答问题。
  • @user2357112 例如,转换的计数 - 从 A 到地方 B 的转换数。最佳路径是概率最大的路径。我试图解决这个问题:P=属于这条路径的边的权重之和。但是我有一个问题,最大长度的路径概率最大,但这是错误的

标签: algorithm graph graph-theory weighted


【解决方案1】:

假设我们确实在讨论概率(这意味着每个权重都在[0,1] 范围内),可以通过将问题简化为shortest path problem 来解决。

设图为G=(V,E),两个顶点之间的概率记为w(u,v)

定义: w'(u,v) = -log(w(u,v))

当使用w'作为权重函数时,从某个节点s到某个节点t的最短路径就是图中的最短路径。您可以使用Dijkstra's algorithmBellman-Ford algorithm 找到最短路径

证明:

对于路径v1->v2->...->vn,其概率为w(v1,v2) * w(v2,v3) * ... * w(vn-1,vn)

当使用w'作为权重时,使用任何最短路径算法时这条路径的代价是:

d(v1,vn) = w'(v1,v2) + w'(v2,v3) + ... + w'(vn-1,vn) = 
d(v1,vn) = -log(w(v1,v2)) + -log(w(v2,v3) + ... + -log(w(vn-1,vn)) = 
d(v1,vn) = -1* [ log(w(v1,v2)) + log(w(v2,v3)) + ... + log(w(vn-1,vn)) =
d(v1,vn) = -1* log(w(v1,v2) * w(v2,v3) * ... * w(vn-1,vn)) 

这显然也适用于从st 的最小路径。
这意味着这条路径的最小值为:

s(s,t) = -1* log(w(s,v2) * w(v2,v3) * ... * w(vn-1,t)) 

而且由于log是单调函数,所以也是-1 * w(s,v2) * w(v2,v3) * ... * w(vn-1,t)的最小值,也就是w(s,v2) * w(v2,v3) * ... * w(vn-1,t)的最大值,这就是概率。

【讨论】:

  • 这看起来相当复杂。我建议您使用数组表示法 v[i] 代替 vi (实际上代替 OP 中的 v_i )。我建议添加对“对数”技巧的引用。我建议删除过度解释的行,因为它使答案看起来比实际上更难。另外,我猜你假设了某种独立性,应该明确说明。
  • @amit w'(u,v) value in range([0;1]) ?如果我有 w(u,v) = 从节点 u 到节点 v 的转换计数,如何获得 w'(u,v)?
  • @Andrei -log(count of transitions from node u to node v),正如一般w(.,.)所说的那样。
  • @amit 我有个误会,现在权重会在 [0;1] 中如何?
  • @Andrei 道歉,距您的问题给出答案已过去 3 周。你是对的,在这种情况下,你需要以某种方式将其标准化为[0,1]。一种方法是定义w(u,v) = #transitions from u to v / #transition from u to any node,或您能想到的任何其他规范化。如果没有 [0,1] 范围,这是一个非常困难的问题,如果我没记错的话,它相当于最长路径问题(即 NP 完全问题)。
猜你喜欢
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多