This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(October 2023) (Learn how and when to remove this message) |
| Black box systems | |
|---|---|
| System | |
| Black box,Oracle machine | |
| Methods and techniques | |
| Black-box testing,Blackboxing | |
| Related techniques | |
| Feed forward,Obfuscation,Pattern recognition,White box,White-box testing,Gray-box testing,System identification | |
| Fundamentals | |
| A priori information,Control systems,Open systems,Operations research,Thermodynamic systems | |
Incomplexity theory andcomputability theory, anoracle machine is anabstract machine that can query ablack box called anoracle, which is able to give an answer to any instance of a certain problem in a single operation. The problem can be of anycomplexity class, or it can even be anundecidable problem such as thehalting problem. If another problem isreducible to inpolynomial time, then the oracle machine (with the-oracle) can solve in polynomial time; one can say that is in therelativized complexity class. Other relativized complexity classes such as can be defined analogously.[1]
An oracle machine can be conceived as aTuring machine connected to anoracle. The oracle, in this context, is an entity capable of solving some problem, which for example may be adecision problem or afunction 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 givencomputational problem:
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 setA 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 ofA.
There are many equivalent definitions of oracle Turing machines, as discussed below. The one presented here is fromvan Melkebeek (2003, p. 43).
An oracle machine, like a Turing machine, includes:
In addition to these components, an oracle machine also includes:
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 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.
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:
These definitions are equivalent from the point of view of Turing computability: a function is oracle-computable from a given oracle under all of these definitions if it is oracle-computable under any of them. The definitions are not equivalent, however, from the point of view ofcomputational complexity. A definition such as the one by van Melkebeek, using an oracle tape that may have its own alphabet, is required in general.
Thecomplexity class ofdecision problems solvable by an algorithm in classA with an oracle for a languageL is calledAL. For example, PSAT is the class of problems solvable inpolynomial time by adeterministic Turing machine with an oracle for theBoolean satisfiability problem. The notation AB can be extended to a set of languagesB (or a complexity classB), by using the following definition:
When a languageL iscomplete for some classB, thenAL=AB provided that machines inA can execute reductions used in the completeness definition of classB. In particular, since SAT isNP-complete with respect to polynomial time reductions, PSAT=PNP. However, ifA =DLOGTIME, thenASAT may not equalANP. (The definition of given above is not completely standard. In some contexts, such as the proof of thetime andspace hierarchy theorems, it is more useful to assume that the abstract machine defining class only has access to a single oracle for one language. In this context, is not defined if the complexity class does not have any complete problems with respect to the reductions available to.)
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 thepolynomial hierarchy.
Oracle machines are useful for investigating the relationship betweencomplexity classes P and NP, by considering the relationship between PA and NPA for an oracleA. In particular, it has been shown there exist languagesA andB such that PA=NPA and PB≠NPB.[5] The fact the P = NP question relativizes both ways is taken as evidence that answering this question is difficult, because any proof technique thatrelativizes (i.e., is unaffected by the addition of an oracle) will not answer the P = NP question.[6] Most proof techniques relativize.[7]
One may consider the case where an oracle is chosen randomly from among all possible oracles (aninfinite set). It has been shown in this case, that with probability 1, PA≠NPA.[8] When a question is true for almost all oracles, it is said to be truefor arandom oracle. This choice of terminology is justified by the fact that random oracles support a statement with probability 0 or 1 only. (This follows fromKolmogorov's zero–one law.) 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 oracleA butIP =PSPACE.[9]
A machine with an oracle for thehalting problem can determine whether particular Turing machines will halt on particular inputs, but it cannot determine, in general, whether oracle machines like itself (i.e. equipped with an oracle for the halting problem) 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 thearithmetical hierarchy.[10]
Incryptography, oracles are used to make arguments for the security ofcryptographic protocols where ahash function is used. Asecurity reduction (proof of security) for the protocol is given in the case where, instead of a hash function, arandom oracle answers each query randomly but consistently; the oracle is assumed to be available to all parties including the attacker, as the hash function is. Such a proof shows that unless the attacker solves the hard problem at the heart of the security reduction, they must make use of some interesting property of the hash function to break the protocol; they cannot treat the hash function as a black box (i.e., as a random oracle).
{{cite book}}: CS1 maint: DOI inactive as of July 2025 (link)