例如 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/