Understanding the QuickXPlain Algorithm: Simple Explanation and Formal Proof

01/07/2020
by   Patrick Rodler, et al.
0

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).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/29/2018

Formal Proofs of Tarjan's Algorithm in Why3, Coq, and Isabelle

Comparing provers on a formalization of the same problem is always a val...
research
09/13/2019

Reasoning about call-by-value: a missing result in the history of Hoare's logic

We provide a sound and relatively complete Hoare-like proof system for r...
research
04/29/2016

Verifying Buchberger's Algorithm in Reduction Rings

In this paper we present the formal, computer-supported verification of ...
research
04/13/2021

A simple proof of the Moore-Hodgson Algorithm for minimizing the number of late jobs

The Moore-Hodgson Algorithm minimizes the number of late jobs on a singl...
research
02/13/2022

Understanding Paxos and other distributed consensus algorithms

Paxos is a widely used and notoriously hard to understand method for sol...
research
05/25/2021

Efficiently Explaining CSPs with Unsatisfiable Subset Optimization

We build on a recently proposed method for explaining solutions of const...
research
09/29/2022

Understanding Interventional TreeSHAP : How and Why it Works

Shapley values are ubiquitous in interpretable Machine Learning due to t...

Please sign up or login with your details

Forgot password? Click here to reset