複雑性理論でオラクルが発生する最も一般的な方法は次のとおりです。たとえば、特定の限られたリソースを持つチューリングマシンで固定オラクルを使用できるようにし、オラクルがマシンの計算能力をどのように向上させるかを研究します。
ただし、オラクルが時々発生する別の方法があります。入力の一部として。たとえば、特定の高次元ポリトープの体積を計算するアルゴリズムを勉強したいとします。古典的に、ポリトープは、そのファセットのリストまたはその他の明示的な表現を提供することにより指定する必要があります。ただし、ボリュームoracleで指定されたポリトープのボリュームを計算する問題を引き起こすこともできます。、それは入力として空間内の点の座標を取り、与えられた点がポリトープの内側にある場合にのみ「yes」を出力します。次に、この方法で指定されたポリトープの体積を計算するために必要な計算リソースを尋ねることができます。この特定のケースでは、Dyer、Frieze、およびKannanの非常に優れた多項式時間近似スキームと、興味深いことに複雑性理論の観点から、ランダム性がこの問題に不可欠な方法で役立つという証拠があります。 Dyer-Frieze-Kannanアルゴリズムと同様に実行します。
オラクルが入力の一部として提供される問題の複雑性理論を研究する体系的な方法はありますか?オラクルの複雑さクラスの通常の理論に何らかの形で還元されますか?私の推測はノーであり、入力の一部としてオラクルを提供できる方法が多すぎるため、この種の問題はすべてアドホックな方法で処理する必要があります。しかし、私はこの点で間違っていると証明されてうれしいです。