EISC M´aquinas de Turing - cime.cl · L es un lenguaje recursivamente enumerable (RE) si existe...
Transcript of EISC M´aquinas de Turing - cime.cl · L es un lenguaje recursivamente enumerable (RE) si existe...
EISC Maquinas de Turing
Maquinas de Turing
Definicion 1
La Maquina de Turing (MT) es el mo-
delo de automata com maxima capacidad
computacional: la unidad de control puede
desplazarse a izquierda o derecha y sobre-
escribir sımbolos en la cinta de entrada.
Definicion 2
Una Maquina de Turing (MT),
M = (Q,Σ,Γ, q0, T, B, δ)
EISC Maquinas de Turing
donde:
1. Q es un conjunto finito de estados.
2. Σ es el alfabeto de entrada.
3. Γ es el alfabeto de la cinta, que incluye
a Σ, Σ ⊆ Γ
4. q0 ∈ Q es el estado inicial.
5. B ∈ Γ es el sımbolo blanco (el sımbo-
lo B no puede hacer parte de Σ) apa-
rece en todas las casillas excepto en
aquellas que contienen los sımbolos de
entrada.
6. T ⊆ Q conjunto de estados finales.
EISC Maquinas de Turing
7. δ es la funcion de transicion tal que:
δ : Q× Γ → Q× Γ× {I, D}δ(q, X) = (p, Y, {I, D})
δ es una funcion parcial, es decir, No
puede estar definida en algunos ele-
mentos del dominio.
Definicion 3
(Funcion parcial) Una funcion f ,
f : A → B se dice que es una funcion
parcial si ∃C ⊆ A, C 6= ∅, tal que ∀x ∈C, ∃f(x) ( existe un subconjunto no vacıo
de A en el que todos los elementos tienen
imagen calculable.)
Observacion 1
Una MT procesa una entrada w ∈ Σ∗
colocadas sobre una cinta infinita en
ambas direcciones. Para procesar la
EISC Maquinas de Turing
cadena w, la unidad de control de M
esta en el estado inicial q0 escanendo
el primer sımbolo de w. Las demas ca-
sillas de la cinta contienen el sımbolo
en blanco B.
Una descripcion instantanea, es una
expresion de la forma:
a1a2 . . . ai−1qai . . . an
donde los sımbolos a1, . . . , an ∈ Γ y q ∈Q
Esta descripcion instantanea a1a2 . . . ai−1qai . . . an
indica que la unidad de control de M
esta en el estado q escanendo el sımbo-
lo ai.
EISC Maquinas de Turing
Una transicion δ(q, B) = (p, s, D) en
una MT requiere que el sımbolo este
escrito en la casilla escaneada, ademas
la unidad de control sobre-escribe el
blanco B sobre s y realiza un despla-
zamiento D.
EISC Maquinas de Turing
Computos especiales
Durante el computo o procesamiento de
la palabra de entrada, hay dos situaciones
especiales que se pueden presentar:
1. El computo termina por que en de-
terminado momento no hay transicion
definida.
2. El computo no termina; esto es lo que
se denomina un bucle infinito. Esta si-
tuacion se representa ası:
w1qw2 `∗ ∞
que indica que el computo que se ini-
cia en w1qw2 no se detiene nunca.
EISC Maquinas de Turing
Lenguaje aceptado por una MT
Una cadena de entrada w es aceptada poruna MT M si el computo que se indica laconfiguracion inicial q0w termina en unaconfiguracion instantanea w1pw2, p es unestado de aceptacion, en la cual M sedetiene completamente. El lenguaje L(M)aceptado por una MT M se define como:
L(M) = {w ∈ Σ : q0w `∗ w1pw2, p ∈ T}
M se para en w1pw2 Si la cadena de entra-da en una maquina M pertenece a L(M),la maquina M siempre se detiene.
Definicion 4
Las maquinas de Turing originan las si-guientes clases de lenguajes:
1. L es un lenguaje recursivamente enumerable
(RE) si existe una MT M tal queL(M) = L.
EISC Maquinas de Turing
Definicion 5
Sea M una maquina de Turing; se dice
que L = L(M) es un lenguaje recursi-
vamente enumerable si:
∀x ∈ L, M se DETIENE en q ∈ T ,
∀x /∈ L, M se DETIENE en q /∈ T
o bien No se DETIENE.
2. L es un lenguaje recursivo si existe
una MT M tal que L(M) = L y M
se DETIENE con todas las cadenas de
entrada.
Definicion 6
EISC Maquinas de Turing
Se dice que L es un lenguaje recursivo
si existe al menos una maquina de Tu-ring M , tal que L = L(M) y
∀x ∈ L, M se DETIENE en q ∈ T ,
∀x /∈ L, M se DETIENE en q /∈ T
Observacion 2
Todo lenguaje recursivo es recursivamenteenumerable, pero la afirmacion recıprocano es (en general) valida.
Definicion 7
Un diagrama de transicion esta formadopor un conjunto de nodos que correspon-den a los estados de la MT. la transicionδ(q, a) = (p, b, D) se representa ası:
EISC Maquinas de Turing
Definicion 8
El control finito estacionario es una tran-
sicion que tiene la forma:
δ(q, a) = (p, b, N)
donde a, b ∈ Γ y N representa un No-
desplazamiento.
Observacion 3
Los MT con transiciones estacionarias δ(q, a) =
(p, b, N), aceptan los mismos lenguajes que
los MT estandares. La directiva N tam-
bien se puede simular con un movimiento
a la izquierda, seguido de un retorno a la
derecha.
Ejemplo 1
EISC Maquinas de Turing
Se puede construir una MT que reconoz-
ca a∗ sobre Σ = {a, b}.
Para M = (Q,Σ,Γ, q0, T, B, δ) donde Q =
{q0, q1}, T = {q1}
δ(q0, a) = (q0, a, D)
δ(q0, B) = (q0, a, D)
Sea w = aa
q0aa ` aq0a ` aaq0B ` aaBq1B
por tanto esta maquina para en el estado
q1 y reconoce la cadena.
Ejemplo 2
Se puede disenar un MT que reconozca
{0n1n : n ≥ 1}
EISC Maquinas de Turing
Cambia un 0 por una X y se mueve
hacia la derecha, pasando por encima
de los ceros e Y , hasta llegar al primer
1.
cambia el 1 por la Y y se mueve hacia
la izquierda por encima de todos los
Y y de todos los ceros hasta llegar a
una X y se repite el proceso hasta que
solo queden Xs y Y s.
EISC Maquinas de Turing
La funcion δ se define ası:
δ(q0,0) = (q1, X, D)
δ(q1,0) = (q1,0, D)
δ(q1, X) = (q1, X, D)
δ(q1,1) = (q2, Y, I)
δ(q2, Y ) = (q2, Y, I)
δ(q2,0) = (q2,0, I)
δ(q2, X) = (q0, X, D)
δ(q0, Y ) = (q3, Y, D)
δ(q3, Y ) = (q3, Y, D)
δ(q3, B) = (q4, B, D)
Sea T = {q4}
sea w = 1100
q00011 ` Xq111 ` X0q111 ` Xq20Y 1
` q2X0Y 1 ` Xq00Y 1 ` XXq1Y 1
` XXY q11 ` XXq2Y Y ` Xq2XY Y
` XXq0Y Y ` XXY q3Y
` XXY Y q3B ` XXY Y Bq4B
EISC Maquinas de Turing
la MT para por que quedo en un estado
de aceptacion y la cadena es reconocida.
Ejemplo 3
Se puede construir una MT que acepte el
lenguaje L = {aibici : i ≥ 0} sobre Σ =
{a, b, c}.
1. Se cambia la a por una X y se mueve
hacia la derecha pasando por encima
de todas las a′s e Y s, hasta llegar a la
primera b, cambia la primera b por una
Y , se mueve a la derecha pasando por
encima de las bs y Zs y luego encuen-
tra la primera c y la cambia por Z y se
mueve a la izquierda.
2. Luego se mueva a la izquierda pasan-
do por encima de bs, Y s, as, hasta en-
contrar la X la reemplaza por una X
y repite el proceso anterior, cuando la
EISC Maquinas de Turing
maquina reemplaza la cadena X, Y y
Zs reconoce la cadena vacıa y busca
el estado de aceptacion.
EISC Maquinas de Turing
MT como calculadora de funciones
Como las maquinas de Turing pueden trans-
formar cadenas de entradas, tambien se
utilizan como mecanismos para calcular
funciones.
Definicion 9
Formalmente una MT M = (Q,Σ,Γ, q0, T, B, δ)
calcula una funcion
f : Σ∗ → Γ∗ (parcial o total)
si para una entrada w se tiene:
q0w `∗ qfv, donde v = f(w)
El modelo de MT no utiliza estado de
aceptacion, el estado qf es llamado estado
final se usa para terminar el proceso de la
entrada y producir la salida.
Ejemplo 4
EISC Maquinas de Turing
Supongamos que tenemos Σ = {a, b} y
que representamos los enteros positivos
mediante cadenas solo de as. Ası el ente-
ro n estarıa representado por an. Se pue-
de construir la MT que calcule la funcion
f(n, m) = n+m, implementando la trans-
formacion anbam en an+mb.
Solucion. Se recorren desde la izquierda
todas las as hasta encontrar una b, esta
se reemplaza por una a, cambiando de es-
tado, en este mismo estado se recorren
todas las as a la derecha y cuando se lle-
ga a un blanco se reemplaza por el mismo
blanco se deja la cabezera a la izquierda y
se reemplaza la a por un blanco para res-
tarle la que adiciono y se mueve hacia la
derecha y se cambia al estado final q3.
Para M = (Q,Σ,Γ, q0, q3, B, δ) donde la
EISC Maquinas de Turing
funcion δ se define ası:
δ(q0, a) = (q0, a, D)
δ(q0, b) = (q1, a, D)
δ(q1, a) = (q1, a, D)
δ(q1, B) = (q2, B, I)
δ(q2, a) = (q3, B, D)
EISC Maquinas de Turing
MT como generadoras de lenguaje
Otra de las capcidades importantes es la
de generar lenguajes, tarea en la cual los
estados finales son son necesarios. Con-
cretamente una MT M = (Q,Σ,Γ, q0, B, δ)
genera un lenguaje L ⊆ Σ∗ si:
1. M comienza a operar con la cinta en
blanco en el estado inicial q0.
2. Cada vez que M retorna al estado ini-
cial q0, hay una cadena u ∈ L escrita
sobre la cinta.
3. Todas las cadenas de L son, eventual-
mente, generadas por M .
Ejemplo 5
EISC Maquinas de Turing
El siguiente MT genera cadenas con
un numero par de aes sobre Σ = {a},L = {a2i : i ≥ 0}
EISC Maquinas de Turing
Tecnicas para la construccion de MT
Existen tecnicas que facilitan la construc-
cion de MT, pero no afectan la potencia
computacional del modelo ya que siem-
pre se puede simular la solucion obtenida
mediante el modelo estandar.
Almacenamiento en el control finito
Se puede utilizar el estado de control para
almacenar una cantidad finita de informa-
cion.
δ([qi,Γ], σ) = ([qt,Γ], β, {I, D, N})
Cada estado se representa como un par
ordenado [qi,Γ] donde el primer elemento
es el estado real y el segundo la informa-
cion que se pretende almacenar, ademas
σ, β ∈ Γ
Ejemplo 6
EISC Maquinas de Turing
Construir una MT que reconozca:
L = 01∗ + 10∗
Para la maquina M = (Q,Σ,Γ, q0, T, B, δ):
Q = {q0, q1} × {0,1, B}Estado inicial [q0, B]
Estado final [q1, B]
La funcion de transicion δ esta dad por:
δ([q0, B],0) = ([q1,0],0, D)
δ([q1,0],1) = ([q1,0],1, D)
δ([q1,0], B) = ([q1, B], B, D)
δ([q0, B],1) = ([q1,1],1, D)
δ([q1,1],0) = ([q1,1],0, D)
δ([q1,1], B) = ([q1, B], B, D)
EISC Maquinas de Turing
Uso de subrutinas
Es la misma idea cuando se trabaja en un
lenguaje de alto nivel, aprovechar las ven-
tajas del diseno modular para facilitar el
diseno de la MT.
En una tabla de transicion se resuelve el
problema de llamados:
Habra estados de ”llamados a subrutina”qll
caracterizados por que suponen la tran-
sicion al estado inicial de una ”subru-
tina”
EISC Maquinas de Turing
El estado final de la subrutina sera real-mente un estado de salida que permitetransitar hacia un estado de return enla MT ”principal”.
Observacion 4
Para obtener una MT estandar, bastarıacon reescribir todas las funciones de tran-sicion como una unica funcion de transi-cion mas grande.
EISC Maquinas de Turing
Maquinas de Turing Modificadas
Hay ciertos modelos de computacion re-lacionados con las maquinas de Turing,que poseen el mismo potencial como re-conocedores de lenguajes que el modelobasico.
Maquina de Turing Multicinta
En el modelo de multicintas, hay n cintasdiferentes y n cabezas de L/E. La funcionde transicion para maquinas de Turing conn cintas:
δ : Q× Γn → Q× Γn × {D, I, N}n
EISC Maquinas de Turing
Ejemplo 7
La MT de dos cintas que reconoce el len-guaje:
L = {aibici : i ≥ 0}Se coloca la cadena de entrada en la pri-mera cinta, la idea es copiar en la segundacinta una X por cada a y cuando encuen-tre la primera b, se detiene en la primeacinta, luego se avanza a la derecha en laprimera cinta y se avanza a la izquierdaen la segunda cinta, cuando encuentra laprimera c las dos cintas avanzan hacia laderecha.
La funcion de transicion δ es la siguien-te, sea T = {q3}
δ(q0, (a, B)) = (q0, (a, X), (D, D))
δ(q0, (b, B)) = (q1, (b, B), (N, D))
δ(q1, (b, X)) = (q1, (b, X), (D, I))
δ(q1, (c, B)) = (q2, (c, B), (N, D))
δ(q2, (c, X)) = (q2, (c, X), (D, D))
δ(q2, (B, B)) = (q3, (B, B), (D, D))
EISC Maquinas de Turing
Maquina de Turing Multipista
En el modelo multipista, la cinta esta di-vidida en un numero finito de k pistas,la funcion de transicion tiene la siguienteforma:
δ : Q× Γk → Q× Γk × {D, I, N}δ(q, (a1, a2, a3, . . . , ak)) = (p, (b1, b2, b3, . . . , bk),
{I, D, N})
por ejemplo para realizar la suma de es-tos dıgitos se va de la parte izquierda a laderecha con la siguiente transicion:
δ(q0, σ) =
{(q0, σ, D) si σ 6= (B, B, B)(q1, σ, I) si σ = (B, B, B)
EISC Maquinas de Turing
Teorema 1
El lenguaje L es reconocido por una MT
multicinta⇔ L es reconocido por una maqui-
na de Turing de una sola cinta.
1. ⇐) Si L es reconocido por una MT de
una sola cinta, Entonces L es reconocido
por una MT multicinta.
Basta con hacer funcionar una sola
cinta de la MT multicinta, podrıa ser
la cinta de la cadena de entrada.
2. ⇒) Si L es reconocido por una MT multicinta
entonces L es reconocido por una maquina
de Turing de una sola cinta.
Se supone que la MT M dispone de k
cintas, acepta el lenguaje L, y simula-
mos M mediante una MT N de una
sola cinta, soponiendo 2k pistas.
EISC Maquinas de Turing
Si La MT multicinta tiene k = 2
cintas se dispone de una MT de
una sola cintas de 2k = 4 pistas, las
pistas primera y tercera tienen la
informacion de las dos cintas. Las
pistas segunda y cuarta tienen las
cabezas.
Para simular un movimiento M , la
cabeza de N usamos un marcador
para las cabezas de la cintas y si
hay un desplazamiento a la derecha
en M , entonces reemplazamos el 1
en N por B y viceversa si hay un
desplazamiento en la izquierda, el
reemplazo de 1 por B y B por 1
hace la simulacion de los cabezales
de M .
EISC Maquinas de Turing
EISC Maquinas de Turing
Maquina de Turing no deterministas
Se diferencia de las MT deterministas por
la funcion δ, que para cada caso q y para
cada sımbolo de cinta X:
δ(q, X) = {(q1, Y1, S1), (q2, Y2, S2), . . . (qk, Yk, Sk)}
para cualquier k entero postivo finito.
Observacion 5
Ambos modelos tienen el mismo poder
computacional.
Teorema 2
El lenguaje L es reconocido por una Maquina
de Turing
No Determinista ⇔ L es reconocido por una
maquina de Turing Determinista.
Observacion 6
EISC Maquinas de Turing
Ambos modelos tienen el mismo poder
computacional.
1. ⇐) Si L es reconocido por una MTD entonces
L es reconocido por una Maquina de Turing
No Determinista.
las MTD son maquinas de Turing No
Deterministas en las que hay una tran-
sicion por cada estado/sımbolo.
2. ⇒) Si L es reconocido por una Maqui-
na de Turing NO determinista enton-
ces L es reconocido por una Maquina
de Turing Determinista.
Podemos simular una MTND con una
MT determinsta de tres cintas:
a) Se obtiene un n que es el nume-
ro maximo de opciones asociada a
cada transicion.
b) En la primera cinta va la cadena de
entrada.
EISC Maquinas de Turing
c) En la segunda cinta se generan las
cadenas sobre el alfabeto {1,2, . . . , n}por orden numerico.
1) Todas las cadenas de longitud 1.
1,2,3, . . . , n
2) Todas las cadenas de longitud 2.
11,12,13, . . . ,1n,21,22,23, . . . ,2n, n1, n2,
n3, . . . , nn
3) Todas las cadenas de longitud 3.
111,112,113, . . . ,11n,121,122,123, . . . ,
12n,1n1,1n2,1n3, . . . ,1nn
Al final todas las cadenas de todas
las longitudes deben ir en la cinta
2 en orden lexicografico.
EISC Maquinas de Turing
d) En la tercera cinta se realiza la si-mulacion, cada vez que se gene-ra una secuencia en la cinta 2, secopia la cadena de entrada en lacinta 3 y simula computacion delMTND.δ(q, (a,1, B)) = (p, (a,1, a), (D, D, D))
e) La MTD prueba todas las combi-naciones de la cinta dos, empezan-do cada vez que una configuracioncuando no sirva. Si la cadena es re-conocida en el MTND tambien esreconocida en el MTD multicinta.
Ejemplo 8
Sea el siguiente MT no determinıstico.
EISC Maquinas de Turing
δ(q0, a) = {1︷ ︸︸ ︷
(q0, a, D),
2︷ ︸︸ ︷(q1, a, D)}
δ(q1, b) = {1︷ ︸︸ ︷
(q1, b, D)}
δ(q1, B) = {1︷ ︸︸ ︷
(q2, B, D)}
si se va ha reconocer la cadena la MTND
hace esta derivacion:
q0a ` aq1B ` aBq2B
y la cadena es reconocida pero si se va
por el otro camino
q0a ` aq0B
llegarıa a una transicion no existente.
Entonces hay una probabilidad que una de
las secuencias de la cinta 2 que reconoce
la cadena a sea: 1,1,1
EISC Maquinas de Turing
algunas transiciones que pueden simular el
MTND serıan:
δ(q0, (a,1, B)) = (q1, (a,1, a), (D, D, D)
δ(q1, (B, ∗, B)) = (q5, (B, ∗, B), (I, N, I)
δ(q5, (a, ∗, a)) = (q5, (a, ∗, B), (I, N, I)
δ(q5, (B, ∗, B)) = (q0, (B, ∗, B), (D, D, D)
δ(q0, (a, ∗, B)) = (q5, (a, ∗, B), (D, D, D)
δ(q5, (B,2, B)) = (q5, (B,2, B), (I, N, I)
δ(q5, (a,2, B)) = (q5, (a,2, a), (D, D, D)
En la transicion
δ(q0, (a,1, B)) = (q1, (a,1, a), (D, D, D), el
1 de (a,1, B) significa que se modela en el
MTND la transicion δ(q0, a) = (q1, B, D),
es decir se realiza la transicion 1.
EISC Maquinas de Turing
Simulacion de Automatas por medio de MT
Los automatas (AFD,AFN o AFN-ε) y los
automatas de pila (AFDP o AFPN) se
pueden simular con maquinas de Turing.
Definicion 10
Dado un automata M se puede construir
una MT que acepte el mismo lenguaje que
M .
Observacion 7
Las simulaciones de automatas por medio
de MT permiten concluir que los lenguajes
regulares y los lenguajes independientes de
contexto son recursivos.
Definicion 11
EISC Maquinas de Turing
Dado un AFD M = (Q,Σ, q0, T, δ) se pue-
de construir una MT M ′ tal que L(M) =
L(M ′).
Observacion 8
La MT M ′ ası construida se detiene ante
cualquier entrada w.
Teorema 3
Todo lenguaje regular es recursivo.
Definicion 12
Un automata de pila M se puede convertir
en una MT M ′ tal que L(M) = L(M ′).
Observacion 9
La MT sera determinista o no determi-
nista segun si es un AFDP o un AFDN.
EISC Maquinas de Turing
Observacion 10
La MT construida siempre parara con to-
das las cadenas de entrada.
Teorema 4
Todo LIC es un lenguaje recursivo.
Teorema 5
Si L1 y L2 son lenguajes recursivos, entonces
L1 ∪ L2 tambien lo es.
Observacion 11
Existen lenguajes recursivos que no son
lenguajes independientes de contexto. Por
ejemplo podemos verque la interseccion
de dos LICs nos dio {aibici : i ≥ 0} y no es
LIC.
EISC Maquinas de Turing
Definicion 13
Una gramatica G = (Σ, N, S, P ) es una
gramatica sensible de contexto si todas
las producciones son de la forma α → β,
donde α, β ∈ (N ∪Σ)+ y | α |≤| β |.
Ejemplo 9
EISC Maquinas de Turing
Sea el lenguaje {aibici : i ≥ 1} la gramatica
sensible del contexto:
S → abc | aAbc
Ab → bA
Ac → Bbcc
bB → aa | aaA
Lema 1
Sea G = (N,Σ, S, P ) una gramatica sen-
sible del contexto. Entonces existe una
Maquina de Turing M , que PARA sobre to-
da entrada y acepta L(G).
Teorema 6
Si L es un lenguaje sensible del contexto,
entonces L es recursivo.
Teorema 7
EISC Maquinas de Turing
1. El complemento de un lenguaje recur-
sivo tambien es recursivo.
2. La union de dos lenguajes RE es RE.