假设我在一些变量之间有一些已知的关系,例如a = b + c
和一个起始解决方案,例如a=2, b=1, c=1
。我正在编写一些代码,例如,给定更新a=3
,我更新 and 的值,b
以便c
仍然满足关系,例如设置b=2
(显然有很多可能性,我只需要一个)。
在实践中,有很多关系,它们不是线性的。该代码通过用户为每个变量提供函数作为其他变量的函数来工作,例如a(b,c)
、b(a,c)
和c(a,b)
。然后我构建一个依赖关系图,当一个值发生变化时,我会执行广度优先搜索之类的操作来更新其他值。这似乎可行,但我不禁认为我正在重新发明轮子,这是一些众所周知的计算机科学/图论问题。也许甚至还有一个包裹?
谁能提供一些链接或一些关于我正在解决的问题的见解?