基于L*算法的组件化软件最小假设生成方法
1. 假设 - 保证验证
1.1 L*学习算法
L 学习算法最初由Angluin开发,后经Rivest和Schapire改进。该算法用于学习未知的正则语言,并生成一个接受该语言的确定性有限自动机(DFA)。其核心思想基于形式语言理论中的 “Myhill - Nerode定理”,即对于每个正则集 $U \subseteq \Sigma^ $,都存在一个唯一的最小确定性自动机,其状态与以下关系的等价类集合同构:$w \approx w’$ 当且仅当 $\forall u \in \Sigma^ : wu \in U \Leftrightarrow w’u \in U$。因此,L 算法的主要目标是学习这些等价类,即两个前缀不在同一类中当且仅当存在一个可区分的后缀 $u$。
为了学习未知的正则语言 $U$,L 算法需要与一个 “最小充分教师”(Teacher)进行交互。Teacher需要能够正确回答L 算法提出的两类问题:
- 成员查询 :给定一个字符串 $\sigma \in \Sigma^ $,如果 $\sigma \in U$,则回答为真,否则为假。
- 猜想 *:给定一个候选DFA $M$,算法认为其语言与 $U$ 相同。如果 $L(M) = U$,则回答为真,否则Teacher返回一个反例,即 $L(M)$ 和 $U$ 的对称差集中的一个字符串 $\sigma$。
L 算法维护一个表格 $T$,用于记录 $\Sigma^ $
超级会员免费看
订阅专栏 解锁全文

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



