Jak znaleźć najkrótszą reprezentację dla podzbioru zestawu energetycznego?


13

Szukam wydajnego algorytmu dla następującego problemu lub dowodu twardości NP.

Niech będzie zbiorem, a A P ( Σ ) zbiorem podzbiorów Σ . Znaleźć sekwencję wagowo Ď * o najmniejszej długości tak, że dla każdego L A , jest k N w taki sposób, { w k + I | 0 i < | L | } = L .ΣAP(Σ)ΣwΣLAkN{wk+i0i<|L|}=L

Na przykład dla słowo w = b a c jest rozwiązaniem problemu, ponieważ dla { a , b } jest k = 0 , dla { a , c } jest k = 1 .A={{a,b},{a,c}}w=bac{a,b}k=0{a,c}k=1

Jeśli chodzi o moją motywację, staram się przedstawić zestaw krawędzi skończonego automatu, gdzie każda krawędź może być oznaczona zestawem liter z alfabetu wejściowego. Chciałbym zapisać pojedynczy ciąg, a następnie zachować parę wskaźników do tego ciągu na każdej krawędzi. Moim celem jest zminimalizowanie długości tego ciągu.


1
Innymi słowy, problemem jest uporządkowanie zestawów w sekwencji maksymalizujące | L iL i + 1 | ? L1,,Ln|LiLi+1|
Karolis Juodelė

@ KarolisJuodelė, nie sądzę, że to wystarczy, ponieważ dla można umieścić elementy w L iL I + 2 do wag dwukrotnie, nawet jeżeli są one w L I + 1 . Np { { , b } , { , c } , { , d } } , można udostępnićLi,Li+1,Li+2LiLi+2wLi+1{{a,b},{a,c},{a,d}}apomiędzy dwoma pierwszymi lub dwoma ostatnimi, ale nie wśród nich wszystkich, najkrótsze byłoby b a c a d . wbacad
avakar

@ KarolisJuodelė, ponadto są przypadki, w których dla niektórych , L iL j , co czyni to jeszcze bardziej skomplikowanym, ponieważ w takim przypadku „porządkowanie sąsiedzkie” może nie być całkowite. ijLiLj
avakar

Tylko na pocieszenie, jeśli mam prawidłowe pytanie, jeśli zestaw to , to słowo c o w o w l w o l f spełnia podane wymagania, ale (możliwe) minimalne takie słowo i rozwiązanie to c o w l f ? :)A={{c,o,w},{o,w,l},{w,o,l,f}}cowowlwolfcowlf
MindaugasK,

@MindaugasK, to poprawny, bardzo ładny przykład :)
avakar

Odpowiedzi:


4

Wydaje mi się, że znalazłem redukcję ze ścieżki hamiltonowskiej , co dowodzi, że problem NP jest trudny.

Nazwij słowo świadkiem dla A , jeśli spełnia warunek z pytania (dla każdego L A , jest m 1 taki, że { w m + i0 i < | L | } = L ) .wΣALAm1{wm+i0i<|L|}=L

Rozważ wersję decyzyjną pierwotnego problemu, tj. Zdecyduj, czy dla niektórych i k 0 istnieje świadek dla A o długości co najwyżej k . Problem ten można rozwiązać, używając pierwotnego problemu jako wyroczni w czasie wielomianowym (znajdź najkrótszego świadka, a następnie porównaj jego długość z k ).Ak0Akk

Teraz rdzeń redukcji. Niech będzie prostym, niekierowanym, połączonym wykresem. Dla każdego v V niech L v = { v } { e E v e } będzie zbiorem zawierającym wierzchołek v i wszystkie jego przyległe krawędzie. Ustaw Σ = E i A = { L vv V } . Następnie G.G=(V,E)vVLv={v}{eEve}vΣ=EA={LvvV}Gma ścieżkę hamiltonowską wtedy i tylko wtedy, gdy jest świadek długości co najwyżej 2 | E | + 1 .A2|E|+1

Dowód. Niech będzie ścieżką hamiltonowską w G, a H = { e 1 , e 2 , , e n - 1 } zbiorem wszystkich krawędzi ścieżki. Dla każdego wierzchołka v , określa zestaw U v = l vH . Wybierz dowolną kolejność a v dla każdego U V . Słowov1e1v2en1vnGH={e1,e2,,en1}vUv=LvHαvUv jest świadkiem dla A , ponieważ L v 1 jest reprezentowany przez podłańcuch α 1 e 1 , L v n przez e n - 1 α n i dla każdego v i , i { 1 , n } , L vw=αv1e1αv2e2en1αvnALv1α1e1Lvnen1αnvii{1,n} jest reprezentowany przeze i - 1 u v i ei. Ponadto każda krawędź wEwystępuje dwa razyww,z wyjątkiem| V| -1krawędzie wH, które występują raz, a każdy wierzchołek wVwystępuje raz, dając| w| =2| E| +1.Lviei1uvieiEw|V|1HV|w|=2|E|+1

Na innym kierunku, niech będzie dowolnym świadka A o długości co najwyżej 2 | E | + 1 . Oczywiście, każdy e E i v V występuje w w co najmniej raz. Bez straty ogólności załóżmy, że każdy e E występuje w co najwyżej dwa razy i za każdym v V zachodzi dokładnie jeden raz; w przeciwnym razie można znaleźć krótszego świadka, usuwając elementy z w . Niech H E będzie zbiorem wszystkich krawędzi występujących wwA2|E|+1eEvVweEwvVwHE dokładnie raz. Biorąc pod uwagę powyższe założenia, utrzymuje, że | w | = 2 | E | - | H | + | V | .w|w|=2|E||H|+|V|

Rozważmy ciągły podciąg postaci u e 1 e 2 ... e k v , gdzie u , v V , e jaE . Mówimy, że u , v sąsiadują ze sobą. Należy zauważyć, że jeśli e IH , a następnie e I = { u , v } , ponieważ e I występuje tylko raz, lecz przylega do dwóch wierzchołków G . Dlatego co najwyżej jedenwue1e2ekvu,vVeiEu,veiHei={u,v}eiG mogą być H . Podobnie żadna krawędź w H nie może wystąpić w w przed pierwszym wierzchołkiem ani po ostatnim wierzchołku.eiHHw

Teraz są zatem wierzchołki | H | | V | - 1 . Stąd wynika, że | w | 2 | E | + 1 . Ponieważ zakładamy | w | 2 | E | + 1 , otrzymujemy równość. Stamtąd dostajemy | H | = | V | - 1 . Zgodnie z zasadą szuflady istnieje krawędź od H.|V||H||V|1|w|2|E|+1|w|2|E|+1|H|=|V|1Hmiędzy każdą parą wierzchołków sąsiadujących w . Oznaczają H 1 H 2 ... H n - 1 wszystkie elementy z H, w których się znajdują wag . Wynika stąd, że v 1 H 1 V 2 h 2 ... h n - 1 v n jest ścieżki Hamiltona w G . wh1h2hn1Hwv1h1v2h2hn1vnG

Ponieważ problem decydowania o istnieniu ścieżki hamiltonowskiej jest trudny dla NP, a powyższa redukcja jest wielomianowa, pierwotny problem jest również trudny dla NP.

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.