Oracles
An oracle machine can be conceived as a Turing machine connected to an oracle. The oracle, in this context, is an entity capable of solving some problem, which for example may be a decision problem or a function problem. The problem does not have to be computable; the oracle is not assumed to be a Turing machine or computer program. The oracle is simply a " black box" that is able to produce a solution for any instance of a given computational problem: * A decision problem is represented as a set ''A'' of natural numbers (or strings). An instance of the problem is an arbitrary natural number (or string). The solution to the instance is "YES" if the number (string) is in the set, and "NO" otherwise. * A function problem is represented by a function ''f'' from natural numbers (or strings) to natural numbers (or strings). An instance of the problem is an input ''x'' for ''f''. The solution is the value ''f''(''x''). An oracle machine can perform all of the usual operations of a Turing machine, and can also query the oracle to obtain a solution to any instance of the computational problem for that oracle. For example, if the problem is a decision problem for a set ''A'' of natural numbers, the oracle machine supplies the oracle with a natural number, and the oracle responds with "yes" or "no" stating whether that number is an element of ''A''.Definitions
There are many equivalent definitions of oracle Turing machines, as discussed below. The one presented here is from van Melkebeek (2000:43). An oracle machine, like a Turing machine, includes: * a work tape: a sequence of cells without beginning or end, each of which may contain a B (for blank) or a symbol from the tape alphabet; * a read/write head, which rests on a single cell of the work tape and can read the data there, write new data, and increment or decrement its position along the tape; * a control mechanism, which can be in one of a finite number of states, and which will perform different actions (reading data, writing data, moving the control mechanism, and changing states) depending on the current state and the data being read. In addition to these components, an oracle machine also includes: * an oracle tape, which is a semi-infinite tape separate from the work tape. The alphabet for the oracle tape may be different from the alphabet for the work tape. * an oracle head which, like the read/write head, can move left or right along the oracle tape reading and writing symbols; * two special states: the ASK state and the RESPONSE state. From time to time, the oracle machine may enter the ASK state. When this happens, the following actions are performed in a single computational step: * the contents of the oracle tape are viewed as an instance of the oracle's computational problem; * the oracle is consulted, and the contents of the oracle tape are replaced with the solution to that instance of the problem; * the oracle head is moved to the first square on the oracle tape; * the state of the oracle machine is changed to RESPONSE. The effect of changing to the ASK state is thus to receive, in a single step, a solution to the problem instance that is written on the oracle tape.Alternative definitions
There are many alternative definitions to the one presented above. Many of these are specialized for the case where the oracle solves a decision problem. In this case: * Some definitions, instead of writing the answer to the oracle tape, have two special states YES and NO in addition to the ASK state. When the oracle is consulted, the next state is chosen to be YES if the contents of the oracle tape are in the oracle set, and chosen to the NO if the contents are not in the oracle set (Adachi 1990:111). * Some definitions eschew the separate oracle tape. When the oracle state is entered, a tape symbol is specified. The oracle is queried with the number of times that this tape symbol appears on the work tape. If that number is in the oracle set, the next state is the YES state; if it is not, the next state is the NO state (Rogers 1967:129). * Another alternative definition makes the oracle tape read-only, and eliminates the ASK and RESPONSE states entirely. Before the machine is started, theComplexity classes of oracle machines
The complexity class of decision problems solvable by an algorithm in class A with an oracle for a language L is called AL. For example, PSAT is the class of problems solvable inOracles and halting problems
A machine with an oracle for the halting problem can determine whether particular Turing machines will halt on particular inputs, but it cannot determine, in general, whether machines equivalent to itself will halt. This creates a hierarchy of machines, each with a more powerful halting oracle and an even harder halting problem. This hierarchy of machines can be used to define the '' arithmetical hierarchy'' (Börger 1989).Applications to cryptography
In cryptography, oracles are used to make arguments for the security of cryptographic protocols where a hash function is used. A security reduction for the protocol is given in the case where, instead of a hash function, aSee also
* Black box group * Turing reduction * Interactive proof system * Matroid oracleReferences
* Akeo Adachi, ''Foundations of computation theory'', Ohmsha, 1990. * T. P. Baker, J. Gill, R. Solovay. ''Relativizations of the P =? NP Question''. SIAM Journal on Computing, 4(4): 431-442 (1975) * C. H. Bennett, J. Gill. ''Relative to a Random Oracle A, PA != NPA != co-NPA with Probability 1''. SIAM Journal on Computing, 10(1): 96-113 (1981) * Egon Börger. "Computability, Complexity, Logic". North-Holland, 1989. * Richard Chang, Benny Chor, Oded Goldreich, Juris Hartmanis, Johan Hastad, Desh Ranjan, Pankaj Rohatgi. The Random Oracle Hypothesis is False. ''Journal of Computer and System Sciences'', volume 49, issue 1, pp. 24–39. August 1994. . http://citeseer.ist.psu.edu/282397.html * Martin Davis, editor: ''The Undecidable, Basic Papers on Undecidable Propositions, Unsolvable Problems And Computable Functions'', Raven Press, New York, 1965. Turing's paper is in this volume. Papers include those by Gödel, Church, Rosser, Kleene, and Post. * Christos Papadimitriou. ''Computational Complexity''. Addison-Wesley, 1994. Section 14.3: Oracles, pp. 339–343. * Hartley Rogers, Jr., ''Theory of Recursive Functions and Effective Computability'', McGraw-Hill, 1967. * Michael Sipser. ''Introduction to the Theory of Computation''. PWS Publishing, 1997. {{isbn, 0-534-94728-X. Section 9.2: Relativization, pp. 318–321. *