Vous êtes sur la page 1sur 42

EISC Máquinas de Turing

Máquinas de Turing

Definición 1

La Máquina de Turing (MT) es el mo-


delo de autómata com máxima capacidad
computacional: la unidad de control puede
desplazarse a izquierda o derecha y sobre-
escribir sı́mbolos en la cinta de entrada.

Definición 2

Una Máquina de Turing (MT),

M = (Q, Σ, Γ, q0, T, B, δ)
EISC Máquinas 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
aquéllas que contienen los sı́mbolos de
entrada.

6. T ⊆ Q conjunto de estados finales.


EISC Máquinas de Turing

7. δ es la función de transición tal que:

δ : Q × Γ → Q × Γ × {I, D}
δ(q, X) = (p, Y, {I, D})
δ es una función parcial, es decir, No
puede estar definida en algunos ele-
mentos del dominio.

Definición 3

(Función parcial) Una función f ,


f : A → B se dice que es una función
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.)

Observación 1

Una MT procesa una entrada w ∈ Σ∗


colocadas sobre una cinta infinita en
ambas direcciones. Para procesar la
EISC Máquinas de Turing

cadena w, la unidad de control de M


está en el estado inicial q0 escanendo
el primer sı́mbolo de w. Las demás ca-
sillas de la cinta contienen el sı́mbolo
en blanco B.

Una descripción instantánea, es una


expresión de la forma:

a1a2 . . . ai−1qai . . . an
donde los sı́mbolos a1, . . . , an ∈ Γ y q ∈
Q

Esta descripción instantánea a1a2 . . . ai−1qai . . .


indica que la unidad de control de M
está en el estado q escanendo el sı́mbo-
lo ai.
EISC Máquinas de Turing

Una transición δ(q, B) = (p, s, D) en


una MT requiere que el sı́mbolo este
escrito en la casilla escaneada, además
la unidad de control sobre-escribe el
blanco B sobre s y realiza un despla-
zamiento D.
EISC Máquinas de Turing

Computos especiales
Durante el cómputo o procesamiento de
la palabra de entrada, hay dos situaciones
especiales que se pueden presentar:

1. El cómputo termina por que en de-


terminado momento no hay transición
definida.

2. El cómputo no termina; esto es lo que


se denomina un bucle infinito. Esta si-
tuación se representa ası́:

w1qw2 `∗ ∞
que indica que el cómputo que se ini-
cia en w1qw2 no se detiene nunca.
EISC Máquinas de Turing

Lenguaje aceptado por una MT


Una cadena de entrada w es aceptada por
una MT M si el cómputo que se indica la
configuración inicial q0w termina en una
configuración instantánea w1pw2, p es un
estado de aceptación, en la cual M se
detiene 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 máquina M pertenece a L(M ),
la máquina M siempre se detiene.

Definición 4

Las máquinas de Turing originan las si-


guientes clases de lenguajes:

1. L es un lenguaje recursivamente enumerable


(RE) si existe una MT M tal que
L(M ) = L.
EISC Máquinas de Turing

Definición 5

Sea M una máquina 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
ó 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.

Definición 6
EISC Máquinas de Turing

Se dice que L es un lenguaje recursivo


si existe al menos una máquina 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

Observación 2

Todo lenguaje recursivo es recursivamente


enumerable, pero la afirmación recı́proca
no es (en general) válida.

Definición 7

Un diagrama de transición está formado


por un conjunto de nodos que correspon-
den a los estados de la MT. la transición
δ(q, a) = (p, b, D) se representa ası́:
EISC Máquinas de Turing

Definición 8

El control finito estacionario es una tran-


sición que tiene la forma:

δ(q, a) = (p, b, N )
donde a, b ∈ Γ y N representa un No-
desplazamiento.

Observación 3

Los MT con transiciones estacionarias δ(q, a) =


(p, b, N ), aceptan los mismos lenguajes que
los MT estándares. La directiva N tam-
bien se puede simular con un movimiento
a la izquierda, seguido de un retorno a la
derecha.

Ejemplo 1
EISC Máquinas 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 máquina para en el estado
q1 y reconoce la cadena.

Ejemplo 2

Se puede diseñar un MT que reconozca


{0n1n : n ≥ 1}
EISC Máquinas 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
sólo queden Xs y Y s.
EISC Máquinas de Turing

La función δ 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 Máquinas de Turing

la MT para por que quedó en un estado


de aceptación 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 a0s 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 Máquinas de Turing

máquina reemplaza la cadena X, Y y


Zs reconoce la cadena vacı́a y busca
el estado de aceptación.
EISC Máquinas de Turing

MT como calculadora de funciones


Como las máquinas de Turing pueden trans-
formar cadenas de entradas, también se
utilizan como mecanismos para calcular
funciones.

Definición 9

Formalmente una MT M = (Q, Σ, Γ, q0, T, B, δ)


calcula una función

f : Σ∗ → Γ ∗ (parcial o total)
si para una entrada w se tiene:

q0w `∗ qf v, donde v = f (w)


