自动机学习在运行时验证中的应用
1. 引言
在计算机科学的发展历程中,自动机学习已经成为一种强大的工具,尤其是在运行时验证(Runtime Verification, RV)领域。通过实验与黑盒系统(Black-box System, BBS)进行交互,自动机学习能够提取出一个满足给定形式规范ϕ的有限状态自动机(Finite State Automaton, FSA)。这种方法不仅避免了从头开发满足规范的系统所带来的复杂性,还能高效地进行逆向工程(Reverse Engineering, RE)。本文将探讨自动机学习和模型检查在逆向工程中的应用,特别是其在基于循环神经网络(Recurrent Neural Network, RNN)系统中的潜力。
2. 自动机学习的基础
自动机学习的目标是从实验中学习一个黑盒系统的模型,该模型能够满足给定的形式规范ϕ。最著名的自动机学习算法之一是Angluin的L 算法。L 算法通过两种查询来学习有限状态自动机:
- 成员查询(Membership Query) :测试给定执行是否在黑盒系统B上有预期的输出。
- 等价查询(Equivalence Query) :询问候选自动机M是否在所有输入序列上产生与黑盒系统B相同的输出。如果M和B不等价,则返回一个反例μ,用于进一步学习。
2.1 L*算法的步骤
L*算法使用两个有限序列集S和E,其中S是前缀闭集的可访问序列,E是后缀闭集的区分序列。算法通过以下步骤进行: