Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Oracles  





2 Definitions  



2.1  Alternative definitions  







3 Complexity classes of oracle machines  





4 Oracles and halting problems  





5 Applications to cryptography  





6 See also  





7 References  



7.1  Footnotes  





7.2  Sources  
















Oracle machine






Català
Deutsch
Español
فارسی
Français

עברית

Polski
Português
Русский
Српски / srpski
Suomi
Türkçe
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


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
  • t
  • e
  • Incomplexity theory and computability theory, an oracle machine is an abstract machine used to study decision problems. It can be visualized as a Turing machine with a black box, called an oracle, which 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 used.

    Oracles[edit]

    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:

    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[edit]

    There are many equivalent definitions of oracle Turing machines, as discussed below. The one presented here is from van 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.

    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:

    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 of computational complexity. A definition such as the one by van Melkebeek, using an oracle tape which may have its own alphabet, is required in general.

    Complexity classes of oracle machines[edit]

    The complexity classofdecision 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 (or a complexity class 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. (The definition of given above is not completely standard. In some contexts, such as the proof of the time and space 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 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.[4] The fact the P = NP question relativizes both ways is taken as evidence that answering this question is difficult, because a proof technique that relativizes (i.e., unaffected by the addition of an oracle) will not answer the P = NP question.[5] Most proof techniques relativize.[6]

    One may consider the case where an oracle is chosen randomly from among all possible oracles (an infinite set). It has been shown in this case, that with probability 1, PA≠NPA.[7] 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 follows from Kolmogorov'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;[original research?] for example, IPA≠PSPACEA for a random oracle A but IP = PSPACE.[8]

    Oracles and halting problems[edit]

    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.[9]

    Applications to cryptography[edit]

    Incryptography, 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, a random 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]

  • Turing reduction
  • Interactive proof system
  • Matroid oracle
  • Demand oracle
  • Padding oracle attack
  • References[edit]

    Footnotes[edit]

    1. ^ Adachi 1990, p. 111.
  • ^ Rogers 1967, p. 129.
  • ^ Soare 1987, p. 47; Rogers 1967, p. 130.
  • ^ Baker, Gill & Solovay 1975, p. 431.
  • ^ Trevisan 2014, p. 2.
  • ^ Trevisan 2014, p. 1.
  • ^ Bennett & Gill 1981, p. 96.
  • ^ Chang et al. 1994, p. 29.
  • ^ Börger 1989, p. 141.
  • Sources[edit]

    • Adachi, Akeo (1990). Foundations of computation theory. Tokyo: Ohmsha. ISBN 978-4-274-02190-9.
  • Baker, Theodore; Gill, John; Solovay, Robert (December 1975). "Relativizations of the P=?NP Question" (PDF). SIAM Journal on Computing. 4 (4). doi:10.1137/0204037. ISSN 0097-5397. Archived (PDF) from the original on 19 March 2023. Retrieved 21 October 2023.
  • Bennett, Charles H.; Gill, John (February 1981). "Relative to a Random Oracle A, PA != NPA != co-NPA with Probability 1" (PDF). SIAM Journal on Computing. 10 (1). doi:10.1137/0210008. ISSN 0097-5397. Archived (PDF) from the original on 25 December 2022.
  • Börger, Egon (1989). Computability, complexity, logic. Studies in logic and the foundations of mathematics. Amsterdam: North-Holland. ISBN 978-0-444-87406-1.
  • Chang, Richard; Chor, Benny; Goldreich, Oded; Hartmanis, Juris; Håstad, Johan; Ranjan, Desh; Rohatgi, Pankaj (1 August 1994). "The random oracle hypothesis is false" (PDF). Journal of Computer and System Sciences. 49 (1): 24–39. doi:10.1016/S0022-0000(05)80084-4. ISSN 0022-0000.
  • Davis, Martin, ed. (1 April 1965). The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. Hewlett, New York: Raven Press. ISBN 978-0-911216-01-1. Retrieved 21 October 2023.
  • Papadimitriou, Christos (30 November 1993). Computational complexity. Reading, Massachusetts: Addison-Wesley. ISBN 978-0-201-53082-7.
  • Rogers, Hartley (1 April 1967). Theory of recursive functions and effective computability. New York: McGraw-Hill. OCLC 559483934.
  • Sipser, Michael (1997). Introduction to the theory of computation. Boston: PWS Publishing. ISBN 978-0-534-94728-6. OCLC 300459879.
  • Soare, Robert I. (1987). Recursively Enumerable Sets and Degrees. Perspectives in Mathematical Logic (1st ed.). Springer Berlin, Heidelberg. doi:10.1007/978-3-662-02460-7_3. ISSN 0172-6641.
  • Trevisan, Luca (16 January 2014). "Notes for Lecture 4" (PDF). CS254: Computational Complexity. Stanford University. Archived (PDF) from the original on 1 April 2014. Retrieved 22 October 2023.
  • Turing, Alan (1939). Systems of Logic Based on Ordinals (PhD thesis). Princeton University. doi:10.1112/plms/s2-45.1.161. hdl:21.11116/0000-0001-91CE-3. ProQuest 301792588. Archived from the original on 13 March 2020.
  • van Melkebeek, Dieter (29 June 2003). Randomness and Completeness in Computational Complexity. Lecture Notes in Computer Science. Vol. 1950. Springer Berlin Heidelberg. doi:10.1007/3-540-44545-5. ISBN 978-3-540-44545-6. ISSN 1611-3349. OCLC 48909425. S2CID 27442913.

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Oracle_machine&oldid=1216636843"

    Categories: 
    Computability theory
    Turing machine
    Computation oracles
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles lacking in-text citations from October 2023
    All articles lacking in-text citations
    Use dmy dates from October 2023
    All articles that may contain original research
    Articles that may contain original research from October 2023
     



    This page was last edited on 1 April 2024, at 05:07 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki