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 .ΣA⊆P(Σ)Σw∈Σ∗L∈Ak∈N{wk+i∣0≤i<|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 i ∩ L i + 1 | ? L1,…,Ln∑|Li∩Li+1|
— Karolis Juodelė

@ KarolisJuodelė, nie sądzę, że to wystarczy, ponieważ dla można umieścić elementy w L i ∩ L 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+2Li∩Li+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 i ⊆ L j , co czyni to jeszcze bardziej skomplikowanym, ponieważ w takim przypadku „porządkowanie sąsiedzkie” może nie być całkowite. i≠jLi⊆Lj
— 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 + i ∣ 0 ≤ i < | L | } = L ) .w∈Σ∗AL∈Am≥1{wm+i∣0≤i<|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 ).Ak≥0Akk

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 v ∣ v ∈ V } . Następnie G.G=(V,E)v∈VLv={v}∪{e∈E∣v∈e}vΣ=EA={Lv∣v∈V}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 v ∖ H . Wybierz dowolną kolejność a v dla każdego U V . Słowov1e1v2…en−1vnGH={e1,e2,…,en−1}vUv=Lv∖Hα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αv2e2…en−1αvnALv1α1e1Lvnen−1α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.Lviei−1uvieiEw|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|+1e∈Ev∈Vwe∈Ewv∈VwH⊆E 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 ja ∈ E . Mówimy, że u , v sąsiadują ze sobą. Należy zauważyć, że jeśli e I ∈ H , 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 jedenwue1e2…ekvu,v∈Vei∈Eu,vei∈Hei={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 . ◻wh1h2…hn−1Hwv1h1v2h2…hn−1vnG◻

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.