Suma podzbiorów a iloczyn podzbiorów (twardość vs. słaba NP)

15

Miałem nadzieję, że ktoś może mi wyjaśnić, dlaczego dokładnie problem produktu z podzbiorem jest silnie trudny do NP, podczas gdy problem sumy z podzbiorem jest trudny do NP.

Podzbiór Suma: Biorąc pod uwagę, i T , czy istnieje podzbiór X ' , tak że Σ i X ' x I = T .X={x1,...,xn}TXiXxi=T

Podzbiór produktu: Biorąc pod uwagę, i T , czy istnieje podzbiór X ' , tak że Π i X ' x I = T .X={x1,...,xn}TXiXxi=T

Zawsze uważałem, że dwa problemy są równoważne - instancja SS może zostać przekształcona w instancję SP za pomocą potęgowania, a instancja SP w SS za pomocą logarytmów. Doprowadziło mnie to do wniosku, że oba należały do ​​tej samej klasy NP-twardych - tj. Oba były słabo NP-twarde.

Ponadto wydaje się, że ta sama rekurencja może być wykorzystana do rozwiązania obu problemów za pomocą programowania dynamicznego z bardzo małą zmianą (zastępując odejmowanie w SS dzieleniem w SP).

Tak było, dopóki nie przeczytałem rozdziału 8 „Teorii obliczeń” Bernarda Moreta (dla tych, którzy nie mają książki, ma dowód twardości podzbioru przez X3C - problem silnie NP).

Rozumiem redukcję, ale nie mogę zrozumieć, co było nie tak z moim wcześniejszym wnioskiem (równoważność dwóch problemów).


AKTUALIZACJA : Okazuje się, że produkt podzbioru słabo uzupełnia NP (produkt docelowy jest wykładniczy w ). Gary i Johnson opublikowali to w kolumnie NP-zupełność w 1981 r. , Ale myślę, że było to mniej widoczne niż ich wcześniejsze twierdzenie w ich książce.Ω(n)

RDN
źródło
5
Prawdopodobnie dobrze byłoby wyobrazić sobie, jak zaimplementowałbyś algorytm programowania dynamicznego. Wtedy zobaczysz, co było nie tak.
Yoshio Okamoto,
@ MohammadAl-Turkistany: Jest w końcowej części tej kolumny
RDN

Odpowiedzi:

5

Odnośnie do problemu równoważności sumy podzbioru i produktu podzbioru Istnieją techniczne dane techniczne dotyczące podzbioru produktu. Iloczyn x = T jest faktycznie Psuedopolynomialem, jeśli T nie jest wykładniczy! Tak więc dowody na to, że Subset Product jest NP Hard, nie są (z przyczyn technicznych !!!) całkiem poprawne!

Jednak biorąc pod uwagę obietnicę, że T jest duża, wówczas redukcja za pomocą logarytmów do sumy podzbioru daje NADZWYCZAJNĄ SUMĘ SUBSETOWĄ, która jest ponad rzeczywiste! Oznacza to, że algorytm Psuedopolynomial dla sumy podzbiorów nie ma zastosowania! Chociaż logarytmy są małe, miejsca dziesiętne zaburzają dynamiczne programowanie Psuedopolynomial!

mam nadzieję, że to pomoże

Zelah

Zelah 02
źródło
2
Okazuje się, że przez cały czas miałeś rację co do niepoprawnych redukcji (tj. Twierdząc, że wykazują one silną kompletność NP, jeśli nie mają). Dzięki!
RDN
8

Po pierwsze, użycie potęgowania w celu przejścia z SS do SP działa (przy użyciu podstawy 2 zamiast zasady ), ale wysadza rozmiar zaangażowanych liczb. Słaba twardość NP oznacza, że ​​jeśli liczby są małe (a dokładniej oznaczane jako jednoargumentowe), problem nie jest już trudny. Dlatego użycie potęgowania tworzy instancje wielkości SP o wykładniczej wielkości, nawet dla łatwych instancji SS, w których liczby zapisywane są w jedności.e

Po drugie, używanie logarytmów do przejścia ze SP do SS nie działa, ponieważ logarytmy zwykle generują wartości niecałkowite. SS i SP są definiowane za pomocą liczb całkowitych, a logarytmy często prowadzą do transcendentalnych wartości, które są trudne do przedstawienia lub wykonania matematyki.

<edit>

