Come trovare i vertici su un percorso semplice tra due vertici dati in un grafico diretto


8

Dato un grafico diretto e due vertici distinti S e T, esiste un algoritmo del tempo polinomiale che trova ogni vertice che si trova su almeno un semplice percorso da S a T?

Non è difficile trovare tutti i vertici che sono sia successori di S che predecessori di T, ma questo è solo un superset dell'insieme sopra. Ad esempio, considera il seguente grafico: S -> a; a -> b; b -> c; b-> T; c -> a

Mentre a, bec sono tutti successori di S e predecessori di T, non esiste un semplice percorso da S a T che passa attraverso c (perché ogni percorso da S a T che passa attraverso c contiene due volte aeb).

Un problema strettamente correlato è il seguente: Dato un grafico diretto e tre vertici distinti S e T e I, esiste un algoritmo a tempo polinomiale per decidere se esiste un semplice percorso da S a T che attraversa I.

Un algoritmo a tempo polinomiale a quest'ultimo problema può essere utilizzato per costruire un algoritmo polinomiale al primo poiché possiamo applicarlo in successione sostituendo I per ogni nodo nel grafico (o in modo più efficiente per ogni nodo che è al tempo stesso successore di S e un predecessore di T).

Risposte:


3

Grazie per le tue risposte Come ha sottolineato il maestro foo , il secondo problema - dato un grafico diretto e tre vertici distintis,t e i, decidere se esiste un percorso semplice da s per t andare attraverso i - è davvero NP-completo.

Dal documento Il Directed sottografo omeomorfismo Problema da Steven Fortune, John E. Hopcroft e James Wyllie, è chiaro che il grafico modellosit è uno per il quale il problema dell'omeomorfismo del sottografo diretto fisso è NP-completo poiché è un albero di profondità due.

Ecco alcune definizioni di questo documento:

Il problema dell'omeomorfismo del sottografo è determinare: se un grafico di modello p è omeomorfo a un sottografo di un grafico di input G. L'omeomorfismo mappa i nodi di P con nodi di G e gli archi di P con percorsi semplici in G. I grafici P e G sono entrambi diretti o entrambi non diretti. I percorsi in G corrispondenti agli archi in P devono essere congiunti nodo-disgiunti. La mappatura dei nodi in P ai nodi in G può essere specificata o lasciata arbitraria. Questo problema può essere visto come un problema di ricerca di percorsi generalizzato. Ad esempio, se il grafico del modello è costituito da due archi disgiunti e viene fornita la mappatura del nodo, il problema equivale a trovare una coppia disgiunta di percorsi tra vertici specificati nel grafico di input.

Fondamentalmente, solo i grafici di pattern che sono alberi di profondità uno e i loro grafici inversi (con possibilmente archi ad anello sulla radice) possono essere risolti in tempo polinomiale.

Sia C la raccolta di tutti i grafici diretti con un nodo distinto chiamato radice che possiede la proprietà che o la radice è la testa di ogni arco o la radice è la coda di ogni arco. Si noti che la radice può essere sia la testa che la coda di alcuni archi e quindi sono consentiti anelli alla radice. Equivalentemente, un grafico è in C se, quando tutti i loop nella radice vengono eliminati e più archi tra coppie di nodi vengono uniti in archi singoli, il grafico risultante è un albero di altezza al massimo uno.

[...]

Successivamente mostriamo che per ogni modello P non in C il problema dell'omeomorfismo del sottografo fisso con il modello P è NP-completo.

Non ho ancora letto la prova, quindi mi fermo qui.

C'è anche una stretta connessione con il problema che ho appena menzionato e il problema dei due percorsi disgiunti, come sottolineato da uno dei miei colleghi. Il problema dei due percorsi dijsoint è:

Dato un grafico diretto e quattro vertici distinti s1,t1,s2,t2, decidere se esistono due nodi a coppie disgiunge percorsi semplici s1 per t2 e da s2 per t2.

Questo problema per i grafici diretti è noto per essere NP-completo. Tuttavia, esiste una semplice trasformazione dal problema dei due percorsi disgiunti alsitproblema. Per fare ciò, dobbiamo aggiungere un nodo extrai e i due bordi extra t1i e is2.

Se esistesse un algoritmo polinomiale per risolvere il sit problema, potremmo usarlo per risolvere il problema dei due percorsi disgiunti in tempo polinomiale con la semplice trasformazione sopra e quindi risolvere il sit problema.


Sì, è un problema con 2 percorsi disgiunti, quindi è NP-difficile in digrafi generali, ma puoi risolverlo in DAG, Digar planari, ..., finalmente la tua risposta è corretta perché non la fai come risposta accettata.

-1

Questo è un problema NP-difficile.

@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}
}

2
Non è affatto ovvio osservando la sezione astratta e introduttiva di questo articolo come si collega a questa domanda. Potresti per favore elaborare?
Niel de Beaudrap,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.