Page 1

Tema 1 Máquinas de Turing

Belén Pérez Lancho Universidad de Salamanca

Informática Teórica 3º Ing. Téc. Informática de Sistemas


Contenido (I) 1.

INTRODUCCIÓN

2.

LA MÁQUINA DE TURING „ „ „ „ „

Definición Funcionamiento Conceptos Tesis de Church-Turing Ejemplos


Contenido (II) 3.

MODIFICACIONES DE LA MT „ „ „ „ „ „ „ „ „

MT con tres movimientos MT con dos tipos de transiciones MT multipista MT sobre alfabeto binario MT multicinta MT multicabeza MT no determinista MT con cinta limitada en un extremo Autómata Linealmente Acotado


Contenido (III) 4.

MAQUINAS DE TURING Y LENGUAJES „ „ „ „

5.

Lenguaje aceptado Lenguaje decidido Función característica de un lenguaje Ejemplos

CONSTRUCCION CON MAQUINAS BÁSICAS „ „ „

Máquinas básicas Composición de máquinas Algunas máquinas usuales


Contenido (IV) 6.

LA MAQUINA DE TURING UNIVERSAL

7.

LENGUAJES RECURSIVOS Y RECURSIVAMENTE ENUMERABLES „ „ „

8.

Propiedades de los lenguajes recursivos Propiedades de los recursivamente enumerables Máquinas de Turing y gramáticas

EL PROBLEMA DE PARADA


BIBLIOGRAFÍA RECOMENDADA „

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES E. Alfonseca, M. Alfonseca y R. Moriyón. McGraw Hill, 2007

„

INTRODUCCIÓN A LA TEORÍA DE AUTÓMATAS, LENGUAJES Y COMPUTACIÓN Hopcroft, Motwani, Ullman Addison-Wesley, 2001

„

TEORÍA DE LA COMPUTACIÓN J. G. Brookshear Addison-Wesley ib. 1993


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Introducción „

Grandes preguntas de la Computación … ¿Qué

problemas puede resolver un ordenador? … ¿Cómo pueden construirse programas para resolver esos problemas? … ¿Resuelven realmente los problemas? … ¿Cuánto tiempo o espacio necesitan?


Introducción „

Las respuestas hay que buscarlas en: … Matemáticas

Funciones calculables (recursivas) … Teoría de Autómatas y Máquinas Modelos de sistemas de computación … Teoría de Lenguajes y Gramáticas Comunicación con la máquina


Introducción: Máquina de Turing „

Análisis de lenguajes formales (autómata) … Memoria

… Mayor

más genérica que la pila

poder de reconocimiento:

{anbncn} o {ww}


Introducción: Máquina de Turing „

Computación (máquina) …

…

Transformación entrada salida Modelo del proceso mental (algorítmico)

Proceso mental

Modelo (Máquina de Turing)

Conjunto de símbolos (finito)

Alfabeto

Papel (ilimitado) y lápiz

Cinta (ilimitada) y cabeza

Estados mentales (finitos)

Estados

Acciones:

Transiciones:

ƒ observar ƒ sustituir ƒ transferir atención

ƒ leer de la cinta ƒ escribir/cambiar estado ƒ mover cabeza (R/L)


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción de máquinas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Definición Formal (I) „

Séptupla

