Average Case Complexity for Finite Boolean Functions
The average time of computing Boolean functions by straight-line programs with a conditional stop is considered. A straight-line program consists of operators of two types. Every operator of the first type computes a binary Boolean function whose arguments are either the values computed by preceding operators or the values of the input variables. Every operator of the second type either terminates program execution or commands that the next operator is executed. A measure of the complexity of such programs is the average execution time over all tuples of the input variables. The complexity of computing almost all complete Boolean functions and almost all partial Boolean functions by such programs is proved to coincide (up to a multiplicative constant) with conventional circuit complexity. Moreover, these complexities are proved to differ (up to a multiplicative constant) by a factor of for almost all -place Boolean functions equal to 1 on tuples. The existence of Boolean functions of variables is proved for which the average execution time is less (up to a multiplicative constant) by a factor of (2/)/ than the time required to compute them by conventional straight-line programs