通过这样的网络进行的计算按如下方式进行:
当变量被给予一个值时,它会唤醒它的所有关联约束条件(刚刚唤醒它的约束条件除外),以通知它们它具有了一个值。每个被唤醒的约束条件都会轮询它的变量,以查看是否有足够的用来确定变量值的信息。如果有,则约束条件会设置该变量,后者随后会唤醒它的所有关联约束条件;依此类推。例如,在从摄氏温度到华氏温度的转换过程中,constant 约束条件立即将变量 k、l 和 m 的值分别设置为 9、5 和 32。变量唤醒乘法器和加法器,二者将确定没有继续计算所需的足够信息。当 c 的值被设置为某个数字 — 例如 100 时,最左侧的乘法器被唤醒,并且将 u 设置为 100 * 9 = 900。然后,u 唤醒第二个乘法器,它将 v 设置为 180;v 唤醒加法器,它将 f 设置为 212。
变量的接口是通过下列方法实现的:
• boolean has_value()
分辨是否有值。
• double get_value()
返回该值。
• void set_value(double d, IConstraint theConstraint)
指示 theConstraint 希望将该值设置为 d。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/