El modelo de MT no utiliza estado de
aceptación, el estado qf es llamado estado
final se usa para terminar el proceso de la
entrada y producir la salida.

Ejemplo 4
EISC Máquinas de Turing

Supongamos que tenemos Σ = {a, b} y


que representamos los enteros positivos
mediante cadenas sólo de as. Ası́ el ente-
ro n estarı́a representado por an. Se pue-
de construir la MT que calcule la función
f (n, m) = n + m, implementando la trans-
formación anbam en an+mb.

Solución. Se recorren desde la izquierda


todas las as hasta encontrar una b, ésta
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 Máquinas de Turing

función δ 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 Máquinas 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 Máquinas de Turing

El siguiente MT genera cadenas con


un número par de aes sobre Σ = {a},
L = {a2i : i ≥ 0}
EISC Máquinas de Turing

Técnicas para la construcción de MT


Existen técnicas que facilitan la construc-
ción de MT, pero no afectan la potencia
computacional del modelo ya que siem-
pre se puede simular la solución obtenida
mediante el modelo estándar.

Almacenamiento en el control finito


Se puede utilizar el estado de control para
almacenar una cantidad finita de informa-
ción.

δ([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-
ción que se pretende almacenar, además
σ, β ∈ Γ

Ejemplo 6
EISC Máquinas de Turing

Construir una MT que reconozca:

L = 01∗ + 10∗
Para la máquina M = (Q, Σ, Γ, q0, T, B, δ):

Q = {q0, q1} × {0, 1, B}


Estado inicial [q0, B]
Estado final [q1, B]
La función de transición δ 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 Máquinas de Turing

Uso de subrutinas
Es la misma idea cuando se trabaja en un
lenguaje de alto nivel, aprovechar las ven-
tajas del diseño modular para facilitar el
diseño de la MT.

En una tabla de transición se resuelve el


problema de llamados:

Habrá estados de ”llamados a subrutina”qll


caracterizados por que suponen la tran-
sición al estado inicial de una ”subru-
tina”
EISC Máquinas de Turing

El estado final de la subrutina será real-


mente un estado de salida que permite
transitar hacia un estado de return en
la MT ”principal”.

Observación 4

Para obtener una MT estándar, bastarı́a


con reescribir todas las funciones de tran-
sición como una única función de transi-
ción más grande.
EISC Máquinas de Turing

Máquinas de Turing Modificadas


Hay ciertos modelos de computación re-
lacionados con las máquinas de Turing,
que poseen el mismo potencial como re-
conocedores de lenguajes que el modelo
básico.
Máquina de Turing Multicinta
En el modelo de multicintas, hay n cintas
diferentes y n cabezas de L/E. La función
de transición para máquinas de Turing con
n cintas:
δ : Q × Γn → Q × Γn × {D, I, N }n
EISC Máquinas 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 segunda
cinta una X por cada a y cuando encuen-
tre la primera b, se detiene en la primea
cinta, luego se avanza a la derecha en la
primera cinta y se avanza a la izquierda
en la segunda cinta, cuando encuentra la
primera c las dos cintas avanzan hacia la
derecha.

La función de transición δ 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 Máquinas de Turing

Máquina de Turing Multipista


En el modelo multipista, la cinta está di-
vidida en un número finito de k pistas,
la función de transición tiene la siguiente
forma:
δ : 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 la
derecha con la siguiente transición:

(
6 (B, B, B)
(q0, σ, D) si σ =
δ(q0, σ) =
(q1, σ, I) si σ = (B, B, B)
EISC Máquinas de Turing

Teorema 1

El lenguaje L es reconocido por una MT


multicinta ⇔ L es reconocido por una máqui-
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 máquina
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 Máquinas 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
información 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 simulación de los cabezales
de M .
EISC Máquinas de Turing
EISC Máquinas de Turing

Máquina de Turing no deterministas


Se diferencia de las MT deterministas por
la función δ, 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.

Observación 5

Ambos modelos tienen el mismo poder


computacional.

Teorema 2

El lenguaje L es reconocido por una Máquina


de Turing
No Determinista ⇔ L es reconocido por una
máquina de Turing Determinista.

Observación 6
EISC Máquinas de Turing

Ambos modelos tienen el mismo poder


computacional.

1. ⇐) Si L es reconocido por una MTD entonces


L es reconocido por una Máquina de Turing
No Determinista.
las MTD son máquinas de Turing No
Deterministas en las que hay una tran-
sición por cada estado/sı́mbolo.

2. ⇒) Si L es reconocido por una Máqui-


na de Turing NO determinista enton-
ces L es reconocido por una Máquina
de Turing Determinista.
Podemos simular una MTND con una
MT determinsta de tres cintas:

a) Se obtiene un n que es el núme-