Niech będzie liczbą całkowitą, A > 0 , to log 2 A jest racjonalny, jeśli i tylko jeśli A jest potęgą 2, a transcendentalny w przeciwnym razie. Po pierwsze, jeśli log 2 A = pAA>0log2AA dla niezerowych liczb całkowitychpiq, a następnieA=2 plog2A=pqpq ,Aq=2p. Dlatego mamyA=2rprzez rozkład pierwotny. Ponadtorq=2p, więc punktacjęAmożemy odebraćq=1ip=rudowodnićlog2jest racjonalne.A=2pqAq=2pA=2rArq=2pAq=1p=rlog2A

Musimy tylko pokazać, że nigdy nie jest transcendentalny inaczej. Wynika to z twierdzenia Gelfonda-Schneidera , ponieważ równoważne sformułowanie (jak można znaleźć na stronie Wiki) brzmi „jeśli α i γ są niezerowymi liczbami algebraicznymi, i przyjmujemy dowolny niezerowy logarytm α , to ( log γ ) / ( log α ) = log α γ jest albo racjonalny, albo transcendentalny. ” Łatwo to również zweryfikować, biorąc odwrotność twierdzenia i ustawiając α β = γ, a zatem βlog2Aαγα(logγ)/(logα)=logαγαβ=γ .β=logαγ

</edit>

Na koniec zastanów się, co się stanie, gdy wypróbujemy algorytm programowania dynamicznego z SS na SP. Ponieważ korzystamy z produktów, a nie z sum, dane liczbowe ulegają ogromnemu wysadzeniu, a wymagana matematyka precyzji nagle staje się czynnikiem wpływającym na czas działania. Właśnie dlatego algorytm nie może szybko rozwiązać wystąpień SP, nawet jeśli liczby są jedności.

Alex ten Brink
źródło
prowadzi to do nieco interesującego specjalnego przypadku. bo jaką klasę liczb można wyrazić w logu jako wymierne i niewymagające nieskończonej precyzji? w takim przypadku problemy byłyby rzeczywiście prawie równoważne i można by je było zredukować. wydaje się również prowadzić do „naturalnego” algorytmu aproksymacji.
dniu
1
Dzięki za świetną odpowiedź! Mam tylko jeden problem - rozumiem, dlaczego pobieranie dzienników jest nielegalne (z wyjątkiem być może przypadków, w których dzienniki mają długość poli - jak wskazuje vzn), ale nadal nie jestem pewien, czy przejście z SS na SP jest legalne przez potęgowanie. WRT przechodząc z SS do SP, jak wspomniałeś (przez potęgowanie), czy nie napotkamy następującego problemu: Liczba bitów w wejściowej instancji wynosi O ( n log x ) i liczba bitów w wystąpieniem I S P jest O ( n x ) . To jest wykładniczy wzrost. Czy to jest nadal legalne? Jeśli tak, dlaczego?ISSO(nlogx)ISPO(nx)
RDN
1
@vzn, RDN: Edytowałem w charakterystyce, gdy logarytm jest transcendentalny. Jeśli chodzi o wybuch w redukcji, zależy to od twojej definicji „legalnej”: redukcja jest poprawna , ale jej skuteczność nie jest wielomianowa, a zatem nie mówi nic o twardości NP. W związku z tym nie jest to poprawna redukcja czasu , ale jest to poprawna redukcja (bez kwalifikacji).
Alex ten Brink
Również nie jest szczególny przypadek, w którym wszystkie liczby są w postaci , każdy n i racjonalne, dla każdej C , nie tylko c = 2 . algorytm aproksymacji, o którym myślałem, może znaleźć taki c , że konwersja wartości na tę „bazę” jest „bliska” oryginałom. cninicc=2c
dniu
1

Dosłowne wyjaśnienie polega na tym, że problem produktu podzbioru jest NP-zupełny przez redukcję z problemu silnie NP-zupełnego, takiego jak dokładna ochrona przez 3 zestawy. W przypadku takiej „silnej” redukcji wejściowe liczby całkowite są ograniczone pewną funkcją wielomianową w liczbie całkowitej w wynikowym wystąpieniu problemu produktu podzbioru.

P=NP

Mohammad Al-Turkistany
źródło
Tak rozumiem to. Moje pytanie dotyczyło tego, dlaczego wcześniej wyciągnięty przeze mnie wniosek był niepoprawny (tj. Równoważność SS i SP).
RDN
@rdn W tym sensie nie ma odpowiedników, chyba że P = NP.
Mohammad Al-Turkistany
Tak, rozumiem Ale chcę wiedzieć, co było nie tak z moimi redukcjami w obu kierunkach.
RDN
Czy możesz przedstawić swoje ograniczenia?
Mohammad Al-Turkistany
I(SS)=X,SI(SP)=Y,PI(SS)I(SP)P=eSYi=eXiSP=eSI(SP)I(SS)S=log(P)Xi=log(Yi)PS=log(P)