Dokładne rozwiązywanie superstrun

18

Co wiadomo o dokładnej złożoności najkrótszego problemu superstrun? Czy można to rozwiązać szybciej niż O(2n) ? Czy znane są algorytmy, które rozwiązują najkrótszy superstrun bez redukcji do TSP?

UPD: O() tłumi czynniki wielomianowe.

Najkrótszy problem superstrun to problem, którego odpowiedzią jest najkrótszy ciąg, który zawiera każdy ciąg z danego zestawu ciągów. Pytanie dotyczy rozszerzenia optymalizacji znanego problemu NP-Short Shortest Superstring (Garey i Johnson, str. 228).

Alex Golovnev
źródło
5
Co to jest „problem superstrun”?
Jeffε
Miałem na myśli najkrótszy problem superstrun, naprawiłem go. Dziękuję Ci!
Alex Golovnev
10
No dobra, jaki jest „najkrótszy problem superstrun”? Mogę wymyślić kilka problemów, które zasługują na tę nazwę, i kilka innych, które należy nazwać „najkrótszym problemem supersekwencji ”, ale prawdopodobnie nie są w praktyce. Daj nam jakiś kontekst!
Jeffε
1
Jaki jest twój problem? np. jeśli szukasz najkrótszego super ciągu w fragmentacji genomu, ponieważ fragmentacja genomu tworzy ograniczone wykresy szerokości drzewa, możesz mieć szybki algorytm, ale jeśli interesują Cię szybsze niż dostępne algorytmy, twoja odpowiedź jest przecząca, z wyjątkiem tego, że możesz mieć szybszy algorytm w TSP (z powodu prostego zmniejszenia), a także jest algorytm w lokalnie powiązanych wykresach szerokości drzewa. O(2n)
Saeed,
1
@AlexGolovnev, Tak, masz rację, to jest ATSP, ale jeśli chodzi o ograniczoną szerokość drogi, myślę, że dobrze jest zobaczyć cs.bme.hu/~dmarx/papers/marx-warsaw-fpt2 lub jeśli chcesz wiedzieć więcej na ich temat, dobrze też zobacz algorytm twierdzenie o meta
Saeed,

Odpowiedzi:

5

Zakładając, że łańcuchy mają długość wielomianową w , wtedy tak, jest co najmniej 2 n - Ω ( nrozwiązanie czasowe. Powodem jest dobrze znana redukcja z najkrótszego najczęstszego problemu superstrunu do ATSP z wielomianowymi wagami liczb całkowitych, które z kolei można rozwiązać przez interpolację wielomianową, jeśli można policzyć cykle Hamiltona w ukierunkowanej multigrafii. Ten ostatni problem ma2n-Ω(2nΩ(n/logn)rozwiązanie czasowe. Björklund 20122nΩ(n/logn)

Redukcję z ATSP z wagą dla każdej pary wierzchołków kształcie U , V do Hamiltona zliczania cykli jest następujący:wuvu,v

Dla , w którym w sumie stanowi górne ograniczenie wszystkich sumy n wag w przypadku ATSP, budować jeden wykres G r gdzie zastąpić każdą wagę w u , v w r W U v łuków z u do v .r=1,2,,wsumwsumnGrwuvrwuvuv

Rozwiązując liczenie cykli hamiltonowskich dla każdego , można za pomocą interpolacji wielomianowej skonstruować wielomian w suma l = 0 a l r l o wartości l równej liczbie tras TSP na oryginalnym wykresie wagi l . Dlatego też umieszczenie najmniejszą l tak, że L nie jest równa zeru rozwiązuje problemu.Grl=0wsumalrlalllal

Andreas Björklund
źródło
Wielkie dzięki! Nie znałem tego związku z liczeniem cykli hamiltonowskich.
Alex Golovnev
@AlexGolovnev: Ale redukcja jest mniej więcej taka sama jak np. Wynik Kohna, Gottlieba, Kohna, który zacytowałeś we własnej odpowiedzi? Jest to proste osadzenie semillingu sumy minimalnej na liczbach całkowitych. W każdym razie dziękuję za uświadomienie mi, że następna wersja mojego artykułu powinna to wyraźnie stwierdzać.
Andreas Björklund,
8

Studiowałem problem i znalazłem kilka wyników. Najkrótszy wspólny superstrun (SCS) można rozwiązać w czasie tylko przestrzenią wielomianową ( Kohn, Gottlieb, Kohn ; Karp ; Bax, Franklin ).2n

Najbardziej znanym przybliżeniem jest (Paluch).21130

Najbardziej znanym przybliżeniem kompresji jest (Paluch).34

Jeśli SCS można aproksymować współczynnikiem stosunku do binarnego alfabetu, to można go aproksymować współczynnikiem α w stosunku do dowolnego alfabetu ( Vassilevska-Williams ).αα

SCS nie może być aproksymowany współczynnikiem lepszym niż chyba że P = NP ( Karpinski, Schmied ).1.0029

Maksymalnej kompresji nie można aproksymować współczynnikiem lepszym niż chyba że P = NP ( Karpinski, Schmied ).1.0048

Byłbym wdzięczny za wszelkie uzupełnienia i sugestie.

Alex Golovnev
źródło
5

Oto najkrótsza problemem superstrun: dostaniesz ciągów s 1 , ... , y n nad jakimś alfabetu Ď i chcesz znaleźć najkrótszą ciąg nad Ď który zawiera każdy s I jako podciąg kolejnych znaków, czyli podciąg.ns1,,snΣΣsi

LCC=i|si|L

O2nn

SvSSvv,Sv,SSkk1

Dla każdego ciągu u patrzymy na wszystkie podzbiory S. na k-1 ciągi, które nie obejmują u i ustaw wartość dla (u,uS) to the maximum over strings v in S of the sum of the maximum overlap of u with v with C((v,S)).

The final runtime is no more than O(n22n+n2l) where l is the maximum string length.

There are better algorithms if you assume that l is small, or the pairwise overlaps are small, the alphabet size is small etc, but I am not aware of any algorithm that's faster than 2n.

virgi
źródło
5
OP knows O(2n) algorithm, he asked for faster solution.
Saeed
2
as I said, I don't believe a faster solution is known.
virgi
1
@virgi, thank you very much! Your algorithm is very nice. But I think inclusion-exclusion principle gives us even O(2n)-algorithm with polynomial space for the Superstring problem. I'm really interesting in faster algorithms, may be with some constraints (small alphabet, short answer etc). Thank you very much!
Alex Golovnev