特征化转换系统十年:理论、扩展与测试应用
1. 可达性算法
可达性算法(Reachables)用于计算从给定初始状态出发的可达状态集合。以下是算法的具体实现:
Input: fts = (S, Act, Trans, I, AP, L, fm, γ), s0 ∈S.
Output: R(s0).
1 R ←⊥;
2 Stack ←push((s0, fm), []);
3 while Stack ̸= [] do
4
(s, γ) ←pop(Stack);
5
succ ←{(s′, γ′) | s′ ∈dom(Post(s)) ∧γ′ = Post(s)(s′) ∧γ};
6
foreach (s′, γ′) ∈succ • γ′ ̸|=⊥do
7
if s′ ∈dom(R) then
8
γnew ←¬R(s′) ∧γ′;
9
if γnew ̸|=⊥then
10
R(s′) ←R(s′) ∨γ′;
11
push((s′, γnew), Stack);
12
end
13
end
14
else
15
R(s′) ←γ′;
16
push((s′, γ′), Stack);
17
end
18
end
19 end
20 return R
该算法的理论复杂度分析如下:设 fts 是基于特征集合 F 的 FTS,计算该算法的最坏情况时间复杂度为 $O(|fts| \cdot 2^{|F|})$。虽然 FTS 算法的理论复杂度较高,但实验表明在实际应用中它优于基于产品的方法。
超级会员免费看
订阅专栏 解锁全文

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



