Складність унікальної st-Connectivity


11

Мені хотілося б знати, чи можна вирішити наступну проблему в (недетермінованому просторі журналів):NL

Враховуючи спрямований графік з двома розрізненими вершинами і , чи існує унікальний шлях від до в ?с тGstт ГstG

Я відчуваю, що це, ймовірно, буде в оскільки ми можемо вирішити як наявність - шляху, так і якщо такого шляху немає. Тим не менше, підрахунок кількості таких шляхів є shar -hard (Valiant, 1979). s t PNLstP

Тож мої запитання: Чи є у вас посилання на це? Чи очевидно, що це в ? Або що його немає в ?N LNLNL


5
Ви маєте на увазі прості шляхи? Не ясно, що це саме в цьому контексті.
Lance Fortnow

1
Хороший момент, я маю на увазі дійсно прості шляхи.
Бруно

Відповіді:


16

Схоже , ваша проблема в . Ось алгоритм.NL

По-перше, недетерміновано здогадується шлях від до t . Якщо ви здогадалися неправильно, відхиліть . Назвіть цей алгоритм A .stA

Розглянемо наступний недетермінований алгоритм , який визначає, чи є принаймні два шляхи. Давши графік і s , t , для всіх пар різних країв e , f відгадайте шлях від s до t, що включає e, але не f , а потім вгадайте шлях від s до t, що включає f, але не e . Якщо здогадки вірні, прийміть . Якщо для всіх варіантів e і f не відбувається прийняття , відхиліть . Примітка BBs,te,fstefstfeefB реалізується в недетермінованому просторі журналів.

Тепер множина - це безліч s - t графіків, що мають принаймні два шляхи від s до t . Оскільки N L = c o N L , доповнення B також знаходиться в N L , тобто ми можемо визначити, якщо s і t мають менше двох шляхів, у недетермінованому просторі журналів.L(B)ststNL=coNLBNLst

Остаточний алгоритм: "Виконати Якщо А приймає, то запустіть додаток B і виведіть його відповідь."AAB

Я не знаю посилання.

ОНОВЛЕННЯ: Якщо ви дійсно хочете посилання, перегляньте перший абзац розділу 3 цього документу . Але це, мабуть, лише одна з багатьох посилань, які цитують цей наслідок. Було б розумніше назвати результат "фольклором", а не цитувати папір, який трапляється згадувати.

ОНОВЛЕННЯ 2: Припустимо, ви хочете визначити, чи існує унікальний простий шлях. У такому випадку алгоритм не повинен змінюватися: якщо шлях взагалі є, то існує простий шлях. Я вважаю , що наступна модифікація буде працювати для алгоритму B .AB

Ми хочемо переписати алгоритм так, щоб він приймав, якщо є щонайменше два простих шляху.B

Спочатку розглянемо наступний поліноміально-часовий алгоритм проблеми. Знайдіть найкоротший шлях від s до t . Для кожного краю e в P перевірте, чи є інший шлях s - t , який не проходить через e . Якщо ви знайдете такий шлях, тоді прийміть . Якщо ви ніколи не знайдете іншого шляху, тоді відмовтесь . Оскільки P найкоротший, він не має циклу, і якщо є інший шлях, який не використовує деякий край P , то є інший шлях, який є простим і не використовує деякий край PPstePstePPP. (Цей алгоритм використовується для проблеми "другий найкоротший шлях".)

Ми реалізуємо цей алгоритм . Якби у нас був алгоритм N L для запиту ребер e на фіксованому шляху P , ми могли б реалізувати вищезазначене у недетермінованому просторі журналів: ітерація через усі ребра e в P , вгадайте шлях s - t і перевірте, що для кожного краю, відвіданого вздовж Таким чином, жодна з них не дорівнює e .NLNLePePste

Отже, нам потрібен "oracle oracle", алгоритм зі властивістю: заданий i = 1 , ... , n , у кожному обчислювальному шляху алгоритм або повідомляє i- й край на певному фіксованому s - t шляху, або відкинути . Ми можемо отримати оракул шляху, використовуючи N L = c o N L для виділення лексикографічно першого шляху.NLi=1,,nistNL=coNL

Ось ескіз оракула шляху.

Знайти , довжина найкоротшого шляху від S до т , намагаючись все до = 1 , ... , п і використовуючи N L = C ущільнювача N L .kstk=1,,nNL=coNL

Встановити змінні , x : = 1 , j : = k .u:=sx:=1j:=k

Для всіх сусідів з U в лексикографічному порядку,vu

Визначте, чи існує шлях від до t довжиною j - 1 (використовуючи результат N L = c o N L ). Точніше, запустіть недетермінований алгоритм для s - t підключення (довжини j - 1 ) та алгоритм його доповнення одночасно. Коли один з них приймає, перейдіть із його відповіддю (він повинен бути правильним; обидва не можуть прийняти). Якщо обидва відхилити, то відхиліть .vtj1NL=coNLstj1

Якщо шляху немає, переходите до наступного сусіда. Якщо ви виснажили всіх сусідів, тоді відмовтеся .

Якщо є шлях, то якщо , виведіть ( u , v ) як i- й край на шляху від s до t . В іншому випадку збільшення x , decrement j , встановіть u : = v , і знову запустіть цикл for, якщо v t .x=i(u,v)istxju:=vvt

Якщо після досягнення t виходу погано, я (заданий я був занадто великим).x<itii

Враховуючи , цей алгоритм або виводить i- й край на лексикографічно найкоротшому шляху P від s до t , або відхиляє.iiPst


Я думав про щось подібне, але він використовує лінійний простір. Дякую за вашу відповідь!
Бруно

5
Я згоден, це дійсно фольклор. Це безпосередній наслідок краху ієрархії. Крім того, проблема підрахунку в не # P-завершена. Це в # L, що в свою чергу знаходиться в N C 2NLNC2
V Vinay

2
Так, як я вже говорив вище, алгоритм не розрізняє прості шляхи та шляхи з циклами.
Ryan Williams

1
@V Vinay: У цій роботі автори посилаються на документ Валіана Складність проблем з перерахуванням та надійністю як доведення -комплектності проблеми. Я щойно перевірив папери Валіанта, і це проблема 14 (p414). Я щось нерозумію? Можливо, ви говорили про непрості шляхи, а складність в цьому випадку кардинально змінюється? Дякую! P
Бруно

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