Approximate correctness-checking of computational results
The process of checking the correctness of time-critical computations involves a fundamental and inherently conflicting tradeoff: the precision of the checking vs the time required to perform the checking process. This tradeoff is particularly relevant when the computations are intensive and can require appreciable time for completion. This issue is addressed by an innovative technique based on an extension of the 'use of certificates' which permits the precision of the correctness checking to be explicitly specified. This concept is developed relative to the broad class of problems which are amenable to the powerful and widely used B&B (branch-and-bound) strategy. It is extremely relevant to the motivation & importance of this paper to remember that 'checking the correctness of results for computationally intensive problems' can be just as demanding as 'generating the results themselves'. Accordingly, for time-critical applications in which a run-time result verification must be accomplished before a generated result can be released, a method for highly efficient approximate correctness checking of results in which it is efficiently determined that an obtained result is within some specified percentage of an optimal solution can be of enormous importance. This paper presents an approximate correctness checking methodology in which the precision of the result check can be explicitly specified & guaranteed even when an exact correct result is unknown. This controllable tradeoff, inherent in this method, can be the basis for new classes of adaptive result-checking strategies in which the precision of the check of a result can be varied, depending on the impact of the result within time-critical applications.
certificate run-time result verification fault tolerance software reliability computation-result checking precision specification branch-and-bound algorithm