Complejidad de la conectividad st única

11

Me gustaría saber si el siguiente problema se puede resolver en (espacio de registro no determinista):NL

Dado un grafo dirigido con dos distinguidos vértices y , es que hay un único camino de a en ?GststG

Creo que es probable que esté en ya que podemos decidir si hay una ruta - y si no existe esa ruta. Sin embargo, contar el número de tales caminos es -hard (Valiant, 1979).NLstP

Entonces mis preguntas: ¿Tiene referencias sobre esto? ¿Es obvio que está en ? ¿O que no está en ?NLNL

Bruno
fuente
55
¿Te refieres a senderos simples? No está claro, es lo mismo en este contexto.
Lance Fortnow
1
Buen punto, me refiero a senderos simples de hecho.
Bruno

Respuestas:

16

Parece que tu problema está en . Aquí hay un algoritmo.NL

En primer lugar, nondeterministically adivinar un camino de a . Si adivinas incorrectamente, rechaza . Llame a este algoritmo .t AstA

Considere el siguiente algoritmo no determinista , que determina si hay al menos dos rutas. Dado un gráfico , para todos los pares de aristas distintas , adivine una ruta de a que incluya pero no , luego adivine una ruta de a que incluya pero no . Si las conjeturas son correctas, acepte . Si no hay aceptación para todas las opciones de y , rechazar . Nota es implementable en espacio de registro no determinista.s , t e , f s t e f s t f e e f BBs,te,fstefstfeefB

Ahora, el conjunto es el conjunto de gráficos - con al menos dos rutas de a . Debido , el complemento de es también en , es decir, podemos determinar si y tienen menos de dos caminos, en logspace no determinista.s t s t N L = c o N L B N L s tL(B)ststNL=coNLBNLst

El algoritmo final es: "Ejecutar Si acepta, ejecute el complemento de y envíe su respuesta".A BAAB

No sé de una referencia.

ACTUALIZACIÓN: Si realmente desea una referencia, consulte el primer párrafo de la Sección 3 de este documento . Pero esta es probablemente solo una de las muchas referencias que citan esta consecuencia. Sería más razonable llamar al resultado "folklore" en lugar de citar un artículo que lo menciona.

ACTUALIZACIÓN 2: Supongamos que desea determinar si hay una ruta simple única. En ese caso, el algoritmo no tiene que cambiar: si hay una ruta, entonces hay una ruta simple. Creo que la siguiente modificación trabajará para el algoritmo .BAB

Queremos reescribir el algoritmo para que acepte si hay al menos dos rutas simples.B

Primero considere el siguiente algoritmo de tiempo polinómico para el problema. Encontrar un camino más corto desde a . Para cada borde en , verifique si hay otra ruta - que no pase por . Si encuentra ese camino, acepte . Si nunca encuentras otro camino, rechaza . Debido a que es el más corto, no tiene un ciclo, y si hay otra ruta que no usa algún borde de , entonces hay otra ruta que es simple y no usa algún borde des t e P s t e P P PPstePstePPP. (Este algoritmo se usa para el problema del "segundo camino más corto").

Implementaremos este algoritmo en . Si tuviéramos un algoritmo para consultar los bordes en una ruta fija , podríamos implementar lo anterior en un espacio de registro no determinista: iterando a través de todos los bordes en , adivine una ruta - y verifique eso para cada borde visitado en el camino , ninguno de ellos es igual a .NLNLePePste

Entonces, lo que necesitamos es un "oráculo de ruta", un algoritmo con la propiedad: dado , en cada ruta de cálculo, el algoritmo informa el borde en una ruta - fija particular , o rechazar . Podemos obtener un oráculo de ruta usando para aislar la primera ruta lexicográfica.NLi=1,,nistNL=coNL

Aquí hay un bosquejo del oráculo del camino.

Encuentre , la longitud del camino más corto de a , probando todos usando .kstk=1,,nNL=coNL

Establezca las variables , , .u:=sx:=1j:=k

Para todos los vecinos de en orden lexicográfico,vu

Determine si existe o no una ruta desde hasta de longitud (utilizando el resultado ). Más precisamente, ejecute el algoritmo no determinista para conectividad - (de longitud ) y el algoritmo para su complemento, simultáneamente. Cuando uno de ellos acepta, vaya con su respuesta (debe ser correcta; ambos no pueden aceptar). Si ambos rechazan, rechace .t j - 1 N L = c o N L s t j - 1vtj1NL=coNLstj1

Si no hay camino, continúe con el próximo vecino. Si has agotado a todos los vecinos, rechaza .

Si hay un camino, a continuación, si , la salida como el ésimo borde en el camino de a . De lo contrario, incremente , disminuya , establezca e inicie el ciclo for nuevamente si .( u , v ) i s t x j u : = v v tx=i(u,v)istxju:=vvt

Si después de alcanzar salida mal (lo dado era demasiado grande).t i ix<itii

Dado , este algoritmo da salida a ya sea el ésimo borde en el camino lexicográficamente más corto de a , o rechazos.i P s tiiPst

Ryan Williams
fuente
Pensé en algo similar pero usa un espacio lineal. ¡Gracias por tu respuesta!
Bruno
55
Estoy de acuerdo en que es realmente folklore. Es una consecuencia inmediata del colapso de la jerarquía . Además, el problema de conteo no está # P-completo. Está en #L, que a su vez está enN C 2NLNC2
V Vinay
2
Sí, como dije anteriormente, el algoritmo no distingue entre rutas simples y rutas con ciclos.
Ryan Williams
1
@ V Vinay: En este documento , los autores se refieren al artículo de Valiant La complejidad de los problemas de enumeración y confiabilidad como prueba de la -completitud del problema. Acabo de registrar el documento de Valiant y es el problema 14 (p414). ¿Estoy malinterpretando algo? ¿Quizás hablaste de caminos no simples y la complejidad cambia dramáticamente en este caso? ¡Gracias! P
Bruno
1
Por cierto, el comentario de Allender & Lange es suficiente para concluir directamente.
Bruno