【24h】

On the Complexity of Error Explanation

机译:关于错误解释的复杂性

获取原文
获取原文并翻译 | 示例

摘要

When a system fails to satisfy its specification, the model checker produces an error trace (or counter-example) that demonstrates an undesirable behavior, which is then used in debugging the system. Error explanation is the task of discovering errors in the system or the reasons why the system exhibits the error trace. While there has been considerable recent interest in automating this task and developing tools based on different heuristics, there has been very little effort in characterizing the computational complexity of the problem of error explanation. In this paper, we study the complexity of two popular heuristics used in error explanation. The first approach tries to compute the smallest number of system changes that need to be made in order to ensure that the given counter-example is no longer exhibited, with the intuition being that these changes are the errors that need fixing. The second approach relies on the observation that differences between correct and faulty runs of a system shed considerable light on the sources of errors. In this approach, one tries to compute the correct trace of the system that is closest to the counter-example. We consider three commonly used abstractions to model programs and systems, namely, finite state Mealy machines, extended finite state machines and pushdown automata. We show that the first approach of trying to find the fewest program changes is NP-complete no matter which of the three formal models is used to represent the system. Moreover we show that no polynomial factor approximation algorithm for computing the smallest set of changes is possible, unless P = NP. For the second approach, we present a polynomial time algorithm that finds the closest correct trace, when the program is represented by a Mealy machine or a pushdown automata. When the program is represented by an extended finite state machine, the problem is once again NP-complete, and no polynomial factor approximation algorithm is likely.
机译:当系统无法满足其规格要求时,模型检查器将产生一个错误跟踪(或反示例),该错误跟踪证明了不良行为,然后将其用于调试系统。错误说明是发现系统错误的任务,或者是系统显示错误跟踪的原因。尽管最近有很多兴趣使此任务自动化并基于不同的启发式方法开发工具,但在描述错误解释问题的计算复杂性方面却付出了很少的努力。在本文中,我们研究了用于错误解释的两种流行的启发式算法的复杂性。第一种方法试图计算为确保不再显示给定的反例而需要进行的最少系统更改,直觉是这些更改是需要修复的错误。第二种方法依赖于这样的观察,即系统正确运行与错误运行之间的差异为错误的来源提供了可观的认识。在这种方法中,人们试图计算最接近反例的系统的正确轨迹。我们考虑了三种常用的抽象程序和系统模型,即有限状态Mealy机,扩展有限状态机和下推自动机。我们表明,不管使用三种形式模型中的哪一种来表示系统,尝试找到最少程序更改的第一种方法都是NP完全。此外,我们证明,除非P = NP,否则不可能使用用于计算最小变化集的多项式因子近似算法。对于第二种方法,当程序由Mealy机器或下推自动机表示时,我们提出一种多项式时间算法,该算法可找到最接近的正确轨迹。当程序由扩展有限状态机表示时,问题再次是NP完全的,并且不可能有多项式因子近似算法。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号