论文标题

了解QuickXplain算法:简单的解释和正式证明

Understanding the QuickXPlain Algorithm: Simple Explanation and Formal Proof

论文作者

Rodler, Patrick

论文摘要

Ulrich Junker在2004年的开创性论文中提出了QuickXplain算法,该算法提供了一种分裂和拼接的计算策略,以在给定的设置中找到具有特定(单调)属性的不可约子集。除了其在约束满意度问题领域的最初应用外,该算法从那时起就发现了与基于模型的诊断,推荐系统,验证或语义网的区域中广泛采用。这种受欢迎程度是由于一方面发现不可还原子集以及QuickXplain的一般适用性和有利的计算复杂性的问题。 但是,尽管(我们经常体验)人们很难理解QuickXplain,并且了解其工作正常的原因,但是算法的正确性证明从未出版过。这是我们在这项工作中所说的,通过以一种小说和测试的方式解释QuickXplain,并通过提供可理解的正式证明。除了显示算法的正确性并排除后来的错误(证据和信任效应)之外,正式证明的可用性附加价值外,例如,(i)(i)算法的工作通常只有在研究,验证和理解证明的(decadactic效应)之后,(ii)作为另一种指南(ii)的效果,(ii (iii)提供依赖QuickXplain(计算结果)的系统的“无间隙”正确性证明的可能性,例如众多基于模型的调试者(完整性效应)。

In his seminal paper of 2004, Ulrich Junker proposed the QuickXPlain algorithm, which provides a divide-and-conquer computation strategy to find within a given set an irreducible subset with a particular (monotone) property. Beside its original application in the domain of constraint satisfaction problems, the algorithm has since then found widespread adoption in areas as different as model-based diagnosis, recommender systems, verification, or the Semantic Web. This popularity is due to the frequent occurrence of the problem of finding irreducible subsets on the one hand, and to QuickXPlain's general applicability and favorable computational complexity on the other hand. However, although (we regularly experience) people are having a hard time understanding QuickXPlain and seeing why it works correctly, a proof of correctness of the algorithm has never been published. This is what we account for in this work, by explaining QuickXPlain in a novel tried and tested way and by presenting an intelligible formal proof of it. Apart from showing the correctness of the algorithm and excluding the later detection of errors (proof and trust effect), the added value of the availability of a formal proof is, e.g., (i) that the workings of the algorithm often become completely clear only after studying, verifying and comprehending the proof (didactic effect), (ii) the shown proof methodology can be used as a guidance for proving other recursive algorithms (transfer effect), and (iii) the possibility of providing "gapless" correctness proofs of systems that rely on (results computed by) QuickXPlain, such as numerous model-based debuggers (completeness effect).

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源