Cómo encontrar los vértices en una ruta simple entre dos vértices dados en un gráfico dirigido

8

Dado un gráfico dirigido y dos vértices distintos, S y T, ¿existe un algoritmo de tiempo polinómico que encuentre cada vértice que esté en al menos un camino simple de S a T?

No es difícil encontrar todos los vértices que sean sucesores de S y predecesores de T, pero esto es solo un superconjunto del conjunto anterior. Por ejemplo, considere el siguiente gráfico: S -> a; a -> b; b -> c; b-> T; c -> a

Si bien a, byc son todos sucesores de S y predecesores de T, no existe una ruta simple de S a T que atraviese c (porque cada ruta de S a T que atraviesa c contiene dos veces ayb).

Un problema estrechamente relacionado es el siguiente: dado un gráfico dirigido y tres vértices distintos S y T e I, ¿existe un algoritmo de tiempo polinómico para decidir si existe un camino simple de S a T que atraviesa I.

Se puede usar un algoritmo de tiempo polinómico para este último problema para construir un algoritmo polinómico para el primero, ya que podemos aplicarlo sucesivamente reemplazando I por cada nodo en el gráfico (o de manera más eficiente a cada nodo que es a la vez un sucesor de S y un predecesor de T).

Henri
fuente

Respuestas:

3

Gracias por tus respuestas. Como foo maestro señalado , el segundo problema - dado un grafo dirigido y tres vértices distintos y , decidir si existe un camino simple de a pasando por - es de hecho NP-completo.s,tyostyo

Del artículo The Directed Subgraph Homeomorphism Problem de Steven Fortune, John E. Hopcroft y James Wyllie, queda claro que el gráfico de patrón es uno para el cual el problema de homeomorfismo del subgrafo fijo fijo es NP-completo ya que Es un árbol de profundidad dos.syot

Aquí hay algunas definiciones de este documento:

El problema del homeomorfismo del subgrafo es determinar: si un gráfico de patrón p es homeomorfo a un subgráfico de un gráfico de entrada G. El homeomorfismo asigna nodos de P a nodos de G y arcos de P a senderos simples en G. Los gráficos P y G son ya sea ambos dirigidos o ambos no dirigidos. Las rutas en G que corresponden a los arcos en P deben ser pares por nodo. La asignación de nodos en P a nodos en G puede especificarse o dejarse arbitraria. Este problema puede verse como un problema generalizado de búsqueda de ruta. Por ejemplo, si el gráfico de patrón consta de dos arcos disjuntos y se proporciona el mapeo de nodos, entonces el problema es equivalente a encontrar un par de caminos disjuntos entre los vértices especificados en el gráfico de entrada.

Básicamente, solo los gráficos de patrones que son árboles de profundidad uno y sus gráficos inversos (posiblemente con arcos de bucles en la raíz) se pueden resolver en tiempo polinómico.

Sea C la colección de todos los gráficos dirigidos con un nodo distinguido llamado raíz que posee la propiedad de que la raíz es la cabeza de cada arco o la raíz es la cola de cada arco. Tenga en cuenta que la raíz puede ser la cabeza y la cola de algunos arcos y, por lo tanto, se permiten bucles en la raíz. De manera equivalente, un gráfico está en C si, cuando se eliminan todos los bucles en la raíz y se combinan múltiples arcos entre pares de nodos en arcos individuales, el gráfico resultante es un árbol de altura como máximo.

[...]

A continuación mostramos que para cada patrón P que no está en C, el problema de homeomorfismo del subgrafo fijo con el patrón P es NP-completo.

Todavía no he leído la prueba, así que me detendré aquí.

También hay una estrecha conexión con el problema que acabo de mencionar y el problema de las dos rutas disjuntas como lo señaló uno de mis colegas. El problema de las dos rutas dijsoint es:

Dado un gráfico dirigido y cuatro vértices distintos , decida si existen dos nodos por pares que rutas simples de a y de a .s1,t1,s2,t2s1t2s2t2

Es bien sabido que este problema para los gráficos dirigidos es NP-completo. Sin embargo, hay una transformación simple del problema de las dos rutas disjuntas al problema . Para hacer eso, necesitamos agregar un nodo adicional y los dos bordes adicionales e .syotyot1yoyos2

Si hubiera un algoritmo polinomial para resolver el problema , podríamos usarlo para resolver el problema de las dos rutas disjuntas en tiempo polinomial con la transformación simple anterior y resolver así el problema .syotsyot

Henri
fuente
Sí, es un problema de 2 caminos disjuntos, por lo que es NP-difícil en los dígrafos generales, pero puede resolverlo en DAG, Dígrafos Planos, ..., finalmente su respuesta es correcta, por qué no lo hará como respuesta aceptada.
-1

Este es un problema NP-difícil.

@article{DBLP:journals/tcs/FortuneHW80,
  author    = {Steven Fortune and
               John E. Hopcroft and
               James Wyllie},
  title     = {The Directed Subgraph Homeomorphism Problem},
  journal   = {Theor. Comput. Sci.},
  volume    = {10},
  year      = {1980},
  pages     = {111-121},
  ee        = {http://dx.doi.org/10.1016/0304-3975(80)90009-2},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}
maestro foo
fuente
2
No es del todo obvio al mirar la sección de resumen e introducción de este artículo cómo se relaciona con esta pregunta. ¿Podrías por favor elaborar?
Niel de Beaudrap