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
vtj−1NL=coNLstj−1
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:=vv≠t
x<itii
iiPst