【发布时间】:2014-12-23 02:57:11
【问题描述】:
我有很多节点。 Node 的定义是这样的:
public class Node
{
public string Name { get; private set; }
string Expression { get; set; }
double Value { get; private set; }
}
Value 在运行时由表达式评估引擎评估。 Expression 可以引用其他的Nodes,所以它可以形成一个有向图(或有向图的列表)。假设图中没有循环。
这是一个例子:
NodeA:
{
Name: "NodeA",
Expression: "[NodeB] + [NodeC] + 1.0"
Value: 4.0
}
NodeB:
{
Name: "NodeB",
Expression: "1.5"
Value: 1.5
}
NodeC:
{
Name: "NodeC",
Expression: "2.0"
Value: 2.0
}
问题是如果NodeB发生了变化,如何有效地将变化传播到其他节点?我可以使用一些并行方法来更新图表吗?
谢谢!
【问题讨论】:
-
我不太明白您为什么要传播这些更改。当您评估节点 A 中的表达式时,这不会获取节点 B 和节点 C 的最新值吗?
-
对不起,我的意思是如何更新整个图表。是的,我可以使用 BFS 连续评估依赖节点。我想知道是否有并行方法来更新图表。
标签: c# algorithm graph-algorithm