In der Komplexitätstheorie treten Orakel am häufigsten wie folgt auf: Ein festes Orakel wird beispielsweise einer Turing-Maschine mit bestimmten begrenzten Ressourcen zur Verfügung gestellt, und es wird untersucht, wie das Orakel die Rechenleistung der Maschine erhöht.
Es gibt jedoch eine andere Art und Weise, wie Orakel manchmal auftreten: als Teil der Eingabe . Angenommen, ich möchte Algorithmen zur Berechnung des Volumens eines bestimmten hochdimensionalen Polytops untersuchen. Klassischerweise müsste das Polytop angegeben werden, indem eine Liste seiner Facetten oder eine andere explizite Darstellung bereitgestellt wird. Wir können aber auch das Problem der Berechnung des Volumens eines Polytop darstellen , die von einem angegeben Volumen oracle, das die Koordinaten eines Punktes im Raum als Eingabe und Ausgabe "ja" nimmt, wenn und nur wenn der gegebene Punkt innerhalb des Polytops liegt. Dann können wir fragen, welche Rechenressourcen benötigt werden, um das Volumen eines auf diese Weise spezifizierten Polytops zu berechnen. In diesem speziellen Fall haben wir das sehr schöne polynomielle Zeitnäherungsschema von Dyer, Frieze und Kannan und interessanterweise aus der Sicht der Komplexitätstheorie einen Beweis dafür, dass Zufälligkeit in einer für dieses Problem wesentlichen Weise hilfreich ist, da kein deterministischer Algorithmus dies kann Leistung wie der Dyer-Frieze-Kannan-Algorithmus.
Gibt es eine systematische Möglichkeit, die Komplexitätstheorie von Problemen zu untersuchen, bei denen Orakel als Teil des Inputs bereitgestellt werden? Reduziert es sich irgendwie auf die übliche Theorie der Komplexitätsklassen mit Orakeln? Ich vermute nein, und da es zu viele verschiedene Möglichkeiten gibt, ein Orakel als Teil der Eingabe bereitzustellen, muss jedes Problem dieser Art ad hoc behandelt werden. Ich würde mich jedoch freuen, in diesem Punkt als falsch erwiesen zu werden.