ro máximo de opciones asociada a
cada transición.

b) En la primera cinta va la cadena de


entrada.
EISC Máquinas de Turing

c) En la segunda cinta se generan las


cadenas sobre el alfabeto {1, 2, . . . , n}
por orden numérico.

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 lexicográfico.
EISC Máquinas de Turing

d) En la tercera cinta se realiza la si-


mulación, cada vez que se gene-
ra una secuencia en la cinta 2, se
copia la cadena de entrada en la
cinta 3 y simula computación del
MTND.
δ(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 configuración
cuando no sirva. Si la cadena es re-
conocida en el MTND también es
reconocida en el MTD multicinta.

Ejemplo 8

Sea el siguiente MT no determinı́stico.


EISC Máquinas de Turing

1 2
z }| { z }| {
δ(q0, a) = {(q0, a, D), (q1, a, D)}
1
z }| {
δ(q1, b) = {(q1, b, D)}
1
z }| {
δ(q1, B) = {(q2, B, D)}

si se va ha reconocer la cadena la MTND


hace esta derivación:

q0a ` aq1B ` aBq2B


y la cadena es reconocida pero si se va
por el otro camino

q0a ` aq0B
llegarı́a a una transición 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 Máquinas 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 transición
δ(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 transición δ(q0, a) = (q1, B, D),
es decir se realiza la transición 1.
EISC Máquinas de Turing

Simulación de Autómatas por medio de MT


Los autómatas (AFD,AFN o AFN-) y los
autómatas de pila (AFDP o AFPN) se
pueden simular con máquinas de Turing.

Definición 10

Dado un autómata M se puede construir


una MT que acepte el mismo lenguaje que
M.

Observación 7

Las simulaciones de autómatas por medio


de MT permiten concluir que los lenguajes
regulares y los lenguajes independientes de
contexto son recursivos.

Definición 11
EISC Máquinas de Turing

Dado un AFD M = (Q, Σ, q0, T, δ) se pue-


de construir una MT M 0 tal que L(M ) =
L(M 0).

Observación 8

La MT M 0 ası́ construida se detiene ante


cualquier entrada w.

Teorema 3

Todo lenguaje regular es recursivo.

Definición 12

Un autómata de pila M se puede convertir


en una MT M 0 tal que L(M ) = L(M 0).

Observación 9

La MT será determinista o no determi-


nista según si es un AFDP o un AFDN.
EISC Máquinas de Turing

Observación 10

La MT construida siempre parará 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 también lo es.

Observación 11

Existen lenguajes recursivos que no son


lenguajes independientes de contexto. Por
ejemplo podemos verque la intersección
de dos LICs nos dio {aibici : i ≥ 0} y no es
LIC.
EISC Máquinas de Turing

Definición 13

Una gramática G = (Σ, N, S, P ) es una


gramática sensible de contexto si todas
las producciones son de la forma α → β,
donde α, β ∈ (N ∪ Σ)+ y | α |≤| β |.

Ejemplo 9
EISC Máquinas de Turing

Sea el lenguaje {aibici : i ≥ 1} la gramática


sensible del contexto:

S → abc | aAbc
Ab → bA
Ac → Bbcc
bB → aa | aaA

Lema 1

Sea G = (N, Σ, S, P ) una gramática sen-


sible del contexto. Entonces existe una
Máquina 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 Máquinas de Turing

1. El complemento de un lenguaje recur-


sivo también es recursivo.

2. La unión de dos lenguajes RE es RE.

Vous aimerez peut-être aussi