超越 Mealy 机。在 Mealy 机中,单个输入始终触发单个输出。然而,在实践中,系统可以用零个或多个输出来响应输入。此外,系统的行为通常是时序相关的,并且某个输出可能仅在某些输入未能在一定量的时间内得到时才发生。因此,模型学习的实际应用经常严重受限于 Mealy 机缺乏表达性。例如,为了将 TCP 实现为 Mealy 机,我们必须消除基于时序的行为以及重传(retransmissions)。17 已经有一些初步的工作,将学习算法扩展到 I / O 自动机 4和事件记录自动机,18 但是仍然需要大量的工作将这些想法变成实际的工具。 由于一个输入序列可能导致在不同运行中会有不同的输出事件,因此从这种意义上来说,系统通常是非确定的。然而,现有的模型学习工具只能够学习确定性的 Mealy 机。在实际应用中,我们有时可以通过将不同的具体输出事件抽象为单个抽象输出以消除非确定性,但在许多情况下这是不可能的。Volpato 和 Tretmans 38 提出了一种*L **对非确定性 I / O 自动机的主动学习的调整方案。他们的算法能够学习非确定性 SUL,并且它允许我们构造部分或近似模型。同样,还需要进行大量工作以将这些想法纳入最先进的工具,如 LearnLib、libalf、RALib 或 Tomte。 模型质量。由于模型学习算法生成的模型是通过有限数量的测试获得的,所以我们不能确保它们是正确的。然而,从实践的角度来看,我们希望能够对学习模型的质量进行定量说明,例如,断言假设高概率地近似正确。Angluin 6 根据 Valiant 的 PAC 学习方法提出了这样的一种设定。她的想法是假设在输入字母表 I 上一组单词的一些(未知)概率分布。为了测试假设,一致性测试器(参见图 4)选择指定数量的输入词(这些是统计独立的事件),并检查每个词,无论 SUL 的输出结果是否和假设相一致。只有当完全一致时,一致性测试仪才会向 learner 返回答案'yes'。如果选择一个字符串所表现出来的差异的概率最多为ε,则该假设被认为是 SUL 的ε近似。给定 SUL 的状态数量的界限以及两个常数ε和δ,Angluin 的多项式算法产生模型,使得该模型是 SUL 的近似的概率为至少 1 -δ。Angluin 的结果是优雅的,但在反应系统的设置中不现实,因为我们通常在输入词上没有固定的分布。(输入受 SUL 环境的控制,且此环境可能会发生改变。) 我们使用传统一致性测试,可以设计出一个测试套件,该测试套件可在给定 SUL 状态数量上限的情况下保证学习模型的准确性。但是这种方法也不能令人满意,因为所需要的测试序列的数量会随着 SUL 的状态数量呈现指数型增长。因此,挑战在于如何在 Angluin 方法和传统的一致性测试之间建立一个折中。系统日志通常提供了一个输入词集合的概率分布,该输入词集合可被用来作为定义某个度量标准的启动点。 打开箱子。使用黑箱模型学习技术可以有很多原因。例如,我们可能想要了解组件的行为,但是不能访问代码。或者我们可以访问代码,但没有合适的工具来分析它(例如,在旧版软件的情况下)。即使在「白箱」情况下,我们可以访问代码并有强大的代码分析工具,黑箱学习也是有意义的,例如因为黑箱模型可以用于生成回归测试,用于检查是标准是否一致,或作为更大的基于模型开发的系统的一部分。一个重要的研究挑战是结合黑箱和白箱模型提取技术,例如,使用白盒方法,如静态分析和 concolic 测试,以帮助回答由黑箱 learner 提出的等价性查询。 致谢。部分工作是在 STW 项目 11763(ITALIA)和 13859(SUMBAT)以及 NWO 项目 628.001.009(LEMMA)和 612.001.216(ALSEP)的背景下进行的。 参考文献: 1. Aarts, F., Fiter?u-Bro?tean, P., Kuppens, H., Vaandrager, F. Learning register automata with fresh value generation. In ICTAC'15, LNCS 9399 (2015). Springer, 165–183. (责任编辑:本港台直播) |