Caminho simples no dag com bordas para trás

10

Qual é a complexidade do seguinte problema ( P? NP-hard?):

Entrada: um gráfico acíclico direcionado , um conjunto de arestas inversas E V × V e dois nós distintos s e t .D=(V,E)EV×Vst

Pergunta: Seja denotar o gráfico formado adicionando a D as arestas de E . Existe um caminho simples de s para t em G que usa pelo menos uma borda para trás?G=(V,EE)DEstG

Nota: 0) Um caminho simples é um caminho no qual nenhum vértice é repetido. Uma aresta traseira é uma aresta que contradiz a ordem parcial implícita no DAG. 1) o problema é fácil se solicitarmos o caminho simples para usar exatamente uma aresta inversa (ou um número constante) por redução trivial ao problema do caminho separado, que admite uma solução simples do PTime nos DAGs ( Perl e Shiloach, JACM'78 ) 2) o problema do caminho separado é NP-completo em gráficos gerais ( Fortune et al., TCS'80 ).

Joseph Stack
fonte
11
e1,...,emEstGi=(V,Ej=1i{ej})i=1,2,...,mEG=(V,E)st
11
EEE
O que é muito irritante para o seu problema é que o seguinte problema relacionado é facilmente considerado difícil para o NP: dado um gráfico e dois pares de vértices (s, t), (s ', t'), para determinar se há desmonte do vértice caminhos de s para te de s 'para t', mesmo quando t = s ', e mesmo em gráficos que são a união de dois DAGs. Ainda assim, isso não parece ajudar na pergunta que você faz.
a3nm
11
O problema de caminhos disjuntos é W [1] - difícil mesmo nos DAGs, e é um dever de casa mostrar que é NP-Duro nos DAGs. O algoritmo Shiloach é para o problema de dois caminhos disjuntos e, de maneira semelhante, funciona para o problema de caminhos disjuntos em DAGs, mas leva tempo n ^ k. Mas pelo menos admite um algoritmo XP para o seu problema.
Saeed