¿Existen pruebas no constructivas de la existencia de máquinas de Turing / NFA "pequeñas"?

11

Después de leer una pregunta relacionada , acerca de las pruebas de algoritmos de existencia no constructivas, me preguntaba si existen métodos para mostrar la existencia de máquinas de cómputo "pequeñas" (por ejemplo, a nivel de estado) sin construirlas realmente.

Formalmente:

supongamos que tenemos un lenguaje y arreglamos un modelo de cálculo (NFA / máquina de turing / etc.).LΣ

¿Hay resultados de existencia no constructivos que muestren que existe una máquina de estados para L , pero sin la capacidad de encontrarla (en p o l y ( n , | Σ | ) tiempo)?nLpoly(n,|Σ|)

Por ejemplo, ¿hay algún lenguaje regular para el que podamos mostrar n s c ( L ) n pero no sabemos cómo construir un autómata n- state?Lnsc(L)nn

( es la complejidad de estado no determinista de L , es decir, el número de estados en el NFA mínimo que acepta L ).nsc(L)LL


EDITAR: después de una discusión con Marzio (¡gracias!) Creo que puedo formular mejor la pregunta de la siguiente manera:

¿Existe un lenguaje y un modelo de cálculo para el que se cumple lo siguiente:L

  1. Sabemos cómo construir una máquina que calcule que tiene m estados.Lm

  2. Tenemos una prueba de que máquina -Estados de L existe (en el que n < < m ), pero o bien no podemos encontrar en todo o que tomaría un tiempo exponencial para calcularla.nLn<<m

RB
fuente
¿Qué es NSC (L)? la pregunta parece estar relacionada con la compresión / complejidad de Kolmogorov que pide encontrar máquinas pequeñas (est) para representar cadenas ...
vzn
nsc (L) es la complejidad de estado no determinista de L (el número de estados en el NFA más pequeño que acepta L).
RB
Otra idea / ángulo, tal vez hay algunas clases de circuitos "pequeños" (otro modelo de cómputo) para los cuales está comprobado que pueden calcular ciertas funciones, pero la construcción real es complicada. SJ mencionó recientemente a Barrington que los programas de ramificación de ancho 5 pueden calcular la mayoría ...
vzn
@vzn La prueba del teorema de Barrington proporciona un procedimiento sencillo para convertir fórmulas en programas de ramificación.
Sasho Nikolov
1
xO(2n)xx|M|<|x|

Respuestas:

8

Solo un comentario extendido con un ejemplo trivial; puedes elegir el idioma de un elemento:

Lk={Mσ(M)=Σ(k)}

Lkkk

kLk2k(logk+2)

Marzio De Biasi
fuente
Si bien estoy de acuerdo en que funciona, estaba buscando existencia que mostrara técnicas para lenguaje explícitamente dado L.
RB
3
¿Qué es un "lenguaje dado explícitamente"?
Jeffε
3

MODp={aipi0}pO(logp)

O(log2+o(1)p)MODp

REF: Sección 4.2 de (Ambainis y Yakaryilmaz, 2015) .

Abuzer Yakaryilmaz
fuente
2

Otra solución es usar el lema de Higman :

Un lenguaje cerrado bajo subpalabras es regular.

uvuv

Por lo tanto, tome cualquier lenguaje L, el cierre de su subpágina es regular pero no es en absoluto constructivo ya que L es arbitrario.

CP
fuente