Je voudrais savoir si le problème suivant peut être résolu dans (espace de log non déterministe):
Étant donné un graphe orienté avec deux sommets distincts s et t , existe- t -il un chemin unique de s à t dans G ?
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).
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 ?
Réponses:
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 .s t A
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 BB s,t e,f s t e f s t f e e f B 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) s t s t NL=coNL B NL s t
L'algorithme final est: "Exécuter Si A accepte, alors exécutez le complément de B et sortez sa réponse."A A B
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 .A B
Nous voulons réécrire l'algorithme pour qu'il accepte s'il y a au moins deux chemins simples.B
Voici un croquis de l'oracle du chemin.
la source