ZDD 算法在重配置问题中的应用与性能分析
1. 算法基础与操作
在重配置问题的求解中,ZDD(零抑制二元决策图)发挥着重要作用。在构建 $Z_i$ 后,需要判断 $Z_i = ⊥$(即 $S(Z_i) = ∅$)以及 $T ∈S(Z_i)$ 这两个条件。若 $Z_i = ⊥$,意味着从初始集合 $S$ 到目标集合 $T$ 不存在重配置序列,此时输出“NO”并停止;若 $T ∈S(Z_i)$,则存在长度为 $i$ 的从 $S$ 到 $T$ 的重配置序列,输出“YES”并停止;若两者都不满足,则构建 $Z_{i+1}$。
例如,我们可以得到 $S(Z_0) = {S} = { {1, 3}}$,$S(Z_1) = { {1, 3, 5}, {1, 3, 6}}$,$S(Z_2) = { {1, 3}, {1, 5}, {1, 6}, {3, 5}, {3, 6}}$,$S(Z_3) = { {1, 3, 5}, {1, 3, 6}, {1, 4, 6}}$。
接下来,介绍关于 ZDD 的移除和添加操作:
- 移除操作(remove(Z, R)) :设 $ν = root(Z)$ 且 $ν = (x, ν_0, ν_1)$,当 $x ∈R$ 时,$root(Z_{rem}) = x$,$child_0(Z_{rem}) = remove(child_0(Z), R \ {x}) ∪ child_1(Z)$,$child_1(Z_{rem}) = remove(child_1(Z), R \ {x})$;当 $x ∉R$ 时,$child_0(Z_{rem}) = r
超级会员免费看
订阅专栏 解锁全文
31

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



