Results 1 - 10
of
21
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 280 (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. Supported by NSF Grant #CCR88-136...
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 language-independent program representation-the 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 software-engineering problems, suc ..."
Abstract
-
Cited by 92 (1 self)
- Add to MetaCart
This paper describes a language-independent program representation-the 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 software-engineering 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 First-Order Approach to Graph Canonization
, 1990
"... In this paper we ask the question, "What must be added to first-order logic plus least-fixed point to obtain exactly the polynomial-time properties of unordered graphs?" We consider the languages Lk consisting of first-order logic restricted to k variables and Ck consisting of Lk plus "counting ..."
Abstract
-
Cited by 53 (6 self)
- Add to MetaCart
In this paper we ask the question, "What must be added to first-order logic plus least-fixed point to obtain exactly the polynomial-time properties of unordered graphs?" We consider the languages Lk consisting of first-order 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 one-round interactive proof for BI, where the verifi ..."
Abstract
-
Cited by 19 (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 one-round 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 Or-functions, the counting version, #BI, can be computed in polynomial time relative to BI, and BI is self-reducible.
Efficient Comparison of Program Slices
- ACTA INFORMATICA
, 1991
"... ... This paper presents a linear-time algorithm for determining whether two slices of a program dependence graph are isomorphic. ..."
Abstract
-
Cited by 19 (6 self)
- Add to MetaCart
... This paper presents a linear-time algorithm for determining whether two slices of a program dependence graph are isomorphic.
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 r-distinguishing 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 r-distinguishing labeling. T ..."
Abstract
-
Cited by 18 (4 self)
- Add to MetaCart
A labeling of the vertices of a graph G, OE : V (G) ! f1; : : : ; rg, is said to be r-distinguishing 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 r-distinguishing 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
Computing in quotient groups
- Proceedings of the 22nd ACM Symposium on Theory of Computing
, 1990
"... We present polynomial-time 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 polynomial-time for permutation groups. Since it is not computationally feasible to represent G/K itself as a permu ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
We present polynomial-time 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 polynomial-time for permutation groups. Since it is not computationally feasible to represent G/K itself as a permutation group, the methodology for the quotient-group 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.
An Evolutionary Method to Find Good Building-Blocks 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 building-blocks 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 building-blocks 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 non-boolean networks. With the help of a graph-database and a new graph-rewriting 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...
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 7 (0 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 state-of-the-art tools.

