algorithm - 持续计算对象之间的级联关系的最佳方法(算法)是什么?

标签 algorithm graph-algorithm

例如 A+B=C C+D=E E+F=G 当对每个节点进行更改时,将重新计算关联的节点。 下图是我正在尝试做的一个简单示例。

进一步说明 每个对象的结构都是相同的。输入将是价格,因为每次价格变化都会对下游价格产生级联效应。所以在上面的例子中,A+B=C 会变成 5+6=11。等

变化不断发生(可能每秒发生一次),因为每个值都发生变化,我需要得到通知(事件触发)。

最佳答案

只要您的图形没有变化,只有值发生变化,您就可以执行 topological sort你的图表。然后从更改的值开始按拓扑排序顺序遍历图形。如果更改将成为图形的稀疏部分,请按拓扑排序顺序为每个节点分配一个索引并使用 priority queue决定下一步要做什么节点。

关于algorithm - 持续计算对象之间的级联关系的最佳方法(算法)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3979825/

相关文章:

algorithm - 边缘有预算的最大简单路径

c# - 在 C# 中构建稀疏数组的更快算法或技术

c - 四叉树解释和C实现

algorithm - 如何有效地处理后继图中的最短路径查询?

java - 检查权重总和不为 0 的循环

algorithm - 如何生成具有多个成功路径的迷宫?

algorithm - 构建给定约束的图形

Chomp游戏的算法

c++ - 简单的 AI 运动算法无法正常工作

java - java二维数组中的单词搜索