Red de conocimientos turísticos - Información de alquiler - Tuve una idea y acepté la reseña "Idioma"

Tuve una idea y acepté la reseña "Idioma"

Definición de lenguaje recursivamente enumerable: ¿vamos? σ * es el lenguaje y E es el enumerador. Si L (E) = S, entonces E se llama lenguaje de enumeración S. Si existe tal E, entonces S se llama lenguaje enumerable recursivamente.

Tenga en cuenta que el enumerador E puede enumerar el lenguaje L(E) en cualquier orden, y E puede imprimir una cadena en L(E) varias veces.

La definición del lenguaje reconocible de Turing: Sea M una máquina de Turing. Si M puede ingresar al estado de aceptación y detenerse después de ejecutarse en la cadena de entrada ω, se llama M aceptar la cadena ω. El conjunto de todas las cadenas aceptadas por M se denomina lenguaje reconocido por M, o L(M) para abreviar.

¿Establecer? σ* es un lenguaje. Si existe una máquina de Turing M tal que L(M)=S, se dice que la máquina de Turing M reconoce S, y S se denomina lenguaje reconocible por Turing.

El siguiente teorema revela la relación entre los lenguajes recursivamente enumerables y los lenguajes identificables por Turing.

Teorema: Un lenguaje es reconocible según Turing si y sólo si es recursivamente enumerable.

Prueba: si hay un enumerador E que enumera el lenguaje S, construya una máquina de Turing M de la siguiente manera:

M = para la entrada ω

Ejecute E para generar Cadena S1, S2,...;

Si encuentra un cierto Si =ω, ingresa al estado de aceptación y se detiene.

¿Observas que es ω? S, M puede que nunca se detenga, pero el conjunto de palabras aceptado por M resulta ser S, por lo que M reconoce S.

Supongamos que tenemos una máquina de Turing M para reconocer el lenguaje S y construimos un enumerador E como siguiente:

E = Ignorar la entrada.

Repita los siguientes pasos para i = 1, 2, 3,...;

Supongamos σ * ​​= {S1, S2,...}, tome s1, s2, ..., si sirve como entrada de M y simula M para ejecutar el paso I;

Si un cierto sj, 1 ≤ j ≤ i, puede ser aceptado por M en el paso I, entonces se emite.

Obviamente, el lenguaje de salida final del enumerador E construido de esta manera resulta ser S. Tenga en cuenta que las cadenas en S no se generan en el orden del diccionario en E. La misma cadena puede ser generada por E. Muchas veces, pero según la definición del enumerador, están permitidas.

Observe la diferencia entre un lenguaje reconocible por Turing y un lenguaje determinable por Turing: si S es un lenguaje reconocible por Turing, entonces solo hay una máquina de Turing M. Cuando M ingresa ω ∈ S, M definitivamente detenerse y entrar en el estado de aceptación cuando la entrada de m es ω? s, M puede detenerse y entrar en un estado de rechazo, o puede que nunca se detenga.

Sin embargo, si S es un lenguaje decidible por Turing, es decir, un lenguaje recursivo, entonces debe haber una máquina de Turing M. Entonces, ¿para cualquier cadena de entrada ω? σ *, m siempre puede detenerse y entrar en estado de aceptación o rechazo dependiendo de si ω pertenece a S.

No todos los lenguajes son reconocibles por Turing, lo que puede probar la existencia de lenguajes irreconocibles por Turing.

El problema con el tiempo de inactividad es determinar si algún programa terminará de ejecutarse en un período de tiempo finito.

Esta pregunta es equivalente a la siguiente pregunta de verdadero o falso: Dado un programa P y una entrada W, bajo la entrada W, ¿puede el programa P eventualmente detenerse (en lugar de entrar en un bucle infinito)?

Descrita en lenguaje matemático, la pregunta esencial es: dada una máquina de Turing T y un conjunto de lenguaje arbitrario S, ¿T finalmente se detendrá en cada ω ∈ S? Su significado es el mismo que el de lenguaje determinable. Obviamente, cualquier S finito es determinable y contable; S también es detenible.

Alan Turing demostró en 1936 que no existe un algoritmo universal para el problema de apagado.

La tesis de Church-Turing sostiene que "cualquier problema computable algorítmicamente también puede calcularse usando una máquina de Turing"

Otra forma de decirlo es que el OR efectivo en lógica y matemáticas. El método mecánico puede representarse mediante una máquina de Turing. Generalmente asumimos que estos métodos deben cumplir los siguientes requisitos:

1. Un método consta de un número limitado de instrucciones simples y precisas que pueden describirse mediante un número limitado de símbolos.

2. Este método siempre produce resultados en un número limitado de pasos.

3. Básicamente, las personas sólo pueden usar papel y lápiz para completarlo.

4. La implementación de este método no requiere inteligencia humana para comprender y ejecutar estas instrucciones.

Un ejemplo de este método es utilizar la división euclidiana para encontrar el máximo común divisor de dos números naturales.

Supongamos que existe un lenguaje recursivo L cuyo conjunto de cadenas aceptable es σ. Verificación: l: El complemento de σ * \l también es un lenguaje recursivo.

Proceso de prueba:

Debido a que L es un lenguaje recursivo, existe una máquina de Turing M1, que puede completar:

1 Si y solo si ω∈. σ* y𖸐l, la cadena de entrada ω se acepta y siempre entra en el estado de apagado, que es el estado final.

2. Si y sólo si ω ∈ σ * y ω? l, la cadena de entrada ω se rechaza y siempre entra en el estado de apagado, que no es un estado final.

Ahora construya otra máquina de Turing M2 intercambiando el estado final y el estado no final de M1 (el estado no final original se convierte en el estado final y el estado final se convierte en el estado no final). M2 se puede completar:

1. Si y solo si ω∈σ*y𖸐σ*\l, la cadena de entrada ω se acepta y siempre entra en el estado cerrado, que es el estado final.

2. Si y sólo si ω ∈ σ * y ω? σ*\L, la cadena de entrada ω se rechaza y siempre puede entrar en el estado de apagado, que no es definitivo.

Así, la entrada rechazada por M1 será aceptada por M2, y la entrada aceptada por M1 será rechazada por M2.

M2 solo acepta σ * ​​\l, es decir, σ * \l también es un lenguaje recursivo.