Results 1 
9 of
9
Certifying Algorithms
, 2010
"... A certifying algorithm is an algorithm that produces, with each output, a certificate or witness (easytoverify proof) that the particular output has not been compromised by a bug. A user of a certifying algorithm inputs x, receives the output y and the certificate w, and then checks, either manual ..."
Abstract

Cited by 24 (6 self)
 Add to MetaCart
A certifying algorithm is an algorithm that produces, with each output, a certificate or witness (easytoverify proof) that the particular output has not been compromised by a bug. A user of a certifying algorithm inputs x, receives the output y and the certificate w, and then checks, either manually or by use of a program, that w proves that y is a correct output for input x. In this way, he/she can be sure of the correctness of the output without having to trust the algorithm. We put forward the thesis that certifying algorithms are much superior to noncertifying algorithms, and that for complex algorithmic tasks, only certifying algorithms are satisfactory. Acceptance of this thesis would lead to a change of how algorithms are taught and how algorithms are researched. The widespread use of certifying algorithms would greatly enhance the reliability of algorithmic software. We survey the state of the art in certifying algorithms and add to it. In particular, we start a
Algorithm Engineering
, 2003
"... Algorithm Engineering is concerned with the design, analysis, implementation, tuning, debugging and experimental evaluation of computer programs for solving algorithmic problems. It provides methodologies and tools for developing and engineering efficient algorithmic codes and aims at integrating ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
(Show Context)
Algorithm Engineering is concerned with the design, analysis, implementation, tuning, debugging and experimental evaluation of computer programs for solving algorithmic problems. It provides methodologies and tools for developing and engineering efficient algorithmic codes and aims at integrating and reinforcing traditional theoretical approaches for the design and analysis of algorithms and data structures.
Contractions, Removals and How to Certify 3Connectivity in Linear Time
"... One of the most noted construction methods of 3vertexconnected graphs is due to Tutte and based on the following fact: Any 3vertexconnected graph G = (V, E) on more than 4 vertices contains a contractible edge, i. e., an edge whose contraction generates a 3connected graph. This implies the exis ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
One of the most noted construction methods of 3vertexconnected graphs is due to Tutte and based on the following fact: Any 3vertexconnected graph G = (V, E) on more than 4 vertices contains a contractible edge, i. e., an edge whose contraction generates a 3connected graph. This implies the existence of a sequence of edge contractions from G to the complete graph K4, such that every intermediate graph is 3vertexconnected. A theorem of Barnette and Grünbaum gives a similar sequence using removals on edges instead of contractions. We show how to compute both sequences in optimal time, improving the previously best known running times of O(V  2) to O(E). This result has a number of consequences; an important one is a new lineartime test of 3connectivity that is certifying; finding such an algorithm has been a major open problem in the design of certifying algorithms in the last years. The test is conceptually different from wellknown lineartime 3connectivity tests and uses a certificate that is easy to verify in time O(E). We show how to extend the results to an optimal certifying test of 3edgeconnectivity. 1
Certifying 3Connectivity in Linear Time
"... One of the most noted construction methods of 3vertexconnected graphs is due to Tutte and based on the following fact: Every 3vertexconnected graph G on more than 4 vertices contains a contractible edge, i. e., an edge whose contraction generates a 3connected graph. This implies the existence of ..."
Abstract
 Add to MetaCart
(Show Context)
One of the most noted construction methods of 3vertexconnected graphs is due to Tutte and based on the following fact: Every 3vertexconnected graph G on more than 4 vertices contains a contractible edge, i. e., an edge whose contraction generates a 3connected graph. This implies the existence of a sequence of edge contractions from G to K4 such that every intermediate graph is 3vertexconnected. A theorem of Barnette and Grünbaum yields a similar sequence using removals of edges instead of contractions. We show how to compute both sequences in optimal time, improving the previously best known running times of O(V  2) to O(E). Based on this result, we give a lineartime test of 3connectivity that is certifying; finding such an algorithm has been a major open problem in the design of certifying algorithms in the last years. The 3connectivity test is conceptually different from wellknown lineartime tests of 3connectivity; it uses a certificate that is easy to verify in time O(E). We also provide an optimal certifying test of 3edgeconnectivity. 1
Verification of Certifying Computations through
"... Abstract. Certifying algorithms compute not only an output, but also a witness that certifies the correctness of the output for a particular input. A checker program uses this certificate to ascertain the correctness of the output. Recent work used the verification tools VCC and Isabelle to verify ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Certifying algorithms compute not only an output, but also a witness that certifies the correctness of the output for a particular input. A checker program uses this certificate to ascertain the correctness of the output. Recent work used the verification tools VCC and Isabelle to verify checker implementations and their mathematical background theory. The checkers verified stem from the widelyused algorithms library LEDA and are written in C. The drawback of this approach is the use of two different tools. The advantage is that it could be carried out with reasonable effort in 2011. In this article, we evaluate the feasibility of performing the entire verification within Isabelle. For this purpose, we consider checkers written in the imperative languages C and Simpl. We reverify the checker for connectedness of graphs and present a verification of the LEDA checker for nonplanarity of graphs. For the checkers written in C, we translate from C to Isabelle using the AutoCorres tool set and then reason in Isabelle. For the checkers written in Simpl, Isabelle is the only tool needed. We compare the new approach with the previous approach and discuss advantages and disadvantages. We conclude that the new approach provides higher trust guarantees and it is particularly promising for checkers that require domainspecific reasoning. 1