¿Puede una máquina de estados finitos ser universal?

La respuesta de Justin Rising le da la idea correcta: no puede construir un autómata que pueda simular cualquier autómata que reciba como entrada, porque independientemente del tamaño de su autómata, siempre puedo pedirle que simule uno más grande. En realidad, esta es también la esencia de la prueba formal que se presenta a continuación: el punto principal de la prueba es que ninguna cantidad finita de memoria es suficiente.

La respuesta de Quora User está en el camino correcto, pero hay algunos detalles formales que vale la pena corregir.

Como dice correctamente en los detalles de la pregunta, un lenguaje universal para el conjunto de todos los idiomas regulares puede definirse como el idioma de todas las cadenas de la forma “código de una palabra de entrada de autómata # aceptada por ese autómata”.

Formalmente, tomemos lenguajes regulares sobre {0,1}, y escojamos cualquier codificación particular de autómatas finitos deterministas con el alfabeto de entrada {0,1} en cadenas sobre {0,1}. Sea c (A) el código del autómata A. Ahora, el idioma universal para este conjunto de idiomas sería el idioma.
[matemáticas] U = \ {c (A) #w \ mid w \ en L (A) \} [/ matemáticas]

Se puede demostrar que este lenguaje no es regular. Una posibilidad de cómo hacerlo es, de hecho, utilizando el teorema de Myhill-Nerode. Necesitamos demostrar que la relación de equivalencia de Myhill-Nerode determinada por el lenguaje U tiene infinitas clases de equivalencia. Esto se puede hacer de la siguiente manera: seleccione infinitos DFA A_i de modo que ninguno de ellos reconozca el mismo idioma. Entonces ninguna de las palabras “c (A_i) #” es equivalente (porque para dos autómatas hay una palabra aceptada por uno pero no por el otro).

La cantidad de información que una máquina de estados finitos con estados [matemáticos] n [/ matemáticos] puede recordar es [matemática] \ log_2 (n) [/ matemática]. Eso hace que la universalidad sea imposible, porque siempre puedo darle la descripción de una máquina que requiere más bits que eso para describir.

Puede usar el teorema de Myhill-Nerode para refutar la afirmación. Deje que [math] \ mathcal A [/ math] sea un autómata universal mínimo con estados [math] m [/ math]. Entonces, la declaración es equivalente a [matemática] L (\ matemática A) [/ matemática] – el lenguaje aceptado por [matemática] \ matemática A [/ matemática] – teniendo [matemática] m [/ matemática] clases de equivalencia de Myhill-Nerode .

Definimos la equivalencia de Myhill-Nerode por,

[matemática] x \ equiv y: = \ forall z: x \ oplus z \ in L (\ mathcal A) \ Longleftrightarrow y \ oplus z \ in L (\ mathcal A) [/ math]

(donde [math] \ oplus [/ math] es la operación de concatenación)

Entonces, todo lo que tenemos que hacer para refutar la afirmación es mostrar que no hay dos autómatas que no acepten el mismo lenguaje pueden ser equivalentes. Esto es trivial, ya que los autómatas que no aceptan los mismos idiomas significan que debe haber una palabra en la que no estén de acuerdo.

es decir, hay infinitas clases de equivalencia (¡porque hay infinitas lenguas regulares!), lo que contradice el teorema de Myhill-Nerode.