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 .