EXPSPACE

De testwiki
Version datée du 31 octobre 2023 à 00:07 par imported>Berlioz55 (growthexperiments-addlink-summary-summary:3|0|0)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

En théorie de la complexité, EXPSPACE est la classe des problèmes décidables en espace exponentiel par une machine de Turing déterministe.

Définition formelle

Si l'on appelle SPACE(s(n)) l'ensemble de tous les problèmes qui peuvent être résolus par des machines de Turing déterministes utilisant un espace O(s(n)) pour une fonction s en la taille de l'entrée n, alors on définit EXPSPACE par :

EXPSPACE=kSPACE(2nk) .

Liens avec les autres classes

Diagramme d'inclusions de quelques classes de complexité. Les flèches indiquent l'inclusion.

Comme l'illustre l'image de droite, EXPSPACE contient la plupart des classes de complexité classiques. En particulier : NP PSPACE EXPTIME EXPSPACE.

D'après le Modèle:Lien, PSPACE est strictement incluse dans EXPSPACE. Savoir si EXPTIME est un sous-ensemble strict de EXPSPACE ou non est une question ouverte.

D'après le théorème de Savitch, EXPSPACE est égale à NEXPSPACE.

D'après le théorème d'Immerman-Szelepcsényi, EXPSPACE est égale à co-EXPSPACE.

EXPSPACE est incluse dans 2-EXPTIME (définie par 2-EXPTIME=k DTIME (22nk)).

Problèmes EXPSPACE-complets

Un problème de décision est EXPSPACE-complet s'il est dans EXPSPACE et que tout problème de EXPSPACE s'y réduit en temps polynomial.

Problème de l'universalité d'un langage rationnel décrit par des expressions rationnelles avec exponentiation

Un exemple de problème EXSPACE-complet consiste à déterminer si une expression rationnelle avec exponentiation génère l'ensemble des mots de l'alphabet sur lequel elle est définie[1]Modèle:,[2]. Si on ne dispose pas de l'exponentiation dans le langage des expressions rationnelles le problème devient PSPACE-complet. L'exponentiation permet d'exprimer certaines expressions de façon exponentiellement plus concise, et de passer de PSPACE-complet à EXPSPACE-complet. Ce résultat est démontré en détail ci-dessous.

Expression rationnelle avec exponentiation (REX)

Les expressions rationnelles avec exponentiation (REX - Regular Expressions with Exponentiation) sur l'alphabet fini A sont les expressions obtenues à partir des lettres de A par les opérations suivantes :

  1. L'opération + ou (représente l'union)
  2. L'opération (représente le produit, le point est parfois omis)
  3. L'opération _ (représente l'étoile de Kleene)
  4. L'opération _n ou n (représente l'exponentiation d'ordre n)

À chaque REX e est associé un langage rationnel L(e) défini inductivement par :

  1. L()=, L(ε)={ε}
  2. L(a)={a}a est une lettre de A
  3. L(e+f)=L(e)L(f)
  4.  L(ef)={x1x2:x1L(e),x2L(f)}
  5.  L(e)={x1x2xk:k0,xiL(e)} on note également A l'ensemble des mots possibles sur l'alphabet A
  6.  L(en)={x1x2xn:xiL(e)}

On a par exemple : L((a+b)3)={aaa,aab,aba,abb,}. Il est possible de remplacer toute opération d'exponentiation d'ordre n par n concaténations (par exemple (a+b)3 est similaire à (a+b)(a+b)(a+b)). Cependant, cette transformation peut accroître de façon exponentielle la taille de la formule. La concision de l'opération d'exponentiation participe à l'importante complexité spatiale du problème ci-dessous.

Langage des REX universelles

À partir de la définition précédente d'une REX, on considère le langage suivant :

ALLREX={e:e est une REX telle que L(e)=A}

Le problème ALLREX consiste ainsi à déterminer si une REX e donnée génère l'ensemble des mots finis possibles sur son alphabet (une telle REX est qualifiée d'universelle). Ce problème est EXPSPACE-complet :

Modèle:Théorème

Ce théorème est toujours valable si on restreint l'exponentiation à l'ordre 2. Si l'étoile de Kleene est retirée, le problème devient NEXPTIME-complet.

Démonstration

La démonstration du théorème précédant s'effectue en 2 étapes. Il faut tout d'abord prouver l'appartenance de ALLREX à EXPSPACE, puis montrer que ce langage est EXPSPACE-hard (autrement dit, tout langage de EXPSPACE se réduit en temps polynomial à ALLREX).

ALLREX EXPSPACE

