Oracle machine
In complexity theory and computability theory, an oracle machine is an abstract machine used to study decision problems. It can be visualized as a black box, called an oracle, that is able to solve certain problems in a single operation. The problem can be of any complexity class. Even undecidable problems, such as the halting problem, can be considered as the subject of an oracle.
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. An instance of the problem is an arbitrary natural number. The solution to the instance is "YES" if the number is in the set, and "NO" otherwise.
- A function problem is represented by a binary relation R relating natural numbers to natural numbers. An instance of the problem is an input x for R. A solution is a value related to x by R.
Definitions
There are many equivalent definitions of oracle Turing machines, as discussed below. The one presented here is from.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 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 depending on the current state and the data being read.
- 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.
- 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.
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 be NO if the contents are not in the oracle set.
- 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.
- Another alternative definition makes the oracle tape read-only, and eliminates the ASK and RESPONSE states entirely. Before the machine is started, the indicator function of the oracle set is written on the oracle tape using symbols 0 and 1. The machine is then able to query the oracle by scanning to the correct square on the oracle tape and reading the value located there.
Complexity 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 in polynomial time by a deterministic Turing machine with an oracle for the Boolean satisfiability problem. The notation AB can be extended to a set of languages B, by using the following definition:When a language L is complete for some class B, then AL=AB provided that machines in A can execute reductions used in the completeness definition of class B. In particular, since SAT is NP-complete with respect to polynomial time reductions, PSAT=PNP. However, if A = DLOGTIME, then ASAT may not equal ANP.
It is understood that NP ⊆ PNP, but the question of whether NPNP, PNP, NP, and P are equal remains tentative at best. It is believed they are different, and this leads to the definition of the polynomial hierarchy.
Oracle machines are useful for investigating the relationship between complexity classes P and NP, by considering the relationship between PA and NPA for an oracle A. In particular, it has been shown there exist languages A and B such that PA=NPA and PB≠NPB. The fact the P = NP question relativizes both ways is taken as evidence that answering this question is difficult, because any proof technique that relativizes will not answer the P = NP question. Most proof techniques relativize.
One may consider the case where an oracle is chosen randomly from among all possible oracles. It has been shown in this case, that with probability 1, PA≠NPA. When a question is true for almost all oracles, it is said to be true for a random oracle. This choice of terminology is justified by the fact that random oracles support a statement with probability 0 or 1 only. This is only weak evidence that P≠NP, since a statement may be true for a random oracle but false for ordinary Turing machines; for example, IPA≠PSPACEA for a random oracle A but IP = PSPACE.
Oracles 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 oracle machines like 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.