Я считаю, что нашел сокращение от гамильтоновой траектории , доказав тем самым проблему NP-трудной.
Назовем слово w ∈ Σ ∗ свидетелем для A , если оно удовлетворяет условию из вопроса (для каждого L ∈ A существует m ≥ 1 такое, что { w m + i ∣ 0 ≤ i < | L | } = L ) ,w∈Σ∗AL∈Am≥1{wm+i∣0≤i<|L|}=L
Рассмотрим вариант решения исходной задачи, т.е. решим, есть ли для некоторого A и k ≥ 0 свидетель A длины не более k . Эту проблему можно решить, используя исходную задачу как оракула за полиномиальное время (найдите кратчайшего свидетеля, затем сравните его длину с k ).Ak≥0Akk
Теперь по сути сокращения. Пусть G = ( V , E ) простой неориентированный связный граф. Для каждого v ∈ V пусть L v = { v } ∪ { e ∈ E ∣ v ∈ e } - множество, содержащее вершину v и все ее смежные ребра. Положим Σ = E и A = { L v ∣ v ∈ V } . Тогда гG=(V,E)v∈VLv={v}∪{e∈E∣v∈e}vΣ=EA={Lv∣v∈V}Gимеет гамильтонову путь тогда и только тогда, когда есть свидетель для длины A не более 2 | E | + 1 .A2|E|+1
Доказательство. Пусть v 1 e 1 v 2 … e n - 1 v n - гамильтонов путь в G и H = { e 1 , e 2 , … , e n - 1 } множество всех ребер на пути. Для каждой вершины V , определим множество U V = L v ∖ H . Выберите произвольный порядок α v для каждого U v . Словоv1e1v2…en−1vnGH={e1,e2,…,en−1}vUv=Lv∖HαvUvw = α v 1 e 1 α v 2 e 2 … e n - 1 α v n является свидетелем для A , поскольку L v 1 представлен подстрокой α 1 e 1 , L v n как e n - 1 α n и для каждого v i , i ∉ { 1 , n } , L vw=αv1e1αv2e2…en−1αvnALv1α1e1Lvnen−1αnvii∉{1,n} i , представленe iLvi - 1 u v i e i . Кроме того, каждое ребро вEвстречается дважды вw,за исключением | V | -1ребро вH, которое встречается один раз, и каждая вершина вVвстречается один раз, давая | ш | =2 | E | +1.ei−1uvieiEw|V|−1HV|w|=2|E|+1
Для другого направления пусть w будет произвольным свидетелем длины A не более 2 | E | + 1 . Ясно, что каждое e ∈ E и v ∈ V встречается в w хотя бы один раз. Без ограничения общности предположим, что каждое e ∈ E встречается в w не более двух раз, а каждое v ∈ V встречается ровно один раз; в противном случае можно найти более короткого свидетеля, удалив элементы из w . Пусть H ⊆ E - множество всех ребер, встречающихся вwA2|E|+1e∈Ev∈Vwe∈Ewv∈VwH⊆Eww exactly once. Given the assumptions above, it holds that |w|=2|E|−|H|+|V||w|=2|E|−|H|+|V|.
Рассмотрим непрерывную подстроку ш формы у е 1 е 2 ... е K V , где ¯u , об ∈ V , е я ∈ E . Мы говорим, что u , v смежны. Обратите внимание , что если е я ∈ H , то е я = { U , V } , потому что е я происходит только один раз, пока она находится рядом с двумя вершинами в G . Следовательно, самое большееwue1e2…ekvu,v∈Vei∈Eu,vei∈Hei={u,v}eiGeiei can be in HH. Similarly, no edge in HH can occur in ww before the first vertex or after the last vertex.
Now, there are |V||V| vertices, therefore |H|≤|V|−1|H|≤|V|−1. From there, it follows that |w|≥2|E|+1|w|≥2|E|+1. Since we assume |w|≤2|E|+1|w|≤2|E|+1, we get equality. From there we get |H|=|V|−1|H|=|V|−1. By pigeonhole principle, there is an edge from H between each pair of vertices adjacent in w. Denote h1h2…hn−1 all elements from H in the order they appear in w. It follows that v1h1v2h2…hn−1vn is a Hamiltonian path in G. ◻
Since the problem of deciding the existence of Hamiltonian path is NP-hard and the above reduction is polynomial, the original problem is NP-hard too.