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
Bibliographie
(en) Sanjeev Arora et Boaz Barak , Computational Complexity: A Modern Approach , Cambridge University Press , 20 avril 2009 , 579 p. (ISBN 978-0-521-42426-4, lire en ligne ) .
Sylvain Perifel, Complexité algorithmique , Éditions Ellipses , 22 avril 2014 , 432 p. (ISBN 978-2-729-88692-9, lire en ligne ) .
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