Si l'on appelle , l'ensemble des problèmes de décision qui peuvent être décidés par des machines de Turing non déterministes utilisant un espace pour une fonction en la taille de l'entrée , alors on définit [1].
Un problème A est NL-dur si tout problème de NL se réduit en espace logarithmique à A. Un problème est NL-complet s'il est dans NL et NL-dur.
Exemples de problèmes NL-complets
Le problème de l'accessibilité (aussi appelé s-t-accessibilité) qui consiste, étant donné un graphe orienté G, et deux sommets s et t de G, à déterminer s'il y a un chemin de s à t dans G, est NL-complet. Dans ce problème, le graphe est représenté explicitement, avec une matrice d'adjacence ou avec des listes d'adjacences.
Voici d'autres problèmes de décision NL-complets :
décider si le langage d'un automate fini déterministe (avec un alphabet non unaire) est vide[3]. Si l'alphabet est unaire, le problème devient L-complet[3].
décider si le langage d'un automate fini déterministe est le langage de tous les mots[3] (attention, si l'automate fini est non-déterministe, le problème devient PSPACE-complet[5]).
En 1976, Neil D. Jones, Y. Edmund Lien et William T. Laaser propose des démonstrations de NL-complétude pour plusieurs problèmes[7], à l'instar des problèmes de Karp pour la NP-complétude.
Relations avec les autres classes
La classe NL est une classe relativement petite parmi les classes usuelles. On a notamment NLP.
Comme pour toutes les classes, la variante non déterministe contient la version déterministe, c'est-à-dire que LNL. Au , l'autre sens NLL est un problème ouvert. Un autre résultat est donné par le théorème de Savitch[8] :
Théorème d'Immerman-Szelepcsényi — , pour toute fonction , en particulier NL=co-NL
La classe NL est incluse dans NC, même plus précisément dans NC2[11]. Pour le démontrer, on construit un circuit de taille polynomiale et de profondeur polylogarithmique pour le problème d'accessibilité qui est NL-complet. On montre aussi que la classe NC est stable par réduction logarithmique.
Autres définitions
Définition par certificat
Une définition par certificat est aussi possible, comme pour NP. Les contraintes à ajouter sont les suivantes : le vérificateur est unidirectionnel, c'est-à-dire que la tête de lecture ne peut pas revenir en arrière, et il travaille en espace logarithmique[12].
↑Sylvain Perifel, Complexité algorithmique, Ellipses, , 432 p. (ISBN9782729886929, lire en ligne), chap. 4.3 (« Considérations de base sur l’espace : comparaison avec les classes en temps »), p. 109
↑Alfred V. Aho et John E. Hopcroft, The Design and Analysis of Computer Algorithms, Addison-Wesley Longman Publishing Co., Inc., (ISBN0201000296, lire en ligne)
↑(en) A. Prasad Sistla, Moshe Y. Vardi et Pierre Wolper, « The complementation problem for Büchi automata with applications to temporal logic », Theoretical Computer Science, vol. 49, no 2, , p. 217–237 (ISSN0304-3975, DOI10.1016/0304-3975(87)90008-9, lire en ligne, consulté le ) :
« Theorem 2.9 The nonemptiness problem for Büchi automata is logspace complete for
NLOGSPACE. »
↑(en) Neil D. Jones, Y. Edmund Lien et William T. Laaser, « New problems complete for nondeterministic log space », Mathematical Systems Theory, vol. 10, no 1, , p. 1–17 (ISSN0025-5661 et 1433-0490, DOI10.1007/bf01683259, lire en ligne, consulté le )
↑Neil. Immerman, « Nondeterministic Space is Closed under Complementation », SIAM Journal on Computing, vol. 17, no 5, , p. 935–938 (ISSN0097-5397, DOI10.1137/0217058, lire en ligne, consulté le )
↑(en) Róbert Szelepcsényi, « The method of forced enumeration for nondeterministic automata », Acta Informatica, vol. 26, no 3, , p. 279–284 (ISSN1432-0525, DOI10.1007/BF00299636, lire en ligne, consulté le )