NSPACE

En théorie de la complexité, NSPACE désigne une famille de classes de complexité caractérisées par leur complexité en espace sur une machine de Turing non déterministe.

Plus précisément, N S P A C E ( f ( n ) ) {\displaystyle {\mathsf {NSPACE}}(f(n))} est la classe des problèmes de décision qui, pour une entrée de taille n {\displaystyle n} , peuvent être décidés par une machine de Turing non déterministe fonctionnant en espace O ( f ( n ) ) {\displaystyle {\mathcal {O}}(f(n))} .

Définitions

Les classes de complexité NL, NPSPACE et NEXPSPACE sont définies à partir de la famille NSPACE :

N L = N S P A C E ( O ( log n ) ) {\displaystyle {\mathsf {NL}}={\mathsf {NSPACE}}({\mathcal {O}}(\log n))}
N P S P A C E = k N N S P A C E ( n k ) = P S P A C E {\displaystyle {\mathsf {NPSPACE}}=\bigcup \limits _{k\in \mathbb {N} }{\mathsf {NSPACE}}(n^{k})={\mathsf {PSPACE}}}
N E X P S P A C E = k N N S P A C E ( 2 n k ) = E X P S P A C E {\displaystyle {\mathsf {NEXPSPACE}}=\bigcup \limits _{k\in \mathbb {N} }{\mathsf {NSPACE}}\left(2^{n^{k}}\right)={\mathsf {EXPSPACE}}}

Les langages rationnels peuvent être définis comme R E G = D S P A C E ( O ( 1 ) ) = N S P A C E ( O ( 1 ) ) {\displaystyle {\mathsf {REG}}={\mathsf {DSPACE}}({\mathcal {O}}(1))={\mathsf {NSPACE}}({\mathcal {O}}(1))} . En fait, on a même R E G = D S P A C E ( o ( log log n ) ) = N S P A C E ( o ( log log n ) ) {\displaystyle {\mathsf {REG}}={\mathsf {DSPACE}}({\mathcal {o}}(\log \log n))={\mathsf {NSPACE}}({\mathcal {o}}(\log \log n))}  : le plus petit espace requis pour reconnaître un langage non rationnel est O ( log log n ) {\displaystyle {\mathcal {O}}(\log \log n)} , et toute machine de Turing (déterministe ou non) en espace o ( log log n ) {\displaystyle o(\log \log n)} reconnaît un langage rationnel[1].

La classe des langages contextuels peut être définie comme C S L = N S P A C E ( O ( n ) ) {\displaystyle {\mathsf {CSL}}={\mathsf {NSPACE}}({\mathcal {O}}(n))} .

Propriétés

Hiérarchie en espace

Informellement, le théorème de hiérarchie en espace indique que disposer de plus d'espace permet de décider davantage de problèmes. Plus précisément, pour toutes fonctions f {\displaystyle f} et g {\displaystyle g} telles que f = o ( g ) {\displaystyle f=o(g)} et g {\displaystyle g} est constructible en espace, l'inclusion stricte suivante est vérifiée :

N S P A C E ( f ( n ) ) N S P A C E ( g ( n ) ) {\displaystyle {\mathsf {NSPACE}}(f(n))\subsetneq {\mathsf {NSPACE}}(g(n))}

Théorème d'Immerman-Szelepcsényi

Le théorème d'Immerman-Szelepcsényi affirme que les classes NSPACE sont closes par complémentaire : pour toute fonction f {\displaystyle f} constructible en espace telle que f ( n ) log n {\displaystyle f(n)\geq \log n}  :

N S P A C E ( f ( n ) ) = c o N S P A C E ( f ( n ) ) {\displaystyle {\mathsf {NSPACE}}(f(n))={\mathsf {coNSPACE}}(f(n))}

En particulier, N L = c o N L {\displaystyle {\mathsf {NL}}={\mathsf {coNL}}} .

Liens avec d'autres classes

Le théorème de Savitch relie NSPACE aux classes de complexité en mémoire déterministe DSPACE par les inclusions suivantes, pour toute fonction f {\displaystyle f} constructible en espace telle que f ( n ) log n {\displaystyle f(n)\geq \log n}  :

D S P A C E ( f ( n ) ) N S P A C E ( f ( n ) ) D S P A C E ( f ( n ) 2 ) {\displaystyle {\mathsf {DSPACE}}(f(n))\subseteq {\mathsf {NSPACE}}(f(n))\subseteq {\mathsf {DSPACE}}\left(f(n)^{2}\right)}

Une conséquence en est que PSPACE = NPSPACE.

Par ailleurs, NSPACE est relié aux classes de complexité en temps DTIME et NTIME par les inclusions suivantes, pour toute fonction f {\displaystyle f} constructible en espace :

N T I M E ( f ( n ) ) D S P A C E ( f ( n ) ) N S P A C E ( f ( n ) ) D T I M E ( 2 O ( f ( n ) ) ) {\displaystyle {\mathsf {NTIME}}(f(n))\subseteq {\mathsf {DSPACE}}(f(n))\subseteq {\mathsf {NSPACE}}(f(n))\subseteq {\mathsf {DTIME}}\left(2^{{\mathcal {O}}(f(n))}\right)}

Notes et références

Références

  1. (en) Andrzej Szepietowski, Turing Machines with Sublogarithmic Space, Springer Science+Business Media, , 114 p. (ISBN 978-3-540-58355-4, lire en ligne), p. 28

Bibliographie

  • (en) Sanjeev Arora et Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, , 579 p. (ISBN 978-0-521-42426-4, lire en ligne). Ouvrage utilisé pour la rédaction de l'article
  • Sylvain Perifel, Complexité algorithmique, Éditions Ellipses, , 432 p. (ISBN 978-2-729-88692-9, lire en ligne). Ouvrage utilisé pour la rédaction de l'article
v · m
Théorie de la complexité (informatique théorique)
Classes de complexité
(liste)
Classes classiques
Classes randomisées et quantiques
Autres
Classes de fonctions calculables
Hiérarchies
Familles de classes
Théorèmes et outils
Théorèmes structurels
Outils et réductions
Approches non-standard
  • icône décorative Portail de l'informatique théorique