Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Oracle machine

From Wikipedia, the free encyclopedia
Abstract machine used to study decision problems
For computing equipment sold by Oracle Corporation, seeOracle Corporation § Hardware.
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 problemR{\displaystyle R} in a single operation. The problemR{\displaystyle R} can be of anycomplexity class, or it can even be anundecidable problem such as thehalting problem. If another problemR{\displaystyle R'} isreducible toR{\displaystyle R} inpolynomial time, then the oracle machine (with theR{\displaystyle R}-oracle) can solveR{\displaystyle R'} in polynomial time; one can say thatR{\displaystyle R'} is in therelativized complexity classPR{\displaystyle {\mathsf {P}}^{R}}. Other relativized complexity classes such asNPR{\displaystyle {\mathsf {NP}}^{R}} can be defined analogously.[1]

Oracles

[edit]

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:

  • A decision problem is represented as a setA ofnatural numbers (orstrings). 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 abinary relationR relating natural numbers (or strings) to natural numbers (or strings). An instance of the problem is an inputx forR. A solution is a value related tox byR.

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.

Definitions

[edit]

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:

  • awork 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;
  • aread/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;
  • acontrol mechanism, which can be in one of a finite number ofstates, and which will perform different actions (reading data, writing data, moving the read/write head, and changing states) depending on the current state and the data being read.

In addition to these components, an oracle machine also includes:

  • anoracle 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.
  • anoracle 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

[edit]

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.[2]
  • 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.[3]
  • Another alternative definition makes the oracle tape read-only, and eliminates the ASK and RESPONSE states entirely. Before the machine is started, theindicator 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.[4]

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.

Complexity classes of oracle machines

[edit]

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:

AB=LBAL{\displaystyle A^{B}=\bigcup _{L\in B}A^{L}}

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 ofAB{\displaystyle A^{B}} 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 classA{\displaystyle A} only has access to a single oracle for one language. In this context,AB{\displaystyle A^{B}} is not defined if the complexity classB{\displaystyle B} does not have any complete problems with respect to the reductions available toA{\displaystyle A}.)

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]

Oracles and halting problems

[edit]

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]

Applications to cryptography

[edit]
Main article:Random oracle

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).

See also

[edit]

References

[edit]

Footnotes

[edit]
  1. ^van Melkebeek 2003, Section 2.4.
  2. ^Adachi 1990, p. 111.
  3. ^Rogers 1967, p. 129.
  4. ^Soare 1987, p. 47;Rogers 1967, p. 130.
  5. ^Baker, Gill & Solovay 1975, p. 431.
  6. ^Trevisan 2014, p. 2.
  7. ^Trevisan 2014, p. 1.
  8. ^Bennett & Gill 1981, p. 96.
  9. ^Chang et al. 1994, p. 29.
  10. ^Börger 1989, p. 141.

Sources

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Oracle_machine&oldid=1338998787"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp