Complexité d'une connectivité st unique

11

Je voudrais savoir si le problème suivant peut être résolu dans (espace de log non déterministe):NL

Étant donné un graphe orienté avec deux sommets distincts s et t , existe- t -il un chemin unique de s à t dans G ?GststG

Je pense qu'il est susceptible d'être dans car nous pouvons décider à la fois s'il y a un chemin s - t et s'il n'y en a pas. Pourtant, compter le nombre de ces chemins est P -hard (Valiant, 1979).NLstP

Alors mes questions: avez-vous des références à ce sujet? Est-il évident que c'est en ? Ou que ce n'est pas en N L ?NLNL

Bruno
la source
5
Voulez-vous dire des chemins simples? Pas clair, c'est la même chose dans ce contexte.
Lance Fortnow
1
Bon point, je veux dire des chemins simples en effet.
Bruno

Réponses:

16

Il semble que votre problème est en . Voici un algorithme.NL

Premièrement, devinez de façon non déterministe un chemin de à t . Si vous devinez incorrectement, rejetez . Appelez cet algorithme A .stA

Considérons l'algorithme non déterministe , qui détermine s'il y a au moins deux chemins. Étant donné un graphique et s , t , pour toutes les paires d'arêtes distinctes e , f , devinez un chemin de s à t qui inclut e mais pas f , puis devinez un chemin de s à t qui comprend f mais pas e . Si les suppositions sont correctes, acceptez . Si aucune acceptation ne se produit pour tous les choix de e et f , rejetez . Remarque BBs,te,fstefstfeefB est implémentable dans un espace de log non déterministe.

Maintenant, l'ensemble est l'ensemble des graphes s - t avec au moins deux chemins de s à t . Parce que N L = c o N L , le complément de B est également dans N L , c'est-à-dire que nous pouvons déterminer si s et t ont moins de deux chemins, dans un espace log non déterministe.L(B)ststNL=coNLBNLst

L'algorithme final est: "Exécuter Si A accepte, alors exécutez le complément de B et sortez sa réponse."AAB

Je ne connais pas de référence.

MISE À JOUR: Si vous voulez vraiment une référence, consultez le premier paragraphe de la section 3 de ce document . Mais ce n'est probablement qu'une des nombreuses références qui citent cette conséquence. Il serait plus raisonnable d'appeler le résultat «folklore» plutôt que de citer un article qui arrive à le mentionner.

MISE À JOUR 2: Supposons que vous souhaitiez déterminer s'il existe un chemin simple unique. Dans ce cas, l'algorithme n'a pas à changer: s'il y a un chemin, alors il y a un chemin simple. Je crois que la modification suivante fonctionnera pour l' algorithme B .AB

Nous voulons réécrire l'algorithme pour qu'il accepte s'il y a au moins deux chemins simples.B

PstePstePPP. (Cet algorithme est utilisé pour le problème du "deuxième chemin le plus court".)

NLNLePePste

NLi=1,,nistNL=coNL

Voici un croquis de l'oracle du chemin.

kstk=1,,nNL=coNL

u:=sx:=1j:=k

vu

vtj1NL=coNLstj1

S'il n'y a pas de chemin, passez au prochain voisin. Si vous avez épuisé tous les voisins, refusez .

x=i(u,v)istxju:=vvt

x<itii

iiPst

Ryan Williams
la source
J'ai pensé à quelque chose de similaire mais il utilise un espace linéaire. Merci pour votre réponse!
Bruno
5
NLNC2
2
Oui, comme je l'ai dit plus haut, l'algorithme ne fait pas de distinction entre les chemins simples et les chemins avec cycles.
Ryan Williams
1
P
1
Au fait, le commentaire d'Allender & Lange suffit pour conclure directement.
Bruno