La equivalencia es decidible para los idiomas regulares. Es decir, dados dos autómatas finitos, podemos decir si reconocen el mismo idioma. La equivalencia no es decidible para lenguajes libres de contexto. Los lenguajes sin contexto son un pequeño subconjunto de lenguajes recursivos primitivos.
Una posible razón por la cual la equivalencia de los lenguajes CF es indecidible: dada una máquina arbitraria de Turing [matemática] M [/ matemática] y una palabra de entrada [matemática] w [/ matemática], podemos crear una gramática libre de contexto [matemática] G [/ math] que generará (*) todas las cadenas que no son válidas “aceptando historiales de cálculo” de [math] M [/ math] en [math] w [/ math]. Si pudiéramos decidir si esto [matemática] G [/ matemática] genera absolutamente todas las cadenas, podríamos decidir si [matemática] M [/ matemática] acepta [matemática] w [/ matemática].
(*) Algunos detalles técnicos se omitieron aquí en aras de la claridad 🙂
- En MIPS, ¿qué son las instrucciones condicionales cargadas y almacenadas?
- ¿Cómo puedo escribir un script de shell para recuperar texto que se encuentra entre dos cadenas?
- ¿Qué biblioteca utiliza Quora para realizar el aprendizaje automático y el procesamiento del lenguaje natural?
- ¿Cuál es el futuro del hardware de la computadora? ¿Qué tan poderosas serán nuestras computadoras? ¿Cuánta RAM, potencia de CPU y memoria estarán disponibles en 10, 20 o 30 años para el consumidor promedio?
- ¿Por qué el disco mismo y no la computadora intentan decodificar discos corruptos y corregir errores?