Como encontrar os vértices no caminho simples entre dois vértices fornecidos em um gráfico direcionado

8

Dado um gráfico direcionado e dois vértices distintos S e T, existe um algoritmo de tempo polinomial que encontra todos os vértices que estão em pelo menos um caminho simples de S para T?

Não é difícil encontrar todos os vértices que são sucessores de S e predecessores de T, mas este é apenas um superconjunto do conjunto acima. Por exemplo, considere o seguinte gráfico: S -> a; a -> b; b -> c; b-> T; c -> a

Enquanto a, bec são todos sucessores de S e predecessores de T, não há um caminho simples de S para T passando por c (porque todo caminho de S para T passando por c contém duas vezes aeb).

Um problema intimamente relacionado é o seguinte: Dado um gráfico direcionado e três vértices distintos S, T e I, existe um algoritmo de tempo polinomial para decidir se existe um caminho simples de S para T passando por I.

Um algoritmo de tempo polinomial para esse último problema pode ser usado para criar um algoritmo polinomial para o primeiro, uma vez que podemos aplicá-lo com sucesso substituindo I por cada nó no gráfico (ou com mais eficiência para cada nó que é um sucessor de S e um predecessor de T).

henri
fonte

Respostas:

3

Obrigado por suas respostas. Como mestre foo apontou , o segundo problema - dado um gráfico direcionado e três vértices distintoss,t e Eu, decida se existe um caminho simples de s para t passando por Eu - é realmente NP-completo.

Do artigo O Problema do Homeomorfismo do Subgráfico Dirigido de Steven Fortune, John E. Hopcroft e James Wyllie, é claro que o gráfico de padrõessEut é aquele para o qual o problema fixo de homeomorfismo do subgrafo direcionado é NP-completo, pois é uma árvore de profundidade dois.

Aqui estão algumas definições deste artigo:

O problema do homeomorfismo do subgráfico é determinar: se um gráfico padrão p é homeomórfico para um subgrafo de um gráfico de entrada G. O homeomorfismo mapeia nós de P para nós de G e arcos de P para caminhos simples em G. Os gráficos P e G são direcionados ou não direcionados. Os caminhos em G correspondentes aos arcos em P devem ser separados por pares. O mapeamento de nós em P para nós em G pode ser especificado ou deixado arbitrário. Esse problema pode ser visto como um problema generalizado de localização de caminhos. Por exemplo, se o gráfico padrão consiste em dois arcos separados e o mapeamento do nó é fornecido, o problema é equivalente a encontrar um par de caminhos separados entre os vértices especificados no gráfico de entrada.

Basicamente, apenas os gráficos de padrões que são árvores de profundidade um e seus gráficos reversos (com possíveis arcos de loop na raiz) podem ser resolvidos em tempo polinomial.

Seja C a coleção de todos os gráficos direcionados com um nó distinto chamado raiz, possuindo a propriedade de que a raiz é a cabeça de cada arco ou a raiz é a cauda de cada arco. Observe que a raiz pode ser a cabeça e a cauda de alguns arcos e, portanto, são permitidos loops na raiz. De maneira equivalente, um gráfico está em C se, quando todos os loops na raiz são excluídos e vários arcos entre pares de nós são mesclados em arcos únicos, o gráfico resultante é uma árvore de altura no máximo um.

[...]

A seguir, mostramos que para cada padrão P que não está em C, o problema fixo de homeomorfismo do subgrafo com o padrão P é NP completo.

Ainda não li a prova, então vou parar por aqui.

Há também uma conexão estreita com o problema que acabei de mencionar e o problema dos dois caminhos separados, conforme apontado por um dos meus colegas. O problema dos dois caminhos dijsoint é:

Dado um gráfico direcionado e quatro vértices distintos s1,t1,s2,t2, decida se existem dois nós em pares que separam caminhos simples de s1 para t2 e de s2 para t2.

Este problema para gráficos direcionados é conhecido por ser NP-completo. No entanto, há uma transformação simples do problema dos dois caminhos disjuntos para osEutproblema. Para fazer isso, precisamos adicionar um nó extraEu e as duas arestas extras t1Eu e Eus2.

Se houvesse um algoritmo polinomial para resolver a sEut problema, poderíamos usá-lo para resolver o problema de dois caminhos disjuntos em tempo polinomial com a simples transformação acima e, assim, resolver o problema. sEut problema.

henri
fonte
Sim, é um problema de 2 caminhos disjuntos, por isso é difícil para NP em digrafos em geral, mas você pode resolvê-lo em DAGs, dígrafos planares, ... finalmente a sua resposta está correta porque você não a aceita como resposta.
-1

Este é um problema difícil de NP.

@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}
}
mestre foo
fonte
2
Não é de todo óbvio, olhando a seção abstrata e introdutória deste artigo, como ela se relaciona com essa questão. Você poderia por favor elaborar?
Niel de Beaudrap 28/09/12