Самый длинный цикл состоит из двух циклов

11

Является ли следующая задача NP-полной? (Я предполагаю, что да).

Входные данные: - неориентированный граф, в котором множество ребер можно разложить на два простых цикла, не пересекающих ребра (они не являются частью входных данных).kN,G=(V,E)

Вопрос: существует ли простой цикл в с длиной больше ?Gk

Очевидно, что проблема в NP, и максимальная степень в равна , но это, похоже, не помогает.G4

Листинг
источник
1
Я не думаю, что вы правы насчет "не более 4 путей, соединяющих любую пару". См .: i.imgur.com/mYL4n1V.png
svinja
1
@svinja Вы правы, я должен был сказать, что между любой парой из двух вершин существует не более 4 парных непересекающихся путей.
Объявление
Ваш заголовок вводит в заблуждение, потому что самый длинный простой цикл не может быть ни одним из двух циклов в разложении (в любом разложении). E
Денис
@dkuper это может на самом деле, посмотрите на объединение двух вершин непересекающихся простых циклов.
Листинг
Моя точка зрения не в том, что он никогда не может быть одним из них, а в том, что иногда это не один из них. Так что проблема не в том, чтобы найти большее из двух.
Денис

Ответы:

2

Попытка сокращения ....

Сокращение от гамильтонова пути на орграфе с максимальной степенью 3, которое является NPC [G & J]граммзнак равно(В,Е)

  • игнорировать направление ребер и, используя первое сканирование глубины (ненаправленное) от произвольного узла, разделить ребра на два набора отличных (ненаправленных) путей (красный и зеленый на рисунках);грамм
  • соедините красные пути, добавив дополнительные «связывающие узлы» (фиолетовые узлы на рисунке B) и сделайте неориентированный красный контур; соедините зеленые пути, добавив дополнительные «связывающие узлы» (фиолетовые узлы на рисунке) и сделайте неориентированный зеленый контур;
  • преобразовать каждый исходный узел из степени 1 и степени 2 (рисунок C), добавив k желтых узлов на входящий красный крайбВК и добавив k желтых узлов на первый исходящийкрасныйкрай b c ; наконец, добавьте k желтых узлов «по направлению» ко второму исходящемузеленомукраю b d, используя «обернутый» путь вокруг b, который касается крайних желтых узлов красных краев (рисунок D).aбКбсКбdб

В полученном графике все желтые узлы могут перемещаться с помощью простого пути только в двух направлениях показали на рисунке E и F, фигуры , которые соответствуют двум действительным прохождений исходного узла B V ; неформально , если ребро к EXTRA «связывая» фиолетовый узел используется, K - желтые узлы не могут перемещаться.3КбВК

  • преобразовать каждый оригинальный узел V от 2 и полустепени захода полустепени 1 аналогичным образом

Подбор достаточно большой , граф результатов G К»|В|грамм' есть простой путь длины больше тогда и только тогда, когда исходный граф G имеет гамильтонов путь (длины | V | - 1 )3К(|В|-1)грамм|В|-1

введите описание изображения здесь

Большую картину можно скачать здесь

Вор
источник
Это очень красивое доказательство, может быть, вам следует направить края на рисунке «А», чтобы было легче понять, как получить пути (хотя я думаю, что я это понял).
Листинг
@Listing: строительство путей не зависит от ориентированных ребер ( на самом деле я написал «неориентированный» поиск в ответе). Вы должны начать с произвольного узла, сначала выполнить сканирование по глубине, раскрасив его красными пройденными краями, затем вернуться к первому обнаруженному узлу степени 3 и продолжить сначала сканирование по глубине, покрасив его зелеными пройденными ребрами, и так далее. .. возможно, имеет более формальное определение, но он не приходит на ум прямо сейчас. Дайте мне знать, если вам нужна дополнительная информация.
Вор
Я вижу, свойство, по которому ребра проходят в «правильном» направлении, обеспечивается последним преобразованием. Спасибо за разъяснение.
Объявление
0

Вдохновленный ответом Вора, я хочу дать более простой.

Начнем с задачи о гамильтоновом цикле для задачи сеточных графов, которая была доказана Итаем.

Легко видеть, что множество ребер графа сетки можно разбить на 2 непересекающихся подмножества: горизонтальное и вертикальное.

Итак, теперь нам нужно сплести все горизонтальные в один простой цикл, а все вертикальные - в другой простой цикл.

Это очень простая задача: для вертикальных разверните от крайнего левого до крайнего правого положения, просто соедините все вертикальные промежутки, затем соедините последовательную вертикальную линию, скоординированную по X, затем соедините самую нижнюю левую вершину с самой высокой правой вершиной. Сделайте аналогично для горизонтальных краев.

Обратите внимание, что полученный граф все еще прост, неориентирован и удовлетворяет требованию. Это просто, потому что на последних этапах вертикальной фазы и горизонтальной фазы мы имеем дело с двумя различными парами вершин.

Теперь сделайте тот же трюк, что и Вор. В каждой вершине для каждого ее исходного инцидентного ребра добавьте К новых вершин. Как обычно, К ahouls должны быть достаточно большими. Наконец, длина подлинного гамильтонова цикла должна быть 2К|В|

Тхин Д. Нгуен
источник