Niech A będzie sprowadzić do punktu B, czyli . Stąd, maszyna Turinga akceptując ma dostęp do Oracle dla . Niech maszyna Turinga akceptująca będzie a wyrocznia dla będzie . Rodzaje obniżek:A B A M A B O B
Redukcja Turinga: może wykonać wiele zapytań do . O B
Redukcja karpia: zwana również „redukcją Turinga w czasie wielomianowym”: Dane wejściowe do muszą być konstruowane w czasie polytime. Ponadto liczba zapytań do musi być ograniczona wielomianem. W takim przypadku: . O B P A = P B
Wielokrotna redukcja Turinga: może wykonać tylko jedno zapytanie do , podczas ostatniego kroku. Dlatego odpowiedzi wyroczni nie można modyfikować. Jednak czas potrzebny na skonstruowanie danych wejściowych do nie musi być ograniczony przez wielomian. Równoważnie: ( oznaczający redukcję wielokrotności) O B O B ≤ m
jeśli sposób obliczeniowy funkcji tak, że .f : Σ ∗ → Σ ∗ f ( x ) ∈ B
Redukcja Cooka: Zwana także „redukcją czasu wielomianowego jeden-jeden”: Redukcja wielokrotna jeden, w której czas potrzebny do skonstruowania danych wejściowych do musi być ograniczony przez wielomian. Równoważnie: ( oznaczający redukcję wielokrotności) ≤ p m
jeśli w poli czasie funkcji obliczeniowy tak, że .
Redukcja parsimonious: Nazywany również „wielomian razem jeden jeden redukcja”: zmniejszenie kucharz gdzie każdy przypadek odwzorowany unikalnej instancji . Równoważnie: ( oznaczający oszczędną redukcję)
jeśli w poli czasie obliczalną bijection tak, że .
Te redukcje pozwalają zachować liczbę rozwiązań. Stąd .
Możemy zdefiniować więcej rodzajów redukcji, ograniczając liczbę zapytań o wyrocznię, ale pomijając je, czy ktoś mógłby mi uprzejmie powiedzieć, czy poprawnie otrzymałem nomenklaturę różnych rodzajów redukcji. Czy zdefiniowano problemy NP-zupełne w odniesieniu do redukcji Cooka lub redukcji oszczędnej? Czy ktoś może uprzejmie podać przykład problemu, który jest kompletny NP w ramach Cooka, a nie w przypadku zbytniej redukcji.
Jeśli się nie mylę, klasa # P-Complete jest zdefiniowana w odniesieniu do redukcji Karp.