NL, L

L = SPACE(log(n))

NL = NSPACE(log(n))

¿Que se puede alojar en espacio log?

Ejemplos

Ya vimos que PATH ∈  NL.

uPATH ∈ L (Reingold 2004)

{0k1k ∣ k ≥ 0} ∈  L:

Transductor logspace

Un transductor logspace es una MT con:

Un transductor logspace M computa una función f: {0, 1} *  ↦ {0, 1} *  si para todo input x, M se detiene con f(x) escrito en la cinta de output.

Decimos que f es calculable en espacio logarítmico.

Reducciónes logarítmicas

Para dos lenguajes B, C, si existe una función f calculable en espacio logarítmico tal que para todo x ∈ {0, 1} * , x ∈ B ssi f(x) ∈ C, entonces decimos que B es reducible en espacio logarímico a C (escrito B ≤ LC).

C ∈ NL es NL completo si para todo B ∈  NL, B ≤ LC.

Composición en espacio log

Propiedades

Si B ≤ LC y C ∈  L entonces B ∈  L.


Lemma:

Si T es un transductor logspace que computa x ↦ f(x), entonces se puede modificar en Tʹ que computa x, i⌋ ↦ f(x)i en espacio log.


PATH es NL completo

Observaciones

Certificados para NL

Definición alternativa de NL

B ∈ NL si existe una MT M determinística con una cinta adicional en lectura única, y un polinomio p: ℕ  ↦ ℕ  tal que para todo x ∈ {0, 1} * :

x ∈ B ↔ ∃ u ∈ {0, 1}p(∣x∣)s. t. M(x, u) = 1

Con:

Equivalencia de definiciones

Mostramos que B ∈ NLnd ⇔ B ∈ NLcert

∃  MTND N logspace  ⇔  ∃  MTD M logspace con certificado

Teorema de Immerman-Szelepcsényi

El complemento de PATH está en NL

Demostración

Mostramos que hay un algoritmo A corriendo en espacio O(log(n)) tal que:

A(G, s, t, u) = 1 ssi t no es alcanzable desde s en G, con certificado u en lectura única.

Llamamos:


Para cualquier input, A ya sabe:

C0 = {s}

c0 = 1

v ∈ Ci puede ser chequeado facilmente: un certificado pathi(s, v) en lectura única es la secuencia de nodos v0, v1, …, vk del camino de s a v (k ≤ i).


Además de pathi(s, v) necesitamos dos tipos de certificados:

  1. noPathi(s, v):
    certificado para v ∉ Ci, asumiendo que el verificador ya conoce el valor ci.
  2. sizei(k):
    certificado para ci = k, asumiendo que el verificador ya conoce el valor ci − 1.

Con certificados de tipo 2 nos podemos enterar de los valores c1, …, cn, y al final con un certificado de tipo 1, convencernos que t ∉ Cn.


Certificado noPathi(s, v), asumiendo ci − 1 está conocido:

v1, pathi − 1(s, v1), …, vci − 1, pathi − 1(s, vci − 1)

con v1, …vci − 1 ∈ Ci − 1.

Se puede chequear que

  1. el número de nodos del certif. es exactamente ci − 1
  2. los nodos están listados en órden creciente
  3. ningun de los nodos listados es v ni un vecino de v
  4. cada certificado pathi − 1(s, vj) es correcto

en espacio O(log(n)) con certificado en lectura única.


Certificado sizei(k), asumiendo ci − 1 está conocido:

v1, (no)Pathi(s, v1), v2, (no)Pathi(s, v2), …, vn, (no)Pathi(s, vn)

dependiendo de si v ∈ Ci o no.

Se puede chequear que

  1. los nodos están listados en órden creciente
  2. cada certificado pathi(s, v) o noPathi(s, v) es correcto
  3. el número de nodos en Ci es exactamente k

en espacio log. con certificado en lectura única.


Un certificado de (G, s, t) ∉ PATH es:

size1(c1), size2(c2), …, sizen − 1(cn − 1), noPathn(s, t)

Cada certificado sizei(ci) puede ser chequeado en espacio log. y después de cada chequeo el verificador sólo necesita alojar ci.

Entonces todo el chequeo se hace en espacio log.

Corolario

Si s: ℕ  ↦ ℕ  constructible en tiempo ( ≥ log(n)), entonces NSPACE(s(n)) = coNSPACE(s(n)).


Demo: Sea B ∈ coNSPACE(s(n)).

Entonces existe MTND M que usa espacio s(n) tal que x ∈ B ssi ninguna secuencia de elecciones de M con input x llega a qaccept.

Existe un transductor TB que computa x ↦ ⌊GM, x, Cstart, Caccept en espacio O(s(n)).

noPATH ∈  NL ie existe MTND N que decide noPATH en espacio log.

Componiendo TB y N de manera perezosa, obtenemos Mʹ que decide B en espacio O(s(n)), ie, B ∈ NSPACE(s(n)).

Referencias