M = ( ∑, Γ, #, Q, q0, f, F)

∑ Γ

Alfabeto de la máquina Alfabeto de cinta # ∈ Γ Espacio blanco (casilla vacía) tal que # ∉∑ Q Conjunto finito de estados q0 ∈ Q Estado inicial f Función (parcial) de transición f: Q × Γ → Q × Γ × {R, L} F ⊆ Q Conjunto de estados finales o de parada

„

El comportamiento es determinista


Definición Formal (II) „

Ejemplo: M = ( {a, b}, {a, b, #}, #, {q0, qf}, q0, f, {qf} ) f

→ q0

a q0 b R

b

#

q 0 a R qf # L

(¿? Obtener el grafo de esta máquina)


Funcionamiento (I) „

Configuración inicial ¾ ¾

¾ ¾

estado inicial cinta con el dato de entrada (un símbolo por celda) resto de celdas ocupadas por blancos cabeza en símbolo izquierdo del dato

a a b a

q0 qf


Funcionamiento (II) „

Movimiento ¾ lectura ¾ escritura ¾ cambio

de estado ¾ desplazamiento de la cabeza


Funcionamiento (III) „

Configuración de parada ¾ situación

sin posibilidad de transición ¾ cinta con dato de salida „

Situación de bucle infinito ¾ no

se llega nunca a situación de parada

(¿? pensar una máquina con bucle infinito)


Conceptos básicos (I) „

Descripción instantánea … Representación

de la configuración de la máquina en cada momento … Puede indicarse de dos formas:

pares cadenas

(q , w1aw2) w1qaw2


Conceptos básicos (II) „

Movimiento … Paso

de una configuración a otra … Se indican mediante:

|⎯ |⎯ * ó |⎯ + |⎯ ∞

una transición varias transiciones bucle infinito


Conceptos básicos (III) „

Computación … Secuencia

de movimientos que llevan a una configuración de parada

(qo, w) |⎯ (qf, w') con qf∈F *

(¿? con la máquina anterior computar un dato)


Conceptos básicos (IV) „

Función Turing computable … Función

f: ∑* →∑* para la que existe una MT

tal que, si para w∈ ∑* es f(w)=w' ⇔

(qo, w) |⎯

*

(qf, w') con qf∈F


Tesis de Church-Turing (I) „

Cualquier procedimiento algorítmico tiene una máquina de Turing capaz de computarlo

„

El poder computacional de la máquina de Turing es tan grande como el de cualquier sistema computacional posible


Tesis de Church-Turing (II) „

Cualquier forma general de computación solamente permitirá calcular funciones turing-computables, es decir, funciones recursivas parciales ¡¿?!


Ejemplos (I) „

Describir la función que realiza la máquina: M1 = ({0,1} , {0,1, #} , # , {p, q, r} , p , f , {r}) f p q

0 p0R q0R

1 q1R p1R

# r0L r1L


Ejemplos (II) ย„

Computar las palabras 1, 11 y 111 con la mรกquina: M3 = ({1} , {0,1, #} , # , {p, q, r, s} , p , f , {s}) f p q r

1 q0R q1R

0 p0L q0R r1R

# r#R p0L s#L


Ejemplos (III) „

Construir una MT que obtenga la función sucesor (f(0)=1, f(1)=10, f(10)=11, f(11)=100, ...) HACER PROBLEMAS


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Modificaciones de la MT Son variaciones del modelo inicial „ Utilizan otras definiciones de la función de transición f „ Su capacidad de computación es equivalente (salvo el autómata linealmente acotado cuya capacidad es menor) „


MT con “desplazamiento S” fs: Q × Γ → Q × Γ × {R, L, S} Admite que, en una transición, la cabeza quede quieta „ Puede transformarse en una convencional añadiendo nuevos estados y transiciones „

fs (q, a) = (q’, b, S)

f'(q, a) = (qi’, b, R) f'(qi’, ai) = (q’, ai, L) ∀ ai∈Γ


MT con dos tipos de transición f2: Q × Γ → Q × (Γ ∪ {R, L}) „

En una transición sólo puede: ¾

mover la cabeza sin modificar la cinta

f2 (q, a) = (q', R) ¾

modificar la cinta sin mover la cabeza

f2 (q, a) = (q', b) „

Necesita más transiciones pero tiene la misma potencia


MT multipista fp: Q × Γn → Q × Γn × {R, L [, S]} „

La cinta está dividida en pistas: ¾ ¾

varios símbolos por celda cabeza única CINTA de 3 pistas

0 0 1 0 0 0 1 1

Pista 1 Pista 2 Pista 3

fp (q, 00#) = (q', 000, R) „

Equivale a una convencional con un cambio de alfabeto Γ' = Γn


MT sobre alfabeto binario fb: Q × {0, 1} → Q × {0, 1} × {R, L [, S]} La cinta sólo admite dos símbolos „ Como cualquier alfabeto Γ de n símbolos puede codificarse en binario „

„

Toda máquina puede simularse con una binaria de m pistas, siendo n ≤ 2m


MT multicinta fc: Q × Γ n → Q × Γ n × {R, L [, S]} n 0 0 1 0

Cinta 1

Cinta 2

fc (q, 0#) = (q', 01, RR) „ „

Tiene varias cintas, cada una su cabeza Puede simularse en una de 2n pistas con Γ' = Γ ∪ {*}


MT multicabeza fh: Q × Γ n → Q × Γ n × {R, L [, S]} n Cabeza 1 0 0 1 1

Cinta

Cabeza 2

fh (q, 01) = (q’, 01, RR) „ „

Tiene una única cinta con varias cabezas independientes Puede simularse con una de n+1 pistas con Γ ' = Γ ∪ {*}


MT no determinista ∆ ⊆ Q × Γ × Q × Γ × {R, L [, S]} Posibilidad de varios movimientos para una configuración „ Puede simularse con una máquina determinista de tres cintas „

El no determinismo es evitable Æ misma capacidad de computación


MT con cinta limitada por un extremo

Extremo limitado

„

* a b b a

Extremo ilimitado

La cinta ilimitada es equivalente a una limitada de dos pistas


MT con capacidad restringida: Autómata Linealmente Acotado (ALA)

< a b b a > „ „

La cabeza no puede sobrepasar los límites que establece el dato de entrada El poder computacional de este modelo sí es menor que el de la MT


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Definiciones (I) „

Lenguaje aceptado por una MT … Conjunto

de cadenas que detienen la máquina en estado final

L(M) = {w∈∑* / (q0, w) |⎯ * (qf , α) con qf∈F, α∈Γ*} … Si

w'∉L(M) puede ocurrir que la máquina:

se detenga en estado no final ¾ entre en un bucle infinito ¾

… Son

lenguajes Recursivamente Enumerables


Definiciones (II) „

Lenguaje decidido por una MT … Lenguaje

aceptado por una MT que además siempre se para, es decir, L(M) / ∀ w∈L(M) es (q0, w) |⎯ * (qf , α) con qf ∈ F ∀ w∉L(M) es (q0, w) |⎯ * (qi , α) con qi ∉ F

… La

MT que decide un lenguaje nunca produce bucles infinitos … Estos lenguajes se denominan Recursivos


Definiciones (III) „

Función característica de un lenguaje L … Se

define como XL:∑* → {0, 1} tal que: XL (w) = 1 ∀ w∈L XL (w') = 0 ∀ w'∉L

…L

es recursivo ⇔ XL es Turing computable


Ejemplos (I) „

Máquina que decide el lenguaje a* ⊂ {a, b}*

f

a

q0

q0 a R

b

# qf # L


Ejemplos (I) „

Máquina que computa la función característica del lenguaje a* ⊂ {a, b}*

f

a

q0

q0 a R

b

#

Borrar y Borrar y Escribir 0 Escribir 1


Ejemplos (I) „

Máquina que computa la función característica del lenguaje a* ⊂ {a, b}* f

a

b

#

q0

q0 a R

qm b R

qb1# L

qm

qm a R

qm b R

qb0 # L

qb1

qb1 # L

qb1 # L

qf 1 S

qb0

qb0 # L

qb0 # L

qf 0 S


Ejemplos (II) „

Máquina que decide el lenguaje {anbn, n≥0}

Idea: Marcar primera a (como A) Buscar primera b y marcarla (como B) Repetir hasta que todo esté marcado (Ojo con la palabra vacía y con todas las que no están en el lenguaje)


Ejemplos (II) „

Máquina que decide el lenguaje {anbn, n≥0} f q0 q1 q2 q3 qf

a q1 A R q1 a R q2 a L

b q2 B L

A

B q3 B R q1 B R q0 A R q2 B L q3 B R

# qf # L

qf # L


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Máquinas básicas (I) „

Corresponden a las tres operaciones elementales que puede realizar una MT: ¾ mover

la cabeza a la derecha ¾ mover la cabeza a la izquierda ¾ cambiar el contenido de una celda Cualquier MT puede escribirse a partir de estas máquinas básicas


Máquinas básicas (II) „

R Avanzar una celda (∑, Γ, {q0, qf}, q0, f, {qf}) f(q0, ai) = (qf, ai, R) ∀ ai∈Γ

„

L Retroceder una celda (∑, Γ, {q0, qf}, q0, f, {qf}) f(q0, ai) = (qf, ai, L) ∀ ai∈Γ

„

x

Escribir un símbolo x (∑, Γ, {q0, qf}, q0, f, {qf}) f(q0, ai) = (qf, x, S) ∀ ai∈Γ


Composición de máquinas (I) Se representa por M1M2 o M1→M2 „ Las máquinas deben operar sobre los mismos alfabetos „ Sus conjuntos de estados deben ser disjuntos „


Composición de máquinas (II) „

M1 M2 realiza la función de M1 y, en lugar de parar, continúa realizando la función de M2 sobre la cinta que aquella dejó como salida ∑ = ∑1 = ∑2 Γ = Γ1 = Γ2 Q = Q1∪Q2 - F1 q0 = q01 F = F2

f(q, ai) =

f1 (q, ai)=(q’, aj, M) si q∈Q1 y q’∉F (q02, aj, M) si f1(q, ai)=(qf1,aj, M) f2(q, ai) si q∈Q2


Composición de máquinas (III) „

En general, para componer varias máquinas habrá que: ¾ ¾ ¾

considerar como estado inicial el de la primera, q01 considerar como estados finales los de la última, Fn sustituir las transiciones a estado final de cada Mi (con i≠n) por transiciones al inicial de la siguiente Mi+1


Bifurcaciones „ „

Son composiciones condicionadas y etiquetadas Si la etiqueta es a ⇒ M2 se ejecuta si M1 se detiene en una celda que contenga el símbolo a, es decir, f(qf1, ai) =

„

(q02 , ai, S)

si ai = a si ai ≠ a

Si la etiqueta es ā ⇒ M2 se ejecuta si M1 se detiene en una celda que contenga un símbolo distinto de a 0

Ejemplo

LR

1 1

0


Ejemplos: Búsquedas (Ra, La ) „

„ „

Desplazan la cabeza hacia la derecha (o izquierda) hasta la primera celda en que aparezca el símbolo a No comprueban el contenido de la celda inicial Son bucles etiquetados sobre R ó L Ra ai=a a i ≠a q 1 ai R q 1 ai R q0 q1 q 1 ai R qf ai S


Ejemplos: Desplazamientos (SR,SL) „ „

Trasladan el contenido de la cinta una celda hacia la derecha (o la izquierda) Las operaciones que se realizan para SR son: ¾ ¾ ¾

„

buscar el blanco del final de la palabra intercambiarlo con el símbolo anterior retroceder dos posiciones y repetir con cada símbolo

La máquina se para cuando llega al blanco izquierdo inicial, y deja la cabeza en la celda de la que partió


Ejemplos: Desplazamientos (SR,SL) „

SR es: α≠#

#

R# L ⎯→ # R α ⎯→ L2 ⎯→ R α≠#

#0010# |⎯ #0010# |⎯ #0010# |⎯ #001## |⎯ #001## |⎯ #001#0 |⎯#001#0 |⎯ #001#0 |⎯ #00##0 |⎯ #00##0 |⎯ #00#10 |⎯2 #00#10 |⎯3 #0#010 |⎯2 #0#010 |⎯3 ##0010 |⎯2 ##0010 |⎯ ##0010


Ejemplos: Máquina copiadora „

Repite el dato de la cinta, dejando un blanco en medio #w# |⎯ * #w#w#


Ejemplos: Máquina copiadora „

Repite el dato de la cinta, dejando un blanco en medio #w# |⎯ * #w#w#

„

Operaciones: 1. 2. 3. 4. 5.

buscar el blanco del final y añadir otro volver al blanco izquierdo leer el símbolo siguiente y cambiarlo por blanco volver al segundo blanco de la derecha, cambiarlo por el símbolo leído y añadir otro blanco detrás retroceder dos blancos, reescribir el símbolo y repetir desde 3 hasta que acaba w


Ejemplos: Máquina copiadora α≠#

R# R # → L# → R ⎯→ # → R#2 α R # → L#2 α 2

1

2

3

4

PARA en el paso 3, cuando el símbolo leído es un blanco (el de separación)

5


Ejemplos: Máquina copiadora α≠#

R# R # → L# → R ⎯→ # → R#2 α R # → L#2 α 2

#011# |⎯ #011## |⎯ #011## |⎯#011## |⎯ (α=0) ##11## |⎯ ##11## |⎯ ##11#0 |⎯ ##11#0# |⎯ ##110#0# |⎯ #011#0# |⎯ #011#0## |⎯ (α=1) #0#1#0# #|⎯ * #0#1#01# |⎯ * #011#01# |⎯ * (α=1) #01##01##|⎯ * #01##0110# |⎯ * #011#011# (α=#) FIN


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing Universal (MTU) Lenguajes recursivos y recursivamente enumerables El problema de parada


MTU: Definición La Máquina de Turing Universal (MTU) es una máquina que puede simular cualquier otra. Recibe como entrada: ¾ ¾

la máquina que tiene que simular, M el dato (o datos) que va a procesar, w

Produce como salida el dato w’ que obtendría M a partir de w. MU(M, w) = w' ∀ M∈{MT}, w, w'∈Γ*


MTU: Implementación „ „ „

Se considera el modelo de MT con tres cintas Se codifica sobre alfabeto binario ∑={0, 1} Es preciso: ¾ definir el modo de operación de la MU ¾ establecer un criterio de codificación de la máquina y las cadenas


MTU: Operación „

Configuración inicial Cinta 1

codificación de M cabeza en primer símbolo (cero izquierdo)

Cinta 2

codificación del dato de entrada w cabeza en la primera cifra de la codificación del símbolo en el que estaría la cabeza de M

Cinta 3

codificación del estado inicial cabeza en el primer símbolo de la izquierda


MTU: Operaci贸n Ejemplo. M = ({a, b}, {a, b, #}, #, {qo, qf}, qo, f, {qf}) con f(qo, a)=(qo, b, R) f(qo, #)=(qf, #, L) Configuraci贸n inicial Cinta 1

* q0 a q0 b R * q0 # qf # L *

Cinta 2

a a a a

Cinta 3

q0


MTU: Operación „

Funcionamiento ¾ ¾ ¾ ¾

¾ ¾

Lee estado actual (contenido de la cinta 3) Lee símbolo (de la cinta 2) Busca la transición correspondiente (cinta 1) Si lo encuentra 9

sustituye nuevo estado en la cinta 3

9

sustituye nuevo símbolo en la cinta 2

9

traslada la cabeza de la cinta 2 al inicio del símbolo anterior (L) o siguiente (R)

Si recorre toda la cinta 1 y no lo encuentra se detiene Repite todo el proceso hasta detenerse


MTU: Operación Ejemplo. leer en 3 el estado: q0 leer en 2 el símbolo: a buscar *q0a en 1 y obtener su transición: q0bR copiar el nuevo estado en 3: q0 copiar el nuevo símbolo en 2: a mover la cabeza de 2 según el movimiento indicado: R ¾ repetir hasta llegar a un estado de parada ¾ ¾ ¾ ¾ ¾ ¾

* q0 a q0 b R * q0 # qf # L *

a a a a

q0


MTU: Operación „

Configuración de parada Cinta 1

codificación de M (no se modifica)

Cinta 2

codificación del dato de salida w'

Cinta 3

codificación del estado de parada


MTU: Operaci贸n Ejemplo Configuraci贸n de parada Cinta 1

* q0 a q0 b R * q0 # qf # L *

Cinta 2

b b b b

Cinta 3

qf


MTU: Codificación binaria „

Criterio de codificación ¾

estados

qi → 1i ¾

símbolos

Q={qj}j=1..n (q1 inicial y F={q2})

Γ={ai}i=1..m con a1=#

aj → 1j ¾

¾

desplazamientos L → 1, R → 11 transiciones 01i01j01k01l0110

{L, R} f(qi, aj) = (qk, al, R)


MTU: Codificación binaria „

Máquina codificada Cadena M∈{0, 1}* con todas sus transiciones:

M = 01i101j101k101l101m10 ... 01jN01iN01kN01lN01mN0 „

Dato codificado Un dato w = ai aj ... ar ∈Γ* podría codificarse como:

w = 0 0m-i1i 0 0m-j1j 0 ... 0m-r1r 0


MTU: Codificaci贸n binaria Ejemplo. Codificar la m谩quina: M1 = ({0,1} , {0,1, #} , # , {p, q, r} , p , f , {r}) f

0

1

#

p

p0R

q1R

r0L

q

q0R

p1R

r1L

y las cadenas 01 y 10010


MTU: Codificación binaria Siguiendo el criterio anterior sería: Γ = {#=1, 0=11, 1=111} Q = {p=1, r=11, q=111}

luego la máquina vendrá dada por: M → 01011010110110 010111011101110110 0101011011010 011101101110110110 011101110101110110 0111010110111010

y los datos serán: 01 → 10010 →

0 011 0 111 0 0 111 0 011 0 011 0 111 0 011 0


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Lenguajes recursivos Propiedades de los l. recursivos „

Todo lenguaje regular es recursivo Si L es regular ⇒ ∃ AFD = (∑, Q, q0, f, F) ⇒ puede definirse una máquina M tal que: M = (∑, ∑∪{#}, #, Q∪{qf'}, q0, f', {qf'}) con

f'(q, x) = (f(q, x), x, R) f'(qf, #) = (qf', #, S)

∀ x∈∑, q∈Q ∀ qf∈F

M decide el lenguaje L ⇒ L es recursivo


Lenguajes recursivos „

Todo lenguaje indep. de contexto es recursivo Si L es indep. de contexto ⇒ ∃ AP = (∑, Γ, #, Q, q0, ∆, F) ⇒ puede definirse una máquina M de dos cintas tal que: cinta 1 contiene el dato de entrada nunca se modifica su contenido sólo admite desplazamientos R y S cinta 2 simula la pila marca el extremo izquierdo # y no lo rebasa los desplazamientos L borran siempre

M decide el lenguaje L ⇒ L es recursivo


Lenguajes recursivos „

El conjunto de los lenguajes recursivos es cerrado bajo las operaciones de: ¾

unión

¾

intersección

¾ complemento


Lenguajes recursivos Unión „

Si L1 y L2 son recursivos ⇒ L1∪ L2 es recursivo Si ∃ M1 y M2 que deciden L1 y L2 se puede definir una máquina M de dos cintas tal que:

¾

copie la entrada w en la segunda cinta: (q0, w #) |⎯ * ((q01, q02), w w)


Lenguajes recursivos ¾

simule simultáneamente las acciones de M1 y M2 (una en cada cinta), es decir: si f1 (qi1, a) = (qj1, a', R) y f2 (qk2, b) = (qm2, b', R) → f((qi1, qk2), ab)=((qj1, qm2), a'b', RR) … si f1 (qi1, a)=∅ → f((qi1, qk2), ab)=((qi1, qm2), ab', SR) … si f2 (qk2, b)=∅ → f((qi1, qk2), ab)=((qj1, qk2), a'b, RS) … si f1 (qi1, a)=f2 (qk2, b)=∅ (w∉L1∪L2) → f((qi1, qk2), ab)=∅ …


Lenguajes recursivos La máquina M = (∑1∪∑2, Γ1∪Γ2, #, Q1×Q2∪{q0, qf}, q0, f, {qf})

acepta el lenguaje L1 ∪ L2 y para siempre ⇒ M decide L1∪ L2 ⇒ ⇒ L1 ∪ L2 es recursivo


Lenguajes recursivos Intersección „ Si L1 y L2 son recursivos ⇒ L1∩ L2 lo es Si ∃ M1 y M2 que los deciden Se define M como una máquina de dos cintas tal que: … copia el dato w en la cinta 2 … actúa como M1 sobre la primera cinta … si llega a qf1 actúa como M2 sobre la segunda cinta … su estado final es qf2


Lenguajes recursivos

La máquina M = (∑1∪∑2, Γ1∪Γ2, #, Q1×Q2∪{q0, qf}, q0, f, {qf})

acepta el lenguaje L1 ∩ L2 y para siempre ⇒ M decide L1 ∩ L2 ⇒ ⇒ L1 ∩ L2 es recursivo


Lenguajes recursivos Complemento „

Si L es recursivo ⇒ L también lo es Si ∃ M que decide L

M = (∑, Γ, #, Q, q0, f, F) se puede definir M' = (∑, Γ, #, Q, q0, f, Q-F) M' acepta el lenguaje⎯L y para siempre ⇒ M’ decide⎯L ⇒ ⎯L es recursivo


Lenguajes recursivamente enumerables Propiedades de los l. r. e. „

Si un lenguaje es recursivamente enumerable ⇔ existe una máquina de Turing capaz de enumerarlo

„

El conjunto de los lenguajes recursivamente enumerables: … es cerrado bajo unión e intersección … no es cerrado bajo complemento


Lenguajes recursivamente enumerables Complemento „ Si L es recursivamente enumerable pero no recursivo ⇒ ∃ M tal que no para con algún w'∉L Si existiera M' que aceptara ⎯L pararía ∀ w'∉L ⇒ Existiría una M'' que decidiría L y⎯L ⇒ L sería recursivo ⇒⎯L no es recursivamente enumerable


Lenguajes recursivamente enumerables „

Existen lenguajes no recursivos

Ej. Lenguaje de diagonalización Considerando ¾ ¾

el conjunto ordenado de las MT {Mi} el conjunto {0,1}*

Se pueden definir los lenguajes: L={wi / wi∈L(Mi)} y L ={wi / wi∉L(Mi)}


Lenguajes recursivamente enumerables w1 w2 w3 .......

wi

.....

wk .....

M1 0

0

0

1

0

L1

M2 0

0

1

0

0

L2

M3 0

1

1

1

0

L3

...

...

...

...

...

...

...

Mi 0

0

0

1

0

Li

...

...

...

...

...

...

...

Mk 1

1

0

0

多?

Ld

...

...

...

...

...

...

...


Lenguajes recursivamente enumerables No puede existir una máquina de Turing que acepte L → L={wi / wi∈L(Mi)} no es decidible (es recursivamente enumerable pero no es recursivo)

→ Ld = L = {wi / wi∉L(Mi)} no es computable (no es recursivamente enumerable)


Máquinas de Turing y gramáticas „

Si un lenguaje es recursivamente enumerable ⇔ existe una gramática capaz de generarlo

⇐)

Si L= tiene una gramática G0 como G0 tiene un número finito de reglas que pueden ordenarse ⇒ se pueden generar sus palabras en un cierto orden ⇒ ∃ Me que enumera L ⇒ ∃ Ma que acepta L


Máquinas de Turing y gramáticas ⇒)

Si L tiene una máquina de Turing M = ( ∑, Γ, #, Q, q0, f, F ) ∀ w∈L(M) se tiene que

q0w |⎯ * #ω1qfω2# , ω1, ω2∈Γ* ⇒ Se puede definir una gramática G = ( ∑, (Γ-∑)∪Q∪{S, I, B}, S, P ) con tres grupos de producciones:


Máquinas de Turing y gramáticas ¾

las que generan configuraciones finales ( #Iω1qfω2# ) S::= #S | S# |ID D::= αD | Dα | qf

¾

las que llevan a configuración inicial ( de ω1qfω2 a q0w ) bqj ::= qia qjαb’::= αqia’

¾

∀ α∈Γ-{#}, qf ∈F ∀ f(qi, a) = (qj, b, R) ∀ f(qi, a’) = (qj, b’, L), α∈Γ

las que eliminan blancos y la combinación Iq0 # ::= ε

y

Iq0 ::= ε

Se tiene que ∀ w∈L(M)

S →* #ω1qfω2# →* Iq0w → w

⇒ ∃ G0 que genera L


Máquinas de Turing y gramáticas „

Si un lenguaje es dependiente de contexto ⇔ lo acepta algún autómata linealmente acotado Sea L=L(G1) Si G1 no tiene reglas compresoras y w∈L ⇔ S → ω1→ ω2 → ... → ωn → w con |w|≥|ωi| ∀ωi / 1≤i≤n ⇔ la MT que simula esa derivación de forma inversa no necesita más celdas de las que ocupa w ⇔ ⇔ L es aceptado por un ALA


Máquinas de Turing y gramáticas Conclusiones … {L

rec enumerables} = {L(aceptados por MT)} = {L(G0)}

… {L

rec enumerables} ⊂ {P(∑*)}

… {L

recursivos} = {L(decididos por MT)}

… {L

recursivos} ⊂ {L rec enumerables}

… {L

dep. de contexto} = {L(G1)} = {L(ALA)}

… {L

dep. de contexto} ⊂ {L recursivos}


Lenguajes, gramáticas y autómatas {P (∑ * )}

{ L r e c e n u m e r a b l e s} { L r e cu r s ivo s } {L d c} { L i c} { L r e g u la r e s }

{ M T a c e p ta } { M T d e c id e } {G 0}

{ALA} {G 1} {G 2} {G 3 }

{APN} {APD} {A F }


Contenido 1. 2. 3. 4. 5. 6. 7. 8.

Introducción La máquina de Turing Modificaciones de la MT Máquinas de Turing y lenguajes Construcción con máquinas básicas La máquina de Turing universal Lenguajes recursivos y recursivamente enumerables El problema de parada


Problema de parada de la MT „

Definiciones … Problema

de decisión: Aquel que presenta dos posibles soluciones

p:Σ* → {0, 1} … Problema

decidible: Problema de decisión para el que existe una MT capaz de resolver todos sus posibles casos


Problema de parada de la MT „

Ejemplos L y w ¿w∈L? sólo es decidible si L∈{L1} … Dada G ¿L(G) es vacío? sólo es decidible si G∈{G3} … Dadas M y w ¿M para con w? PROBLEMA DE PARADA … Dados


Problema de parada de la MT „

Dadas M y w ¿M parará al procesar w? Si este problema es decidible ⇒

∃ Mp que “avisa” de todos los bucles infinitos ⇒ A partir de Mp puede obtenerse una ML que decide cualquier lenguaje recursivamente enumerable, en particular L={wi / wi∈Mi}, que no es recursivo, lo sería ⇒ ⇒ El problema de parada no es decidible


Problema de parada de la MT Otros problemas no decidibles „

Cinta en blanco …

„

Vacuidad …

„

Dado L ∈{L i c}, ¿L es ambiguo?

Intersección de los lenguajes indeps. de contexto … …

„

Dadas M1 y M2, ¿L(M1) = L(M2)?

Ambigüedad de los lenguajes indeps. de contexto …

„

Dada M, ¿L(M)=∅?

Igualdad …

„

Dada M, ¿M para con la cinta en blanco?

...

Dados L1, L2∈{L i c}, ¿L1 ∩ L2 =∅? Dados L1, L2∈{L i c}, ¿L1 ∩ L2 ∈{L i c}?


Tema 1 Máquinas de Turing

Informática Teórica Belén Pérez Lancho

3º Ing. Téc. Informática de Sistemas


Problemas (I) 1.- Construir una máquina de Turing para resolver los siguientes problemas: a) b) c)

función sucesor (es decir, función tal que f(0)=1, f(1)=10, f(10)=11…) intercambiar el primer uno por el primer cero posterior (p. ej. f(0011100)=0001110 ) colocar los ceros antes que los unos (p. ej. f(01001)=00011 )

VOLVER


Problemas (I) SOLUCION b) Intercambiar el primer uno por el primer cero posterior (p. ej. f(0011100)=0001110 1- Buscar (dcha) primer 1 y marcar (U) si no lo encontramos Colocar 2- Buscar (dcha) primer 0 posterior y poner 1 si no Buscar (izda) U y poner 1 3- Buscar (izda) la U y poner 0 4- Colocar cabeza (buscar izda el # y hacer R) 5- FIN


Problemas (I) SOLUCION c) Colocar los ceros antes que los unos (p. ej. f(01001)=00011 ) Repetir algoritmo anterior Hasta salir por q3

VOLVER


Problemas (II) d) copiar

el primer símbolo al final de la palabra (p. ej. f(01001)=010010 ) e) copiar una cadena ( f(w)=ww, w∈{0, 1}* ) f) invertir una cadena ( f(w)=wR, w∈{0, 1}* g) sumar dos números binarios de la misma longitud


Problemas (III) 2.- Para cada lenguaje obtener una máquina de Turing que lo acepte. Comprobar, computando algunas palabras: a) b) c) d)

L1 = { w∈{a, b}+ de longitud par } L2 = { anbncn, n>0 } L3 = {wcw / w∈{a, b}+ } L4 = { w∈{a, b}+ tales que w=wR}


Problemas (IV) 7.- Describir el lenguaje generado por las reglas siguientes (Σ={a,b,c}): a)

P1 = { S::=aBc|aSBc, aB::=ab, bB::=bb, cB::=Bc}

b)

P2 = {S::=IABCS|ε, BA::=AB, CA::=AC, CB::=BC, IA::=a, aA::=aa, aB::=ab, bB::=bb, bC::=bc,cC::=cc} P2’= {S’::=IS|ε, S::=ABCS|ε, BA::=AB, CA::=AC, CB::=BC, IA::=a, aA::=aa, aB::=ab, bB::=bb, bC::=bc, cC::=cc}

c)


Problemas (V) d)

P3 = {S::=ABCS|ε, XY::=YX, A::=a, B::=b, C::=c}

∀ X,Y∈{A,B,C} e) f) g)

P4 = {S::=LaR, L::=LA, Aa::=aaA, AR::=R, L::=ε, R::=ε } P5 = {S::=ACaB, Ca::=aaC, CB::=DC|E, aD::=Da, AD::=AC, aE::=Ea, AE::=ε} P6 = {S::=LM, L::=LaA|LbB, Xy::=yX, XM::=Mx, L::=ε, M::=ε} ∀ X∈{A,B}, x,y∈{a,b}


Problemas (VI) 8.- Obtener gramáticas para los lenguajes: a) b) c) d) e) f)

L1 = { anbnanbn, n≥0 } L2 = { anwbn con w∈ {a, b}* de longitud n } L3 = {w∈{a, b}* tales que Na(w)<Nb(w)} L4 = {w∈{a,b,c}* Na(w)<Nb(w), Na(w)<Nc(w)} L5 = {www / w∈{a, b}* } L6 = {wwRw / w∈{a, b}* }

(ver más problemas en la hoja de enunciados)

informatica  

informatica

Read more
Read more
Similar to
Popular now
Just for you