Redukcja czasu zliczania wielomianowego
W teorii złożoności obliczeniowej problemów zliczania , redukcja zliczania w czasie wielomianowym jest rodzajem redukcji (transformacji z jednego problemu do drugiego) używanej do zdefiniowania pojęcia kompletności dla klasy złożoności ♯P . Redukcje te można również nazwać wielomianowymi redukcjami liczącymi wiele jeden lub słabo oszczędnymi redukcjami ; są analogiczne do redukcji wiele-jeden dla problemów decyzyjnych i uogólniają oszczędne redukcje .
Definicja
przekształcania przypadków znanego trudnego problemu przypadki innego problemu , który ma zostać udowodniony. Składa się z dwóch funkcji , obie muszą być obliczalne w wielomianowym . Funkcja przekształca dane wejściowe dla dane wejściowe dla a funkcja przekształca dane wyjściowe dla danych wyjściowych dla .
Te dwie funkcje muszą zachować poprawność danych wyjściowych. To znaczy, załóżmy, że przekształca się dane wejściowe dla problemu na dane wejściowe dla problemu się , aby uzyskać wynik . Musi być tak, że przekształcone wyjście jest poprawnym wyjściem dla oryginalnego wejścia . Oznacza to, że jeśli relacje wejście-wyjście i są wyrażone jako funkcje, to ich skład funkcji musi być zgodny z tożsamością . Alternatywnie, wyrażony w kategoriach algorytmów , jeden możliwy algorytm do rozwiązania byłoby zastosować , aby przekształcić w instancję , rozwiązać tę a następnie zastosować, aby przekształcić wyjście na poprawną odpowiedź dla .
Stosunek do innych rodzajów redukcji
W szczególnym przypadku oszczędna redukcja to transformacja w czasie wielomianowym do problemów, która zachowuje dokładne wartości wyników. Taka redukcja może być postrzegana jako redukcja zliczania w czasie wielomianowym, przy użyciu funkcji tożsamości jako funkcji .
Zastosowania w teorii złożoności
Problem funkcjonalny (określony przez jego wejścia i pożądane wyjścia) należy do klasy złożoności ♯ P , jeśli istnieje niedeterministyczna maszyna Turinga działająca w czasie wielomianowym, dla której wyjściem problemu jest liczba akceptujących ścieżek Turinga maszyna. Intuicyjnie, takie problemy liczą liczbę rozwiązań problemów w klasie złożoności NP . Mówi się, że problem funkcjonalny ♯ P-trudny, jeśli istnieje redukcja liczenia czasu wielomianowego z każdego problemu ♯ P do . Jeśli dodatkowo sam należy do ♯P, to się że jest ♯P- (Czasami, jak w oryginalnym artykule Valianta dowodzącym kompletności permanentnej macierzy 0–1 , zamiast tego do zdefiniowania ♯ P-zupełności używa się słabszego pojęcia redukcji, redukcji Turinga ).
Zwykłą metodą udowodnienia, że problem w jest ♯P-zupełny, jest rozpoczęcie od pojedynczego znanego problemu ♯P-zupełnego redukcji liczenia w czasie wielomianu z do . Jeśli ta redukcja istnieje, to istnieje redukcja z innego problemu w , uzyskana przez złożenie redukcji z innego problemu do z redukcją z do .