Problema resuelto al detalle
-
Por qué ninguna máquina finita puede emparejar 0 y 1, por muchos estados que se le den 8 pasos
La máquina de paridad de esta página tiene dos estados y lee 101101, seis símbolos, sin necesitar jamás un tercero. Entréguele seis millones de símbolos y seguirá necesitando dos. ¿Qué es lo que no puede hacer una máquina con un número fijo de estados? ¿Y cómo se demuestra que una máquina no existe, en lugar de haber fallado simplemente al buscar una?
-
Observe la máquina que tiene. La paridad comienza en e, y cada 1 la conmuta. Seis símbolos después está de nuevo en e y la entrada es aceptada. No se ha acumulado nada por el camino: en el símbolo seis, la máquina se encuentra exactamente en la misma condición en la que podría haber estado en el símbolo uno.
-
Ese es todo el recurso de que dispone. La memoria de un DFA es el estado en el que se encuentra y nada más. Ni contador, ni pila, ni cinta en la que pueda escribir. Tras leer cualquier prefijo, todo lo que la máquina sabe sobre ese prefijo es cuál de sus k estados ocupa ahora.
-
Busque pues algo que claramente requiera más. Considere las cadenas formadas por un cierto número de ceros seguidos exactamente por el mismo número de unos. 01 es una, 0011 es una, 001 no lo es, ni tampoco 0110.
-
Suponga que un DFA con k estados lo reconoce. No pregunte qué aspecto tiene la máquina: nadie se lo va a decir. Limítese a introducir los k+1 prefijos formados por entre 0 y k ceros, y observe en qué estado la deja cada uno.
-
Principio del palomar. Hay más prefijos que estados, de modo que dos de ellos van a parar al mismo sitio. Llámelos 0ⁱ y 0ʲ con i menor que j. A partir de ese momento, la máquina no puede distinguirlos, y no porque esté mal diseñada. El estado es todo lo que tiene, y las dos cadenas le dieron el mismo.
-
Ahora introduzca en ambas continuaciones lo mismo: i unos. Mismo estado inicial, mismos símbolos, luego mismo estado final y, por tanto, el mismo veredicto. La máquina no tiene margen para hacer ninguna otra cosa.
-
Y ambos veredictos tienen que diferir. 0ⁱ1ⁱ tiene recuentos coincidentes y pertenece al lenguaje; 0ʲ1ⁱ no, porque j no es i. Una debe ser aceptada y la otra rechazada, y la máquina les da la misma respuesta. Lo que falla es la suposición de que existía.
-
Relea el argumento y observe lo que nunca ha aparecido en él: un valor para k. Dos (el tamaño de la propia máquina de paridad) o dos mil millones: los k+1 prefijos superan en número a los k estados en cualquier caso. Sin embargo, si impone un límite a n, el lenguaje pasa a ser de estados finitos inmediatamente: emparejar hasta N requiere 2N+2 estados, es decir, 22 para N = 10 y 202 para N = 100.
Respuesta
Ningún autómata finito lo reconoce, sea cual sea su tamaño. La demostración no necesita saber nada sobre cómo está construida la máquina, solo que k+1 elementos no pueden caber en k lugares sin que dos de ellos compartan sitio, y que compartir estado es olvidar. La máquina de paridad muestra lo mismo en miniatura: introdúzcale 0, luego 00 y después 000, y las tres la dejan en e, porque no examina los ceros en absoluto.
En el límite reside toda la dificultad. Emparejar hasta N es fácil, con 2N+2 estados, un par más por cada símbolo al que se desee llegar, y ese recuento crece sin parar, por lo que cada N en particular tiene una máquina y ninguna máquina abarca todo N. Esa brecha es lo que significa «memoria finita», y es la razón por la cual el siguiente paso tras un DFA se define dotándolo de una pila: un almacenamiento no acotado, añadido de nuevo precisamente porque esto es lo que cuesta su ausencia. -
Referencias (2)
- Insight block 3 — the nerve-net model the finite automaton descends from: W. S. McCulloch and W. Pitts, "A logical calculus of the ideas immanent in nervous activity." Bulletin of Mathematical Biophysics 5(4), 115–133, 1943.
- Insight block 1 — the theorem that fixes the minimum state count: A. Nerode, "Linear automaton transformations." Proceedings of the American Mathematical Society 9(4), 541–544, 1958.