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:Ax≤b,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ącxAx≤bcTx≥αcTx≥αAxAx≤b−cTx≤−αA′A−cTb′bi 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}nA′x≤b′α2nA′nAnα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:Ay≥b,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(x1∨x¯2∨x3)y1+y¯2+y3≥1xjyj+y¯j≥1∑j=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.