增量传播中的顾问机制:原理、实现与应用
1. 建议传播算法
建议传播算法的核心代码如下:
N ←P;
while N ̸= ∅do
remove p from N;
⟨l, s⟩←p(d, state[p]);
d′ ←d; state[p] ←s;
foreach x ∼n ∈l do
d′ ←d′[x ∼n];
foreach a ∈adv[x] do
⟨s, Q⟩←a(d′, x ∼n, state[prop[a]]);
state[prop[a]] ←s; N ←N ∪Q;
N ←N ∪ {x∈dis(d,d′) prop[x]};
d ←d′;
return d;
该算法在传播器和顾问始终提供足够建议的情况下,循环不变式成立,从而保证了建议传播的结果的正确性。算法在向顾问提供信息时,先通过 x ∼n 更新域 d′ ,再将更新后的域 d′[x ∼n] 与 x ∼n 一起传递给顾问,当然也可以传递未更新的域 d′ 和 x ∼n 。
建议传播的一个重要特性是域独立性,它仅依赖于变量域的告知信息,其余方面可轻松应用于其他变量域。同时,将顾问设为无传播权的二等公民有诸多好处。若顾问也能进行传播,传播后所有顾问都需重新考虑执行,这会带来递归传播或需额外数据结构组织顾问的问题,
超级会员免费看
订阅专栏 解锁全文
53

被折叠的 条评论
为什么被折叠?



