Results 1  10
of
24
Designing Programs That Check Their Work
, 1989
"... A program correctness checker is an algorithm for checking the output of a computation. That is, given a program and an instance on which the program is run, the checker certifies whether the output of the program on that instance is correct. This paper defines the concept of a program checker. It d ..."
Abstract

Cited by 307 (17 self)
 Add to MetaCart
A program correctness checker is an algorithm for checking the output of a computation. That is, given a program and an instance on which the program is run, the checker certifies whether the output of the program on that instance is correct. This paper defines the concept of a program checker. It designs program checkers for a few specific and carefully chosen problems in the class FP of functions computable in polynomial time. Problems in FP for which checkers are presented in this paper include Sorting, Matrix Rank and GCD. It also applies methods of modern cryptography, especially the idea of a probabilistic interactive proof, to the design of program checkers for group theoretic computations. Two strucural theorems are proven here. One is a characterization of problems that can be checked. The other theorem establishes equivalence classes of problems such that whenever one problem in a class is checkable, all problems in the class are checkable.
The computational structure of monotone monadic SNP and constraint satisfaction: A study through Datalog and group theory
 SIAM J. Comput
, 1998
"... ..."
The Use of Program Dependence Graphs in Software Engineering
, 1992
"... This paper describes a languageindependent program representationthe program dependence graphâ€”and &mCusses how program dependence graphs, together with operations such as program slicing, can provide the basis for powerfid programming tools that address important softwareengineering problems, suc ..."
Abstract

Cited by 101 (2 self)
 Add to MetaCart
This paper describes a languageindependent program representationthe program dependence graphâ€”and &mCusses how program dependence graphs, together with operations such as program slicing, can provide the basis for powerfid programming tools that address important softwareengineering problems, such as understanding what an existing program does and how it works, understanding the differences between several versions of a program, and creating new programs by combining pieces of old programs. The paper primarily surveys work in this mea that has been czried out at the University of Wisconsin during the past five years.
Describing Graphs: a FirstOrder Approach to Graph Canonization
, 1990
"... In this paper we ask the question, "What must be added to firstorder logic plus leastfixed point to obtain exactly the polynomialtime properties of unordered graphs?" We consider the languages Lk consisting of firstorder logic restricted to k variables and Ck consisting of Lk plus "counting ..."
Abstract

Cited by 57 (7 self)
 Add to MetaCart
In this paper we ask the question, "What must be added to firstorder logic plus leastfixed point to obtain exactly the polynomialtime properties of unordered graphs?" We consider the languages Lk consisting of firstorder logic restricted to k variables and Ck consisting of Lk plus "counting quantifiers". We give efficient canonization algorithms for graphs characterized by Ck or Lk . It follows from known results that all trees and almost all graphs are characterized by C2 .
The Boolean Isomorphism Problem
 SIAM JOURNAL ON COMPUTING
, 1996
"... We investigate the computational complexity of the Boolean Isomorphism problem (BI): on input of two Boolean formulas F and G decide whether there exists a permutation of the variables of G such that F and G become equivalent. Our main result is a oneround interactive proof for BI, where the verifi ..."
Abstract

Cited by 22 (2 self)
 Add to MetaCart
We investigate the computational complexity of the Boolean Isomorphism problem (BI): on input of two Boolean formulas F and G decide whether there exists a permutation of the variables of G such that F and G become equivalent. Our main result is a oneround interactive proof for BI, where the verifier has access to an NP oracle. To obtain this, we use a recent result from learning theory by Bshouty et.al. that Boolean formulas can be learned probabilistically with equivalence queries and access to an NP oracle. As a consequence, BI cannot be \Sigma p 2 complete unless the Polynomial Hierarchy collapses. This solves an open problem posed in [BRS95]. Further properties of BI are shown: BI has And and Orfunctions, the counting version, #BI, can be computed in polynomial time relative to BI, and BI is selfreducible.
Symmetry Breaking in Graphs
 Electronic Journal of Combinatorics
, 1996
"... A labeling of the vertices of a graph G, OE : V (G) ! f1; : : : ; rg, is said to be rdistinguishing provided no automorphism of the graph preserves all of the vertex labels. The distinguishing number of a graph G, denoted by D(G), is the minimum r such that G has an rdistinguishing labeling. T ..."
Abstract

