Ein weiterer Grund ist, dass dies häufig ohne Verlust der Allgemeinheit geschieht, da häufig (wenn auch nicht immer - siehe unten) die Komplexität von Funktionen und Entscheidungsprobleme gleichwertig sind. Jedes Entscheidungsproblem kann als eine Funktion betrachtet werden, deren einzige Werte 0 und 1 sind. Umgekehrt gibt es bei einer Funktion mehrere zugehörige Entscheidungsprobleme, die normalerweise die gleiche Komplexität wie , zum Beispiel:ff
- i f ( x ) }{ ( x , i ) : Das te Bit von ist 1 .ichf( x )}}
- ≥{ ( x , k ) : f( x ) ≤ k } (oder )≥
Hier ist ein Beispiel, in dem sich die Komplexität von Funktionsklassen und den zugehörigen Sprachklassen zu unterscheiden scheint: [ Wagner 1987 "Log Query Classes" , Hemaspaandras 1987er These , Buss & Hay 1991 ], aber wenn dann und [ Selman 1994 ]. F P N P [ log ] = F P N P t t N P = R P P = U P.P.N P [ log ]= P.N P.t tF P.N P [ log ]= F P.N P.t tN P = R P.P = U P.
(Hier bedeutet das Orakel dass die Maschine O ( log n ) Abfragen zu jedem Problem in N P (z. B. SAT) durchführen kann. Die Notation P N P t t bedeutet P mit ein N P Oracle, aber in dem die Oracle Abfragen sind nicht-adaptive : bei Eingabe x , das , wenn y i ist die i - ten String an den Oracle abgefragt, dann y i hängt nicht von den Antworten auf alle früheren Oracle Anrufe. Entsprechend bei Eingabe xN P [ log ]O ( logn )N P.P.N P.t tP.N P.xyichichyichxDie Maschine erstellt eine Liste ohne das Orakel abzufragen, fragt das Orakel nach allen y i ab und erhält die Antworten. Anschließend berechnet sie, ohne das Orakel erneut abzufragen.)y1, … , Y.myich