Dokładne algorytmy czasu wykładniczego dla programów 0-1 z danymi nieujemnymi


9

Czy są znane algorytmy dla następującego problemu, które pokonały naiwny algorytm?

Dane wejściowe: matryca A i wektory b,c, gdzie wszystkie wpisy z pozycji A,b,c są liczbami całkowitymi nieujemnymi.

Wyjście: optymalne rozwiązanie x do max{cTx:Axb,x{0,1}n}.

To pytanie jest udoskonaloną wersją mojego poprzedniego pytania Dokładne algorytmy czasu wykładniczego dla programowania 0-1 .

Odpowiedzi:


5

jeśli liczba niezerowych współczynników w A jest liniowa w n , istnieje algorytm, który rozwiązuje ten problem w czasie krótszym niż 2n .

Oto jak to działa. Używamy standardowego połączenia między problemem optymalizacji a odpowiadającym mu problemem decyzyjnym. Aby przetestować, czy istnieje rozwiązanie którym i , utworzymy problem decyzyjny: dołączymy ograniczenie do macierzy i przetestujemy czy istnieje takie , że i . W szczególności utworzymy nową macierz , biorąc i dodając dodatkowy wiersz zawierający , i utworzymy , biorącxAxbcTxαcTxαAxAxbcTxαAAcTbbi sąsiadujący dodatkowy wiersz z . Otrzymujemy problem decyzyjny: czy istnieje taki, że ? Odpowiedź na ten problem decyzyjny mówi nam, czy istnieje rozwiązanie pierwotnego problemu optymalizacji o wartości lub większej. Ponadto, jak wyjaśniono w odpowiedzi na poprzednie pytanie , ten problem decyzyjny można rozwiązać w czasie krótszym niż , jeśli liczba niezerowych współczynników w jest liniowa w (a zatem jeśli liczba nie- zerowe współczynniki w są liniowe w ). Teraz możemy korzystać z wyszukiwania binarnego naαx{0,1}nAxbα2nAnAnαrozwiązać problem optymalizacji w czasie krótszym niż .2n

Dziękuję AustinBuchanan i Stefanowi Schneiderowi za pomoc w debugowaniu wcześniejszej wersji tej odpowiedzi.


Czy możesz podać mocniejszą odpowiedź: na przykład „istnieje algorytm ” lub „algorytm szybszy niż obaliłby ...”? O(2n/2)O(2n)
Austin Buchanan,

@AustinBuchanan, jeśli liczba wymiarów jest wystarczająco mała, istnieje algorytm , jak udokumentowano w mojej odpowiedzi na inne pytanie . To najlepsze, co wiem, jak to zrobić; Nie wiem jak to zrobić lepiej. Może inni będą w stanie udzielić silniejszej odpowiedzi! bO(2n/2)
DW

O(2n/2) utrzymuje się zawsze, gdy liczba ograniczeń wynosi ? O(1)
Austin Buchanan

4

Jeśli weźmiemy pod uwagę problem minimalizacji , to następująca redukcja pokazuje, że algorytm działa w czasie dla obaliłby SETH. Przeformułowanie potwierdza ten sam wynik dla zamierzonego problemu (wersja maksymalizacyjna).miny{cTy:Ayb,y{0,1}n}O(2δn/2)δ<1

Biorąc pod uwagę instancję CNF-SAT ze zmiennymi , sformułuj 0-1 IP z dwiema zmiennymi dla każdej zmiennej w instancji SAT. Jak zwykle klauzula byłaby reprezentowana jako . Następnie dla każdej zmiennej w instancji SAT dodaj ograniczenie . Celem jest zminimalizowanie . Cel OD będzie IFF instancji SAT jest spe.Φ=i=1mCi{xj}j=1nyj,y¯jxj(x1x¯2x3)y1+y¯2+y31xjyj+y¯j1j=1n(yj+y¯j)n

Podziękowania dla Stefana Schneidera za korektę.

Aktualizacja: w On On Problems Hard jak CNF-Sat autorzy przypuszczają, że SET COVER nie może być rozwiązany w czasie , , gdzie odnosi się do liczby zestawów. Jeśli to prawda, to pokazuje, że mojego problemu nie można rozwiązać również w czasie .O(2δn)δ<1nO(2δn)

Aktualizacja 2. O ile mogę stwierdzić, zakładając SETH, mojego problemu nie można rozwiązać w czasie , ponieważ wykazano, że nie można ustawić zestawu uderzeń (z zestawem naziemnym o rozmiarze ) rozwiązane w czasie .O(2δn)nO(2δn)


3
Ponieważ podwoiłeś liczbę zmiennych, myślę, że to pokazuje tylko, że algorytm dla tego problemu z czasem wykonania byłby sprzeczny z SETH. O(2δn/2)
Stefan Schneider,

Wait ... autorzy z Problematyki twardy jak stan CNF-SAT, że "dla każdego , Algorytm Uderzanie Set naruszałyby Seth." Czy to nie działa? ϵ<1O(2ϵn)
Austin Buchanan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.