Contenido

SPACE

Sea s: ℕ  ↦ N y L ⊆ {0, 1} * .

Decimos que L ∈ SPACE(s(n)) si existe una MT M y una constante c tal que M decide L y además, para todo input de longitud n, M visita cómo máximo cs(n) casillas en sus cintas (excluyendo la cinta de input) durante la computación.

Observación: como M decide L, M se detiene después de un número finito de pasos.

NSPACE

Sea s: ℕ  ↦ N y L ⊆ {0, 1} * .

Decimos que L ∈ NSPACE(s(n)) si existe una MTND M cuyas ejecuciones nondeterminísticas cumplen con el mismo límite de espacio.

Observación: los caminos que no llegan a qaccept pueden ser infinitos.

Precaución

Trabajamos con cotas espaciales s: ℕ  ↦ ℕ  que son constructibles en espacio, ie:

Simulación universal

Asumimos lo siguiente:

Se puede hacer una simulación universal de una máquina con k cintas de trabajo por una máquina con una sola cinta de trabajo, con sólo un gasto de espacio más grande por una constante multiplicativa.

Entonces, podemos asumir sin perdida de generalidad que hablamos de complejidad espacial con máquinas con solo 1 cinta de trabajo.

Space hierarchy theorem

Si f, g son funciones constructibles en espacio tales que f(n) ∈ o(g(n)), entonces

SPACE(f(n))  ⊂  ≠  SPACE(g(n))

Demo: a lo time hierarchy theorem.

Stearns, Hartmanis y Lewis, Hierarchies of memory limited computations 1965

Sipser Sección 9.1: Space hierarchy theorem

TIME y SPACE

En cada paso, una MT determinística puede descubrir cómo máximo un número constante de casillas nuevas, entonces:

TIME(s(n)) ⊆  SPACE(s(n))

Configuraciónes

Una configuración de una MT M es el contenido de todas las casillas no blancas de las cintas, las posiciones de sus cabezales y su estado.

Si una MT corre en espacio O(s(n)), entonces una configuración ocupa un espacio O(s(n)).

Grafo de configuraciones

Sea M una MT determinística o nondeterminística, x ∈ {0, 1} * .

El grafo de configuraciones de M, llamado GM, x, es un grafo dirigido cuyos nodos corresponden a todas las configuraciones posibles de M cuando el input es x.

GM, x tiene un eje de la configuración C a la configuración Cʹ si Cʹ es alcanzable a partir de C en un paso según la(s) función(es) de transición de M.

Podemos siempre modificar M para que borre su cinta y ponga sus cabezales en posición inicial cuando acepta el input  →  hay sólo una configuración final Caccept.


Sea M una MT(ND) usando espacio s(n). El número de configuraciones CM(n) de M con input n es acotado por:

CM(n) ≤ ∣QM∣ ⋅ n ⋅ s(n) ⋅ ∣Σ Ms(n)

con QM los estados de M, ∣Σ M su alfabeto.

En particular si s(n) ≥ log(n) tenemos CM(n) = 2O(s(n)).


Para toda s: ℕ  ↦ ℕ  constructible en espacio:

TIME(s(n))  ⊆  SPACE(s(n))  ⊆  NSPACE(s(n))  ⊆  TIME(2O(s(n)))

Demo SPACE(s(n))  ⊆  TIME(2O(s(n))):

Sea L ∈  SPACE(s(n)) y M una MT corriendo en espacio O(s(n)) decidiendo L. Consideramos el cálculo de M(x) con x input de longitud n.

Hay como máximo CM(n) = 2O(s(n)) configuraciones de M con input x, pero si M(x) repite una configuración entonces buclearía y nunca se detendría.

Entonces M con input x se detiene en CM(n) = 2O(s(n)) pasos.


Demo NSPACE(s(n))  ⊆  TIME(2O(s(n))) por "reachability method". Sea M que decide L ∈ NPSPACE(s(n)):

Definiciones clases espaciales

PSPACE = ⋃ c > 0 SPACE(nc)

NPSPACE = ⋃ c > 0 NSPACE(nc)

L = SPACE(log(n))

NL = NSPACE(log(n))

Ejemplo

3SAT  ∈  PSPACE

Dado input φ, buclear enumerando todas las asignaciones de variables de φ y chequear el valor de φ(zi).

Espacio usado para las asignacíones: polinomial (reutilizar para cada asignación nueva).

Espacio usado para el chequeo: polinomial (cuota espacial de un algoritmo determinístico en tiempo polinomial).

Generalización: NP  ⊆  PSPACE

Sea L ∈ NP.

Dado input x, buclear sobre todos los certificados posibles de x con respeto a L. Se puede reutilizar el espacio (polinomial) usado para alojar un certificado, para el certificado siguiente.

El chequeo de cada certificado se hace en tiempo determinístico polinomial en función de x, entonces en espacio polinomial en función de x.

PATH

PATH = {⌊G, s, t⌋ ∣ G es un grafo dirigido con camino de s a t}

PATH  ∈  NL

Sea n la cantidad de nodos en el grafo:

PSPACE completitud

Un lenguaje L es PSPACE hard si para todo Lʹ ∈  PSPACE, Lʹ ≤ pL.

Si además L ∈  PSPACE, L es PSPACE completo.

Usamos las mismas reducciones que para NP, ie, f corriendo en tiempo polinomial.

Un lenguaje PSPACE completo

SPACESAT = {⌊M, w, 1n⌋ ∣  M MTD, acepta w en espacio n}

SPACESAT es PSPACE completo.

Quantified Boolean Formulas

Una Quantified Boolean Formula es una formula proposicional con cuantificación (∀  y ∃ ) sobre sur variables booleanas.

Una QBF está en forma prenexa si tiene todos los cuantificadores primeros:

Q1x1Q2x2Qnxnφ(x1, x2, …, xn)

Asumimos que todas las variables están cuantificadas.


Una QBF es verdadera o falsa (todos los xi son cuantificados).

Verdadera: ∀ x∃ y. (x ∧ y) ∨ (¬ x ∧ ¬ y)

Falsa: ∀ x∀ y. (x ∧ y) ∨ (¬ x ∧ ¬ y)


Se puede reescribir una QBF φ en una formula proposicional φʹ equisatisfacible, pero de tamaño exponencialmente más grande:

Una formula booleana es una QBF sin cuantificadores existenciales.

TQBF

TQBF = {⌊φ⌋ ∣  formulas booleanas cuantificadas verdaderas }

TQBF es PSPACE completo

Stockmeyer y Meyer, Word problems requiring exponential time, 1973

TQBF  ∈  PSPACE

Describimos el algoritmo A para TQBF:

Sea n el número de variables del input ψ, y m su tamaño.

Escribimos ψ[xi = b] para ψ con xi reemplazado por b ∈ {0, 1}.

Si n = 0 se puede evaluar ψ en tiempo (y espacio) O(m).

Si n > 0:


Sea sn, m el espacio usado para una llamada a A.

Una vez terminada una llamada recursiva a A, se puede reutilizar el espacio usado.

A usa O(m) espacio para escribir ψ[xi = b].

sn, m = sn − 1, m + O(m) = O(n ⋅ m)

A necesita un espacio polinomial y decide TQBF.

TQBF es PSPACE hard


Observación

Teorema de Savitch (1970):

Para s: ℕ  ↦ ℕ  constructible en espacio:

NSPACE(s(n))  ⊆  SPACE(s(n)2)

Referencias