Найдовший цикл, що міститься в два цикли


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]G=(V,E)

  • ігноруйте напрямок ребер і, використовуючи першу глибинну (непряму) сканування від довільного вузла, розділіть краї на два набори чітких (непрямих) шляхів (червоний і зелений на малюнках);G
  • приєднатись до червоних доріжок, додаючи додаткові «пов'язуючі вузли» (фіолетові вузли на рисунку В) та склади непрямий червоний контур; з'єднайте зелені доріжки, додаючи додаткові «зв’язуючі вузли» (фіолетові вузли на малюнку) і зробіть непряму зелену схему;
  • перетворіть кожен вихідний вузол розрізу 1 та перехід 2 (рисунок C), додавши жовті вузли на вхідному червоному краї і додавши жовті вузли на перший вихідний червоний край ; нарешті додайте жовтих вузлів "назустріч" другому вихідному зеленому краю використовуючи "обгорнутий" шлях навколо який торкається самих зовнішніх жовтих вузлів червоних країв (мал. D).k a b k b c k b d bbVkabkbckbdb

У отриманому графіку всі жовтих вузлів можна пройти простим шляхом лише двома способами, показаними на рисунку Е та Фігурі F, які відповідають двом дійсним обходам вихідного вузла ; неофіційно, якщо використовується край до додаткового "пов'язуючого" фіолетового вузла, жовті вузли не можна пройти.b V k3kbVk

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

Вибір досить великого, графік результату має простий шлях довжиною більше тоді і тільки тоді, коли вихідний графік має гамільтонів шлях (довжиною )G 3 k ( | V | - 1 ) G | V | - 1k|V|G3k(|V|1)G|V|1

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

Збільшене зображення можна завантажити тут


Це дуже гарний доказ, можливо, вам слід направити краї на малюнку "А", щоб легше було зрозуміти, як дістатися стежками (я думаю, я це зрозумів).
Лістинг

@ Списки: побудова шляхів не залежить від спрямованих країв (адже я відповів писав "непрямий" пошук у відповідь). Ви повинні почати з довільного вузла, зробіть спочатку сканування на глибині, розфарбувавши червоним кольором пройдені краї, потім поверніть на перший вузол 3 ступеня, і продовжуйте глибину спочатку сканування з нього, забарвлюючи зеленим кольором пройдені краї тощо. .. можливо, воно має більш формальне визначення, але це мені не спадає на думку. Повідомте мене, якщо вам потрібні додаткові деталі.
Vor

Я бачу, властивість, по краях якої проходять в "правильному" напрямку, застосовується останнім перетворенням. Дякую за роз’яснення.
Лістинг

0

Натхненний відповіддю Вор, я хочу дати простіший.

Почніть з задачі циклу Гамільтонів для задач графів сітки, які було важко доведено Ітаєм.

Видно, що крайовий набір графіка сітки може бути розділений на 2 пересічні підмножини: горизонтальну та вертикальну.

Отже, тепер нам потрібно переплести всі горизонтальні в один простий цикл, а всі вертикальні переплести в інший простий цикл.

Це дуже просте завдання: для вертикальних прокрутіть з крайньої лівої в крайню праворуч, просто з'єднайте будь-які вертикальні проміжки, потім з'єднайте послідовні вертикальні лінії, координовані x, а потім з'єднайте найменшу ліву вершину з найвищою правою вершиною. Зробіть аналогічно для горизонтальних країв.

Зауважте, що отриманий графік все ще простий, непрямий і відповідає вимогам. Це просто, тому що на останніх кроках вертикальної та горизонтальної фази ми маємо справу з двома різними парами вершин.

А тепер зробіть подібний трюк, як це робив Вор. У кожну вершину для кожної її вихідної межі падання додайте нових вершин. Як завжди, ahouls мають бути досить великими. Нарешті, тривалість справжнього гамільтонового циклу повинна бути. Але, звичайно, це не гамільтоніан отриманого графа.kk2k|V|

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.