Cited by 22 (4 self)
 Add to MetaCart
A labeling of the vertices of a graph G, OE : V (G) ! f1; : : : ; rg, is said to be rdistinguishing provided no automorphism of the graph preserves all of the vertex labels. The distinguishing number of a graph G, denoted by D(G), is the minimum r such that G has an rdistinguishing labeling. The distinguishing number of the complete graph on t vertices is t. In contrast, we prove (i) given any group \Gamma, there is a graph G such that Aut(G) = \Gamma and D(G) = 2; (ii) D(G) = O(log(jAut(G)j)); (iii) if Aut(G) is abelian, then D(G) 2; (iv) if Aut(G) is dihedral, then D(G) 3; and (v) If Aut(G) = S 4 , then either D(G) = 2 or D(G) = 4. Mathematics Subject Classification 05C,20B,20F,68R 1
Efficient Comparison of Program Slices
 ACTA INFORMATICA
, 1991
"... ... This paper presents a lineartime algorithm for determining whether two slices of a program dependence graph are isomorphic. ..."
Abstract

Cited by 20 (7 self)
 Add to MetaCart
... This paper presents a lineartime algorithm for determining whether two slices of a program dependence graph are isomorphic.
Computing in quotient groups
 Proceedings of the 22nd ACM Symposium on Theory of Computing
, 1990
"... We present polynomialtime algorithms for computation in quotient groups G/K of a permutation group G. In effect, these solve, for quotient groups, the problems that are known to be in polynomialtime for permutation groups. Since it is not computationally feasible to represent G/K itself as a permu ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
We present polynomialtime algorithms for computation in quotient groups G/K of a permutation group G. In effect, these solve, for quotient groups, the problems that are known to be in polynomialtime for permutation groups. Since it is not computationally feasible to represent G/K itself as a permutation group, the methodology for the quotientgroup versions of such problems frequently differ markedly from the procedures that have been observed for the K = 1 subcases. Whereas the algorithms for permutation groups may have rested on elementary notions, procedures underlying the extension to quotient groups often utilize deep knowledge of the structure of the group. In some instances, we present algorithms for problems that were not previously known to be in polynomial time, even for permutation groups themselves (K = 1). These problems apparently required access to quotients. 1.
Engineering an Efficient Canonical Labeling Tool for Large and Sparse Graphs
"... The problem of canonically labeling a graph is studied. Within the general framework of backtracking algorithms based on individualization and refinement, data structures, subroutines, and pruning heuristics especially for fast handling of large and sparse graphs are developed. Experiments indicate ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
The problem of canonically labeling a graph is studied. Within the general framework of backtracking algorithms based on individualization and refinement, data structures, subroutines, and pruning heuristics especially for fast handling of large and sparse graphs are developed. Experiments indicate that the algorithm implementation in most cases clearly outperforms existing stateoftheart tools.
An Evolutionary Method to Find Good BuildingBlocks for Architectures of Artificial Neural Networks
, 1996
"... This paper deals with the combination of Evolutionary Algorithms and Artificial Neural Networks (ANN). A new method is presented, to find good buildingblocks for architectures of Artificial Neural Networks. The method is based on Cellular Encoding, a representation scheme by F. Gruau, and on Genet ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
This paper deals with the combination of Evolutionary Algorithms and Artificial Neural Networks (ANN). A new method is presented, to find good buildingblocks for architectures of Artificial Neural Networks. The method is based on Cellular Encoding, a representation scheme by F. Gruau, and on Genetic Programming by J. Koza. First it will be shown that a modified Cellular Encoding technique is able to find good architectures even for nonboolean networks. With the help of a graphdatabase and a new graphrewriting method, it is secondly possible to build architectures from modular structures. The information about buildingblocks for architectures is obtained by statistically analyzing the data in the graphdatabase. Simulation results for two realworld problems are given. 1 Introduction One of the major problems using ANN's is the design of their architecture. The architecture of an ANN greatly influences its performance. If the architecture is too small, the net is not able to learn t...