Étant donné une REX e de taille n, l'algorithme suivant permet de déterminer en espace exponentiel si L(e)=A :

  1. Remplacer les opérations d'exponentiation par des concaténations. On obtient une formule de taille N=2O(n).
  2. Convertir cette formule (de manière naïve) en un automate non déterministe. Cette opération nécessite un espace O(N).
  3. Déterminiser l'automate précédant. Le nouvel automate peut avoir jusqu'à 2O(N)=22O(n) états.
  4. e appartient à ALLREX si et seulement si aucun état rejetant n'est atteignable dans l'automate déterministe précédant. D'après le théorème de Savitch, ceci se vérifie en espace O(N2) sur un graphe de taille 2O(N).

Puisqu'il n'est pas possible d'utiliser 2O(N)=22O(n) espace, l'automate déterministe n'est pas construit à l'étape 3 ci-dessus. À la place, il est recalculé au fur et à mesure de son parcours lors de l'étape 4.

ALLREX est EXPSPACE-hard

Considérons un langage reconnu par une machine de Turing déterministe M=(Q,Γ,B,Σ,q0,δ,F) en espace 2nk. On va associer à tout mot w une REX wR telle que wL(wR)ALLREX. Plus précisément, on aura L(wR)={s:s est un mot ne représentant pas un calcul rejetant de M sur w}.

L'état de la machine M au temps r de son exécution est représenté par le mot Cr=x1x2xiqxi+1, où xj est le contenu de la case j du ruban, q l'état de la machine et xi+1 le symbole placé sous la tête de lecture. Puisque M s'exécute en espace 2nk, on peut supposer que C est de taille 2nk (quitte à compléter par des symboles blancs B).

Un calcul de M sur une entrée w est alors représenté par le mot C1#C2##Ct où chaque Ci est l'encodage de l'état de la machine au temps i de son exécution.

Un calcul wC=C1#C2##Ct de M sur une entrée w n'est pas rejetant s'il vérifie au moins une des 3 conditions suivantes :

  1. C1 n'est pas une configuration initiale possible de M.
  2. il existe 2 configurations successives Ci,Ci+1 représentant une transition impossible.
  3. Ct n'est pas une configuration finale rejetante.

Pour chacune de ces 3 conditions, on construit une expression rationnelle e qui génère l'ensemble des mots vérifiant la condition (on note Δ=ΓQ{#} et Δa=Δ{a}).

Condition 1. Au moment initial, la machine M est dans l'état q0 et w est écrit sur son ruban. Ainsi, la seule configuration initiale possible est : q0w1wnBB. L'expression rationnelle suivante génère alors l'ensemble des mots vérifiant la condition 1 : Rbadstart=Δq0Δ+Δ1Δw1Δ+Δ2Δw2Δ++Δn+1(Δ+ε)2nkn2ΔBΔ+Δ2nkΔ#Δ

Condition 2. Afin de savoir si une transition est valide ou non, il suffit d'étudier pour chaque paire de configurations successives des fenêtres de taille 3 centrées sur l'état courant (par exemple, pour la configuration C=x1x2xiqxi+1 la fenêtre est xiqxi+1). En effet, les autres lettres de la configuration ne sont pas censées évoluer après seulement un pas de calcul. Pour deux fenêtres abc et def on note bad(abc,def) s'il ne peut pas exister deux configurations successives ayant respectivement abc et def pour fenêtres. On génère alors l'ensemble des mots vérifiant la condition 2 à l'aide de l'expression rationnelle suivante : Rbadwindow=bad(abc,def)ΔabcΔ2nk2defΔ.

Condition 3. On suppose que la machine M finit dans l'état qreject en cas de calcul rejetant. Ainsi, pour que Ct ne soit pas une configuration finale rejetante, il suffit que wC ne contienne pas qreject. L'expression rationnelle suivante génère ainsi l'ensemble des mots vérifiant la condition 3 : Rbadreject=Δqreject.

Finalement, on note wR=Rbadstart+Rbadwindow+Rbadreject. On a bien L(wR)={s:s est un mot ne représentant pas un calcul rejetant de M sur w} et donc wL(wR)ALLREX. Par ailleurs, wR se construit bien en temps polynomial en n=|w| (wR est de taille O(nk)).

En logique

Le problème de satisfiabilité de certains fragments de la logique temporelle linéaire avec des quantifications du premier ordre est EXPSPACE-complet[3].

Problème d'accessibilité

Le problème d'accessibilité dans les lossy VASS (vector addition systems with states) est EXPSPACE-complet[4].

Bibliographie

Liens externes

Notes et références

Modèle:Références

Modèle:Palette

Modèle:Portail