On generic computational models

The mechanization of computation has challenged humans for centuries. The abacus is believed to have been invented by the Babylonians in the 24th century b.c.e. Archimedes used the mechanical principle of balance to calculate mathematical problems, such as the number of grains of sand in the universe, in the 3rd century b.c.e. The Antikythera mechanism, which is believed to be one of the first mechanical analog computers, was constructed in the 1st century b.c.e. and has been reconstructed in recent times. It included displays of the phases of the moon, eclipse predictions, and the positions of the visible planets. In the early 1900s, David Hilbert posed, among other problems, his famous Entscheidungsproblem. This was a research challenge for finding a procedure that for any given logical expression can decide its validity or satisfiability by finitely many operations. On his way to a solution to this problem, Alan Turing in his revolutionary paper, presented a formal computational model, called today “Turing machines”. Over the next few decades, many brilliant minds, like Kolmogorov, Schönhage, Cook, and Reckhow suggested alternative models for effective computation. But since then, the notion of what constitutes computation has evolved (and keeps evolving) rapidly. Today, computation comes in many flavors: the classical discrete, sequential version; analog or hybrid setups; and the more recent parallel and concurrent varieties. Moreover, virtually any natural process may be viewed as an evolving system of hybrid (mixed discrete and analog) computation. Modern evolving systems—be they physical, biological, or computational—are typically viewable on many distinct levels of abstraction. Our overarching goal in this study is to analyze the fundamental aspects of these different computational paradigms, unite them under a common formalism, and understand their implications for questions of effectivity and complexity. In particular, we study parallel, concurrent, and hybrid computational mechanisms. It has been convincingly argued by Gurevich (presaged by Post) that logical structures are the right way to view evolving algorithmic states, just as they are ideal for capturing the salient features of static entities. Based on that insight and a formalization of what it means for an algorithm to be governed by a finite text, Gurevich provided the most general and generic definition of what constitutes a classical sequential algorithm. His model captures the algorithmic behavior on whatever level of abstraction is natural for the particular algorithm. In this work, we develop his ideas further. We provide a similar-style definition for generic parallel algorithms and prove that the evolution of any system that satisfies our axiomatization is indeed mechanical. We extend the definition of effectiveness, given by Boker and Dershowitz, to cover effectiveness relative to oracles (as suggested by Turing). We also use their original definition of effectiveness to provide a general notion of complexity of effective algorithms. With that in hand, we prove two results: any effective classical algorithm may be simulated by a random-access machine with only constant factor time overhead, and that effective parallel algorithms can be simulated by a parallel random-access machine with only polylog overhead in time and number of processors. The latter also leads to the conclusion that Turing poly-space is equivalent to parallel poly-time, given that algorithms may not have more than an exponential number of agents. In the same groundbreaking paper, Turing defined a universal machine, which may simulate any other computation. In this work we suggest a similar notion of universality over arbitrary domains. We also address the issue of “honesty” of representations. Another issue of honesty that we address is in the representation of effective domains. Since effectiveness presupposes order; effective domains may “hide” some unexpected information. Also, ordered domains are not always natural; for example, a graph does not naturally have any order on its nodes. As a way to overcome this, Gurevich suggested the definition of general “fair” unordered domains. We, in turn, define an alternative computational model, the dynamic cellular automaton, and prove that those automata simulate unordered domains. Thus, this model may be used for fair unordered computations.