New results for random determination of equivalence of expressions

  • Authors:
  • Gaston H. Gonnet

  • Affiliations:
  • Univ. of Waterloo, Waterloo, Ont., Canada

  • Venue:
  • SYMSAC '86 Proceedings of the fifth ACM symposium on Symbolic and algebraic computation
  • Year:
  • 1986

Quantified Score

Hi-index 0.00

Visualization

Abstract

We devise several procedures based on signatures (or hashing functions) to determine equivalence of expressions in Random Polynomial Time (also called Probabilistic Polynomial Time) (RPT). We extend the previous results known to include various new functions that can be tested. These procedures return as result: “equivalent” or “not-equivalent”. The result “not-equivalent” is always correct, while the result “equivalent” is correct with probability at least 1 — &egr;. This probability depends on a random number generator and is independent of the problem being solved. In all our procedures, the value &egr; can be made arbitrarily small. This method works for determining equivalence over an important class of functions as well as answering other questions like linearity, polynomial dependence, squareness, independence, etc.The general scheme for all these algorithms is to use a basic heuristic “test” several times. I.e. solve( problem, epsilon ) repeat select suitable characteristic p randomly; assign random values to all variables; t := test( problem, p ); if t = “not-equivalent” then return( t ) until Prob of cumulative failures = epsilon; return( “equivalent” );It is assumed that “test” gives a wrong answer with probability &dgr;, where &dgr; remains bounded below 1. For all our “test” procedures, &dgr; ≤ 1/2.In what follows we will describe the “test” part of the different procedures, it is always assumed that these are used in the above context.Without loss of generality we will assume that equivalence of expressions (A ≡ B) can be transformed into testing for 0 (A — B ≡ 0).This test can be performed “quickly” in the sense that it can run in polynomial time on the size of the dag (directed acyclic graph) representation of the expression, also known as “linear program representation” of an expression.