AccueilđŸ‡«đŸ‡·Chercher

L (complexité)

En informatique thĂ©orique, et notamment dans la thĂ©orie de la complexitĂ©, la classe L est la classe des problĂšmes de dĂ©cision dĂ©cidĂ©s par une machine de Turing dĂ©terministe qui utilise un espace de taille logarithmique en fonction de la taille de l'entrĂ©e[1] - [2]. Pour ĂȘtre plus prĂ©cis, l'exigence sur l'espace de taille logarithmique se rĂ©fĂšre Ă  l'espace supplĂ©mentaire utilisable. Elle est aussi parfois notĂ©e LOGSPACE.

Intuitivement, cette classe contient les problÚmes que l'on peut décider avec un nombre constant de pointeurs[2] sur des cases mémoires de l'entrée du problÚme et un nombre constant de données supplémentaires (des compteurs dont les valeurs sont entre 0 et une grandeur polynomiale en la taille de l'entrée, des booléens, etc.).

DĂ©finition formelle

Si l'on appelle l'ensemble de tous les problÚmes qui sont décidés par des machines de Turing déterministes utilisant un espace (en plus de l'entrée) pour une fonction en la taille de l'entrée , alors on peut définir L formellement par :

Exemples de problĂšmes

Exemples de langages

Le langage est dans L[3]. Voici un algorithme qui décide en espace logarithmique :

procedure M(w)
 si w vide
   accepter
 i = 0
 tant que w[i] == 0
     i := i+1
 compteurzero := i
 tant que w[i] == 1
     i := i+1
 si w[i] != ' ' (différent de la fin de mot)
     refuser
 si compteurzero == (i - compteurzero)
     accepter
 sinon
     refuser

Le mot w n'est pas modifié : c'est l'entrée et elle n'est pas comptabilisée dans le calcul de la mémoire utilisée. On ne compte que la mémoire supplémentaire, à savoir, les variables i et compteurzero qui sont des entiers positifs bornées par |w| et que l'on peut coder en espace logarithmique en |w|.

Le langage des mots généré par la grammaire algébrique suivante est dans L : S --> (S) | SS | Δ[4].

Multiplication

La reprĂ©sentation binaire de l'entier est notĂ©e dans cette section. Le langage est dans L[5]. L'algorithme suivant reconnait en utilisant un espace en , oĂč est la taille de son entrĂ©e. L'algorithme prend en entrĂ©e trois entiers n, m et p vĂ©rifie que la multiplication de n par m vaut bien p. Il calcule Ă  chaque itĂ©ration le ie bit du rĂ©sultat de la multiplication et le compare au ie bit de p.

Les procédures suivantes sont utilisées dans la description de l'algorithme :

  • incrĂ©menter(x), incrĂ©mente la variable x ;
  • est_un(x, i), indique si le ie bit de x est non nul, si i est plus grand que la taille de x le bit est considĂ©rĂ© comme nul ;
  • diviser_par_deux(x), remplace x par le quotient de sa division euclidienne par 2 ; cette opĂ©ration peut ĂȘtre implĂ©mentĂ©e comme un dĂ©calage des bits de x de un vers les bits de poids faibles.
   procedure verifierMultiplication(n, m, p)
       retenue = 0
       i = 0
       tant que i < max(|n| + |m| - 1, |p|)
           j = 0
           tant que j < i
               k = 0
               tant que k + j <= i
                   si est_un(n, j) et est_un(m, k)
                       incrémenter(retenue)
                   k := k + 1
               si p[i] != retenue[0]
                   rejeter
               diviser_par_deux(retenue)
               j := j + 1
           i := i + 1
       accepter

La valeur des compteurs i, j et k utilisĂ©s ne dĂ©passe pas la taille de l'entrĂ©e et peuvent donc ĂȘtre codĂ©s en espace logarithmique en la taille de l'entrĂ©e. Les procĂ©dures introduites et les comparaisons utilisent au plus un espace logarithmique en la taille de l'entrĂ©e. Enfin, la valeur de la variable retenue ne peut pas dĂ©passer , elle peut donc ĂȘtre codĂ©e sur un espace en .

Relations avec les autres classes de complexité

On connait les inclusions suivantes :

NC1 ⊆ L ⊆ NL ⊆ AC1 ⊆ NC ⊆ P ⊆ NP ⊆ PSPACE

On sait aussi que l'inclusion de L dans PSPACE est stricte, donc l'une des inclusions ci-dessus est stricte. Il n'est pas impossible qu'elles le soient toutes.

Classe SL et problÚme d'accessibilité dans un graphe non orienté

Lewis et Christos Papadimitriou ont défini en 1982 la variante "symétrique" de L : la classe SL (pour symmetric log-space en anglais). La définition originale utilise la notion de machine de Turing symétrique au lieu des machines de Turing déterministes classiques. De maniÚre équivalente, SL est la classe des problÚmes décidés par une machine de Turing non-déterministe en espace logarithmique, avec la contrainte de symétrie suivante :

  • Si la machine peut effectuer une transition d'une configuration A vers une configuration B, alors la machine peut aussi effectuer une transition de la configuration B vers la configuration A.

Ainsi, la classe SL est entre L et NL. Lewis et Papadimitriou montrĂšrent que le problĂšme d'accessibilitĂ© dans un graphe non orientĂ© est SL-complet (pour les rĂ©ductions logarithmiques). Ce problĂšme d'accessibilitĂ© prend en entrĂ©e un graphe non orientĂ©, un sommet s et un sommet t et dĂ©termine s'il existe un chemin d'un sommet donnĂ© s Ă  un sommet donnĂ© t (Ă  noter que la version du problĂšme d’accessibilitĂ© pour les graphes orientĂ©s est NL-complĂšte).

En 2004, Omer Reingold montre que le problÚme d'accessibilité dans un graphe non orienté est décidé en espace logarithmique sur une machine déterministe, et donc que L=SL[6] - [7]. La démonstration de Reingold utilise la notion de graphes expanseurs. Ce résultat lui a valu le prix Gödel en 2009.

Notes et références

  1. Garey et Johnson 1979, p. 177.
  2. Sipser 1997, Definition 8.12, p. 295.
  3. Michael Sipser, Introduction to the Theory of Computation, International Thomson Publishing, , 396 p. (ISBN 0-534-94728-X, lire en ligne), p. 349, Example 8.18
  4. (en) Dexter C. Kozen, Theory of Computation, Homework 3. Ex. 1. p. 277
  5. Michael Sipser, Introduction to the Theory of Computation, International Thomson Publishing, , 396 p. (ISBN 0-534-94728-X, lire en ligne), p. 359, Ex. 8.20
  6. Omer Reingold, Salil Vadhan et Avi Wigderson, « Entropy waves, the zig-zag graph product, and new constant-degree expanders », Annals of Mathematics, vol. 155, no 1,‎ , p. 157–187 (DOI 10.2307/3062153, JSTOR 3062153, MR 1888797, lire en ligne)
  7. Omer Reingold, « Undirected connectivity in log-space », Journal of the ACM, vol. 55, no 4,‎ , p. 1–24 (lire en ligne)

Bibliographie

  • (en) Sanjeev Arora et Boaz Barak, Computational Complexity : A Modern Approach, Cambridge University Press, (ISBN 0-521-42426-7), chap. 1 (« The computational model —and why it doesn’t matter »)
  • Omer Reingold, « Undirected ST-connectivity in Log-Space », Electronic Colloquium on Computational Complexity, no 94,‎ (lire en ligne). Version Ă©lectronique.
  • Omer Reingold, « Undirected connectivity in log-space », Journal of the ACM, vol. 55, no 4,‎ , p. 1–24 (DOI 10.1145/1391289.1391291, MR 2445014). Version journal.
  • (en) M.R. Garey et D.S. Johnson, Computers and intractability : a guide to the theory of NP-completeness, New York, W.H. Freeman, , 338 p. (ISBN 0-7167-1045-5), Section 7.5: Logarithmic Space, pp. 177–181
  • (en) Christos Papadimitriou, Computational Complexity, Reading (Mass), Addison Wesley, , 1st Ă©d., 523 p. (ISBN 0-201-53082-1), Chapter 16: Logarithmic space, pp. 395–408
  • (en) Michael Sipser, Introduction to the Theory of Computation, PWS Publishing, , 396 p. (ISBN 0-534-94728-X), Section 8.4: The Classes L and NL, pp. 294–296

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.