【问题标题】:Algorithm for finding cost of a node based on preceding nodes in a cyclic graph基于循环图中先前节点查找节点成本的算法
【发布时间】:2015-10-26 15:06:08
【问题描述】:

我有一个部分或全部循环图,我想根据前面节点成本的加权和来计算每个节点的成本。没有传入边的节点有固定的成本分配给它们。

例如,下图的每个节点都标有其计算的成本(节点 2 的成本是固定的),每条边都标有前一个节点的权重。因此,节点 1.33 的成本是从 1*0.33 + 0.5*2 计算出来的。

我目前使用迭代方法将每个节点的成本计算到某个 epsilon 内,但我正在寻找一种可以准确计算成本的算法。上面的示例非常简单,实际问题是每个强连接组件处理约 100 个节点。对于可以解决这个问题的算法有什么建议吗?

【问题讨论】:

  • 你写“(cycle = strong connected component)”的部分非常令人不安,虽然循环是一个强连接组件,但反过来并不总是如此。所以请使用正确的术语。
  • @user2798694 抱歉,我只是想澄清一下,我指的是强连接组件,即相互依赖的节点可能有交叉边。删除了循环的提及。

标签: algorithm graph graph-algorithm


【解决方案1】:

您可以构建一个线性方程组并求解它们。在您给出的示例中,节点 2 是固定的,因为它没有传入边。将值x 分配给右上节点,y 分配给左上节点,z 分配给下节点,您构建了以下线性方程组

x = 0.5*2 + 1*y
y = 0.5*z
z = 0.5*x

Using WolframAlpha, we have

x=1.33333,   y=0.333333,   z=0.666667

【讨论】:

  • stackoverflow.com/q/769/2726028 这个问题涉及求解线性方程组。
  • @Olayinka 感谢您提供指向高斯消元法的指针——这看起来很有希望。
猜你喜欢
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多