Problem sumy częściowej jest klasycznym problemem NP-zupełnym:
Biorąc pod uwagę listę liczb i docelowy , czy istnieje podzbiór liczb od który sumuje się do ?k L k
Student zapytał mnie, czy ten wariant problemu zwany problemem „produktu podzbioru” jest NP-zupełny:
Biorąc pod uwagę listę liczb i docelowy , czy istnieje podzbiór liczb od którego iloczynem jest ?k L k
Przeszukałem trochę i nie mogłem znaleźć żadnych zasobów, które mówiłyby o tym problemie, chociaż być może brakowało mi ich.
Czy problem z podzespołem NP-zupełny?
complexity-theory
np-complete
reductions
templatetypedef
źródło
źródło
Odpowiedzi:
Komentarz wspomina o redukcji z X3C do SUBSET PRODUCT przypisanej Yao. Biorąc pod uwagę cel redukcji, nietrudno było zgadnąć, jaka mogła być redukcja.
Definicje:
Aby zredukować instancję X3C do instancji SUBSET PRODUCT:
Ustanów bijective mapping między elementami i pierwszym | X | liczby pierwsze. Zastąp elementy podzbiorów X i C zmapowanymi liczbami pierwszymi.X |X| X C
Dla każdego podzestawu w pomnóż jego członków razem; wynikowa lista produktów to L dla instancji SUBSET PRODUCT. Ponieważ liczby pierwsze są używane do mapowania w kroku 1, gwarantuje się, że produkty są równoważne, jeśli podzbiory są równoważne przez unikalne twierdzenie o rozkładzie na czynniki .C L
Pomnóż elementy razem; wynikowy produkt jest wartością k dla instancji SUBSET PRODUCT.X k
Głównymi czynnikami są dokładnie członkowie X . Czynniki pierwsze liczb w L odpowiadają dokładnie członom podzbiorów C. Zatem każde rozwiązanie nowego przykład PODZBIÓR produktu może być przekształcona w roztwór X3C przez odwzorowywanie elementów w roztworze L tyłu do podzbiorach C .k X L C L C
Każdy z 3 etapów transformacji obejmuje operacje wielomianowe względem wielkości danych wejściowych lub rozmiar członek X . Pierwszy | X | liczby pierwsze można generować w czasie O ( | X | ) za pomocą sita Eratostenesa i gwarantuje się, że mieszczą się w przestrzeni O ( | X | 2 ln | X | ) według twierdzenia o liczbie pierwszej .|X| X |X| |X| O(|X|2ln|X|)
źródło
Według [ 1 ]: Tak jest
Przytaczam również to samo odniesienie: Komentarze: Istnieje subtelne techniczne rozróżnienie między tym a Problemem 42: pierwszy przypadek ma pseudoefektywny algorytm uzyskany przez umożliwienie reprezentacji liczb w jedności; chyba że wszystkie problemy NP-zupełne mogą zostać rozwiązane za pomocą szybkich algorytmów, jednak problemu z podzbiorem produktu nie da się rozwiązać metodami „wydajnymi” przy użyciu nawet tej nieuzasadnionej reprezentacji danych wejściowych.
spójrz na [2], aby uzyskać redukcję. [2]: Fellows, Michael i Neal Koblitz. „Złożoność stałych parametrów i kryptografia”. Applied Algebra, Algebraic Algorytmy and Kody korygujące błędy (1993): 121-131.
źródło