从语言到行为及其逆向转换:探索程序系统的行为建模
1. 引言
在过去几十年里,主动自动机学习(AAL)从最初用于通过查询推断(正则)语言,发展成为一种基于观察来推断软件系统模型的重要方法,也可支持无需先验模型的基于模型的测试。20年前就有人发现,描述软件系统行为的语言本质上是前缀封闭的。考虑到具有输出确定性的米利机,这一观察及其实际影响得到了进一步完善,如今在对反应式软件系统进行建模时,米利机已成为事实上的标准。
同时,研究也在向超越正则系统的方向发展,比如考虑无限数据域或引入递归。Frits Vaandrager在这些推广方面的工作着重于映射器,通过映射器可以将一些复杂系统的学习问题转化为正则自动机学习问题。本文基于类似的简化思路,通过对扩展字母表上的正则自动机进行协调学习来学习上下文无关系统。
本文重新审视了前缀封闭性在程序系统中的影响。之前的工作引入了程序自动机系统(SPAs),它通过一组可相互调用的独立过程(由DFA表示)来描述带仪器的上下文无关语言。然而,行为通常描述系统可以执行的逐步动作,形式上常通过标记转换系统(LTSs)来表示。在程序系统中,从正则行为到程序行为的转变可以看作是从有限LTS到相互递归LTS集合的转变,程序行为能够表达非终止过程等经典基于语言的解释无法表达的概念。
为了形式化程序行为的概念,本文引入了程序转换系统(SPTSs)的概念,并提出了行为自动机系统(SBAs),将其与SPA语言的前缀相关联。还给出了一个用于推断SBAs的AAL算法,并提供了该算法的开源实现以供公开实验。程序行为(或等价的前缀封闭SPA语言)的一个有趣特性是它超越了经典的SPA语言,这引出了一种减少非终止行为的方法,通过SBA推断先学习系统行为,再去除非终止
程序系统行为建模与学习
超级会员免费看
订阅专栏 解锁全文
18

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



