Aller au contenu
Wikipédia l'encyclopédie libre

DSPACE

Un article de Wikipédia, l'encyclopédie libre.

En théorie de la complexité, DSPACE (ou SPACE) désigne une famille de classes de complexité caractérisées par leur complexité en espace sur une machine de Turing déterministe.

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

Définitions

[modifier | modifier le code ]

Les classes de complexité L, PSPACE et EXPSPACE sont définies à partir de la famille DSPACE :

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

Les langages rationnels peuvent être définis comme R E G = D S P A C E ( O ( 1 ) ) {\displaystyle {\mathsf {REG}}={\mathsf {DSPACE}}({\mathcal {O}}(1))} {\displaystyle {\mathsf {REG}}={\mathsf {DSPACE}}({\mathcal {O}}(1))}. En fait, on a même R E G = D S P A C E ( o ( log log n ) ) {\displaystyle {\mathsf {REG}}={\mathsf {DSPACE}}({\mathcal {o}}(\log \log n))} {\displaystyle {\mathsf {REG}}={\mathsf {DSPACE}}({\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)} {\displaystyle {\mathcal {O}}(\log \log n)}, et toute machine de Turing en espace o ( log log n ) {\displaystyle o(\log \log n)} {\displaystyle o(\log \log n)} reconnaît un langage rationnel[1] .

Hiérarchie en espace

[modifier | modifier le code ]

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} {\displaystyle f} et g {\displaystyle g} {\displaystyle g} telles que f = o ( g ) {\displaystyle f=o(g)} {\displaystyle f=o(g)} et g {\displaystyle g} {\displaystyle g} est constructible en espace, l'inclusion stricte suivante est vérifiée :

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

Liens avec d'autres classes

[modifier | modifier le code ]

Le théorème de Savitch relie DSPACE aux classes de complexité en mémoire non déterministe NSPACE par les inclusions suivantes, pour toute fonction f {\displaystyle f} {\displaystyle f} constructible en espace telle que f ( n ) log n {\displaystyle f(n)\geq \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)} {\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, DSPACE est relié aux classes de complexité en temps DTIME et NTIME par les inclusions suivantes, pour toute fonction f {\displaystyle 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)} {\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

[modifier | modifier le code ]

Références

[modifier | modifier le code ]
  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

[modifier | modifier le code ]
v · m
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

AltStyle によって変換されたページ (->オリジナル) /