1. Construyendo una máquina de turbación (o algoritmo):
Este es el enfoque más directo. Usted describe explícitamente una máquina de Turing (o un algoritmo de alto nivel que se puede traducir fácilmente a una máquina de Turing) que decide el idioma. Esta descripción debe cubrir:
* Entrada: Cómo la máquina Turing recibe la cadena de entrada.
* estados: Los diferentes estados en la que puede estar la máquina.
* Transiciones: Cómo se mueve la máquina entre los estados en función del estado actual y el símbolo que se lee en la cinta.
* aceptación/rechazo: Cómo la máquina señala la aceptación (por ejemplo, ingresar a un estado de "aceptar") o rechazo (por ejemplo, ingresar un estado de "rechazo").
* deteniendo: De manera crucial, debe demostrar que la máquina * siempre * se detiene, independientemente de si la cadena de entrada está en L o no. Esta es la parte más desafiante.
Ejemplo: Considere el lenguaje l ={W | W es un palíndromo}. Podemos describir una máquina de Turing que:
1. Escanea la cinta de entrada de izquierda a derecha, marcando el primer y último símbolos.
2. Mueve los marcadores un paso hacia adentro desde ambos extremos.
3. Repita el paso 2 hasta que los marcadores se encuentren (la cadena es un palíndromo) o los marcadores se cruzan (la cadena no es un palíndromo).
4. Acepta si los marcadores se reúnen y rechazan si se cruzan.
Esta máquina siempre se detiene, lo que demuestra que L es decidible.
2. Reducción a un lenguaje decidible conocido:
Si puede demostrar que su idioma L puede reducirse a un lenguaje decidible conocido L ', esto demuestra que L también es decidible. Una reducción es una función computable f tal que:
* x ∈ L si y solo si f (x) ∈ L '
Si tiene un algoritmo para decidir L ', puede usarlo para decidir L aplicando primero la reducción f. Dado que tanto F como el algoritmo para L 'son computables, el proceso combinado también es computable, decidiendo así L.
Ejemplo: Sea L el lenguaje de las cuerdas que representan expresiones aritméticas válidas. Podemos reducir L a un lenguaje de gramática libre de contexto (CFG) L 'que es decidible (existen algoritmos de análisis para CFG). La reducción implicaría transformar la cadena de expresión aritmética en un árbol de análisis de acuerdo con la gramática. Si la transformación tiene éxito y se genera un árbol de análisis válido, la cadena está en L; De lo contrario, no lo es.
3. Uso de propiedades de cierre de idiomas decidibles:
Los idiomas decidibles están cerrados bajo ciertas operaciones como Union, Intersection, Concatenation, Kleene Star y complemento. Si puede expresar su idioma L usando estas operaciones en idiomas decidibles conocidos, entonces L también es decidible.
Ejemplo: Si L1 y L2 son decidibles, entonces L1 ∪ L2 también es decidible. Puede decidir L1 ∪ L2 ejecutando los algoritmos de decisión para L1 y L2 en la cadena de entrada; Si acepta, el sindicato acepta.
En resumen: Probar la decidabilidad se reduce a demostrar que existe un algoritmo determinista (o máquina de Turing) que siempre se detendrá y clasificará correctamente cada cadena de entrada como perteneciente al idioma o no. El método que elija depende del lenguaje específico y su intuición sobre sus propiedades. El enfoque más común es construir directamente una máquina o algoritmo de turbio, pero las reducciones y las propiedades de cierre son herramientas poderosas para idiomas más complejos.