He leído en alguna parte que una máquina de Turing no puede calcular esto y, por lo tanto, es indecidible, pero ¿por qué? ¿Por qué es computacionalmente imposible para una máquina generar el árbol de análisis y tomar una decisión? ¿Quizás estoy equivocado y se puede hacer?
19
Respuestas:
Reducimos del problema de correspondencia de Post . Supongamos que podemos, de hecho, decidir el idioma .{ ⟨ G ⟩ | G a CFG y L ( G ) ambiguo }
Dado : Construya el siguiente CFG G = ( V , Σ , R , S ) : V = { S , S 1 , S 2 } , R = { S → S 1 | S 2 , S 1 → α 1 Sα1, ... , αmetro, β1, ... , βmetro G = ( V, Σ , R , S) V= { S, S1, S2} (donde σ iR = { S→ S1El | S2, S1→ α1S1σ1El | ⋯ | αmetroS1σmetroEl | α1σ1El | ⋯ | αmetroσmetro, S2→ β1S2σ1El | ⋯El | βmetroS2σmetroEl | β1σ1El | ⋯ | βmetroσmetro} σyo son nuevos caracteres agregados al alfabeto, por ejemplo, ).σyo= i-
Si el lenguaje es ambiguo, entonces hay una derivación de alguna cadena de dos maneras diferentes. Supongamos, wlog, que ambas derivaciones comienzan con la regla S → S 1 , leer los nuevos caracteres hacia atrás hasta que terminan asegura que solo pueda haber una derivación, por lo que no es posible. Por lo tanto, vemos que la única ambigüedad puede provenir de uno de S 1 y uno S 2 'Inicio'. Pero luego, llevando la subcadena de w hasta el comienzo de los nuevos caracteres, tenemos una solución para el PCP (ya que las cadenas de índices utilizadas después de esos puntos coinciden).w S→ S1 S1 S2 w
Del mismo modo, si no hay ambigüedad, entonces el PCP no se puede resolver, ya que una solución implicaría una ambigüedad que solo sigue a y S ⇒ S 2 ⇒ ∗ β ˜ σ , donde α = β son cadenas de coincidencias de α 'y β ' s (desde la coincidencia de ˜ σ ).S⇒ S1⇒∗α σ~ S⇒ S2⇒∗βσ~ α = β α β σ~
Por lo tanto, hemos reducido a PCP, y como eso es indecidible, hemos terminado.
(¡Avísame si he hecho algo descabellado!)
fuente