Comment trouver les sommets sur un chemin simple entre deux sommets donnés dans un graphe orienté

8

Étant donné un graphe orienté et deux sommets distincts S et T, existe-t-il un algorithme à temps polynomial qui trouve chaque sommet qui se trouve sur au moins un chemin simple de S à T?

Il n'est pas difficile de trouver tous les sommets qui sont à la fois successeurs de S et prédécesseurs de T, mais ce n'est qu'un surensemble de l'ensemble ci-dessus. Par exemple, considérons le graphique suivant: S -> a; a -> b; b -> c; b-> T; c -> a

Alors que a, b et c sont tous des successeurs de S et des prédécesseurs de T, il n'y a pas de chemin simple de S à T passant par c (car chaque chemin de S à T passant par c contient deux fois a et b).

Un problème étroitement lié est le suivant: étant donné un graphe orienté et trois sommets distincts S et T et I, existe-t-il un algorithme polynomial pour décider s'il existe un chemin simple de S à T passant par I.

Un algorithme polynomial à ce dernier problème peut être utilisé pour construire un algorithme polynomial au premier car nous pouvons l'appliquer successivement en remplaçant I par chaque nœud du graphe (ou plus efficacement à chaque nœud qui est à la fois un successeur de S et un prédécesseur de T).

Henri
la source

Réponses:

3

Merci pour vos réponses. Comme l'a souligné maître foo , le deuxième problème - étant donné un graphe orienté et trois sommets distincts et , décide s'il existe un chemin simple de à passant par - est en effet NP-complet.s,tisti

D'après l'article The Directed Subgraph Homeomorphism Problem de Steven Fortune, John E. Hopcroft et James Wyllie, il est clair que le graphe de modèle est un graphe pour lequel le problème fixe d'homéomorphisme de sous-graphe orienté est NP-complet car il est un arbre de profondeur deux.sit

Voici quelques définitions de cet article:

L'homéomorphisme du sous-graphe consiste à déterminer: si un graphe de modèle p est homéomorphe à un sous-graphe d'un graphe d'entrée G. L'homéomorphisme mappe les nœuds de P aux nœuds de G et les arcs de P à des chemins simples dans G. Les graphes P et G sont soit dirigés soit non dirigés. Les chemins en G correspondant aux arcs en P doivent être deux à deux nœuds disjoints. Le mappage des nœuds de P aux nœuds de G peut être spécifié ou laissé arbitraire. Ce problème peut être considéré comme un problème de recherche de chemin généralisé. Par exemple, si le graphe de motif se compose de deux arcs disjoints et que le mappage de nœuds est donné, le problème équivaut à trouver une paire de chemins disjoints entre des sommets spécifiés dans le graphe d'entrée.

Fondamentalement, seuls les graphiques de modèle qui sont des arbres de profondeur un et leurs graphiques inversés (avec éventuellement des arcs en boucle à la racine) peuvent être résolus en temps polynomial.

Soit C la collection de tous les graphes dirigés avec un nœud distinct appelé racine possédant la propriété que la racine est la tête de chaque arc ou la racine est la queue de chaque arc. Notez que la racine peut être à la fois la tête et la queue de certains arcs et que les boucles à la racine sont donc autorisées. De manière équivalente, un graphe est en C si, lorsque toutes les boucles à la racine sont supprimées et que plusieurs arcs entre paires de nœuds sont fusionnés en arcs uniques, le graphe résultant est un arbre de hauteur au plus un.

[...]

Ensuite, nous montrons que pour chaque motif P qui n'est pas en C, le problème d'homéomorphisme sous-graphique fixe avec le motif P est NP-complet.

Je n'ai pas encore lu la preuve donc je m'arrête ici.

Il y a aussi un lien étroit entre le problème que je viens de mentionner et le problème des deux chemins disjoints comme l'a souligné l'un de mes collègues. Le problème des deux chemins dijsoint est:

Etant donné un graphe orienté et quatre sommets distincts , décidez s'il existe deux nœuds par paires des chemins simples de à et de à .s1,t1,s2,t2s1t2s2t2

Ce problème pour les graphes dirigés est bien connu pour être NP-complet. Cependant, il y a une transformation simple du problème des deux chemins disjoints au problème . Pour ce faire, nous devons ajouter un nœud supplémentaire et les deux bords supplémentaires et .sitit1iis2

S'il y avait un algorithme polynomial pour résoudre le problème , nous pourrions l'utiliser pour résoudre le problème des deux chemins disjoints en temps polynomial avec la transformation simple ci-dessus et ainsi résoudre le problème .sitsit

Henri
la source
Oui, c'est un problème de chemin 2 disjoint, donc c'est NP-difficile dans les digraphes généraux, mais vous pouvez le résoudre dans les DAG, les digraphes planaires, ..., enfin votre réponse est correcte pourquoi vous ne le ferez pas comme une réponse acceptée.
-1

C'est un problème 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}
}
maître foo
la source
2
Il n'est pas du tout évident en regardant la section abstraite et introductive de cet article comment il se rapporte à cette question. Pourriez-vous s'il vous plaît développer?
Niel de Beaudrap