Está en la página 1de 36

Máquinas de Turing

Nelson Jaramillo Enríquez


Autómatas finitos y reconocedores de lenguajes regulares
Autómata general

Un autómata o máquina abstracta es un computador ideal que incluye un conjunto


pequeño de instrucciones simples.
En su forma más general, un reconocedor se esquematiza de la siguiente forma:

La unidad de control tiene un almacenamiento limitado, que se


representará como un conjunto finito de estados.

La memoria auxiliar, tiene una capacidad ilimitada.

La cinta de entrada contiene la cadena de entrada o fuente


proporcionada , que se puede leer pero no cambiar

marca inicio de texto ⊣


marca de fin texto⊢
Autómatas finitos y reconocedores de lenguajes regulares
Autómata general
Comportamiento del autómata
El autómata en un tiempo discreto ejecuta las siguientes acciones:
• Lee el carácter actual ai de la entrada,
• desplaza la cabeza de lectura,
• lee de la memoria el símbolo actual Mj y lo reemplaza con otro símbolo,
• y cambia el estado actual de la unidad de control al siguiente.

El autómata examina la cadena fuente ejecutando una serie de movimientos. La


elección de un movimiento depende de dos símbolos de entrada y de memoria.
Un movimiento puede tener algunos de los siguientes efectos:
• Desplazar la cabeza de entrada hacia la izquierda o hacia la derecha una posición;
• Sobrescribir el símbolo de la memoria actual con otro.
• Mover la cabeza de la memoria hacia la izquierda o hacia la derecha en una
posición;
• Cambiar el estado de la unidad de control.
Máquinas de Turing
Introducción
Son más generales que cualquier autómata finito o cualquier máquina de
pila, debido a que ellas pueden reconocer tanto los lenguajes regulares
como los lenguajes independientes de contexto y, además, muchos otros
tipos de lenguajes. Aunque sean más potentes que los dos tipos de
autómatas anteriores, todos ellos son bastante similares con respecto a los
componentes y acciones que realizan.
Cuando pasamos de los autómatas finitos a los autómatas de pila, se
introdujo un dispositivo para almacenamiento de memoria, la pila, que
proporcionó la posibilidad de “recordar” la cantidad de información
necesaria para el reconocimiento de los lenguajes independientes del
contexto. Una pila es bastante restrictiva debido a que el acceso a la
información que tenemos está limitado a la cima de la pila. Para poder
acceder a los datos que se encuentran debajo de la cima, se necesita
sacar el dato de la cima –dato que muchas veces no se desea que se
pierda.
Máquinas de Turing
Introducción
Por ejemplo, si pretendemos reconocer
an bncn n>0
por medio de un autómata de pila, deberíamos contar el número de aes que aparecen en
la cadena de entrada introduciendo algunos símbolos de pila. Después, para contar las
bes, deberíamos desafilar los símbolos de la pila. Y, cuando llegue el momento de contar
las ces, la pila estará vacía – el recuento por tanto, se habrá perdido. El problema
subyacente, no es la carencia de memoria, sino la forma en la que está organizada.
Lo anterior se esquematiza de la siguiente forma:
 aaabbbccc¬
a aabbbccc¬
aa abbbccc¬
aaa bbbccc¬
aa bbccc¬
a bccc¬
 ccc¬
Máquinas de Turing
Solución
Una vez apilada la información para el reconocimiento de bn se recorrería la pila
sin necesidad de desapilar y cambiar el carácter evaluado por otro para indicar
que ya se recorrió, eso implica que necesariamente se debe mirar lo que se
encuentra en la pila para poder tomar una determinación acerca de lo que se
está mirando, pero al igual que antes, se puede apilar y desapilar.

 aaabbbccc¬
a aabbbccc¬ De lo anterior se establece que el contenido de la pila
aa abbbccc¬ establecido por an no ha sido destruido tan solo cambiado
aaa bbbccc¬ por asteriscos y que el tope ya no queda en la parte
superior como ocurría en la pila sino al comienzo de los
aa* bbccc¬ asteriscos listo para comenzar a recorrer y contar las ces.
a** bccc¬
*** ccc¬
Máquinas de Turing
Solución
Características de la máquina solución

- Conjunto de celdas de almacenamiento que se extienden infinitamente.


- Se extiende a ambos lados
- No hay una celda primera ni última.
- Cada celda puede almacenar un único símbolo.
- A los contenidos de las celdas se las puede acceder en cualquier orden
- Asocia una cabeza de Lectura/escritura que puede moverse sobre la cinta
y por cada movimiento lee o escribe un símbolo.
- El valor inicial de todas las celdas es blanco (b).
Máquinas de Turing
Definición.

Una máquina de Turing es una 7-tupla M= ( Q,∑,Γ,S, b,F,δ), donde

Q es el conjunto finito de estados


∑ es el alfabeto de entrada
Γ es el alfabeto de la cinta
S є Q es el estado de inicio
b є Γ es el símbolo blanco (y no esta en el alfabeto)
F es el conjunto de estado finales que es un subconjunto de Q
δ : Función de transición definida como:

δ : Qx Γ → Q x Γ x {L,R} Es una función parcial


Máquinas de Turing
Definición.

δ : Qx Γ → Q x Γ x {L,R} Es una función parcial


El blanco (no pertenece a ∑

Generalmente se permite
∑ є Γ–{b}

Ejemplo
Se tiene la siguiente función de transición

δ( q1, a) = ( q1, b, R)

Gráficamente se la ve así:
Máquinas de Turing
Ejemplo
Realizar una máquina de Turing que reciba una secuencia de aes y bes y que cambie las
bes por aes
Solución
Q ={ q1,q2 }
∑ = { a, b }
Γ = {a,b,b}
F = {q2}
S = {q1}

Función de transición esta dada por


δ( q1, a) = ( q1, a, R)
δ( q1, b) = ( q1, a, R)
δ( q1, b) = ( q2, b, L)
Máquinas de Turing
Notaciones empleadas
Para realizar el seguimiento de una secuencia que está dentro de la cinta se
plantean dos notaciones
Primera notación:
Utiliza el par ( qi , w1 σ w2) donde:
qi Estado actual
w1 Cadena de la cinta que precede a la celda sobre la que se encuentra
la cabeza entrada/salida
σ Símbolo de la cinta actual
w2 Cadena que hay a continuación de la cabeza de entrada/salida

Con esta notación el ejercicio anterior para una cadena abba tendrá las
siguientes transacciones
Máquinas de Turing
Notaciones empleadas
Con esta notación el ejercicio anterior para una cadena abba tendrá las
siguientes transacciones

Primera ( q1 , b abba b) Función de transición esta dada por


Segunda ( q1 , abba b) δ( q1, a) = ( q1, a, R)
δ( q1, b) = ( q1, a, R)
Tercera ( q1 , aaba b) δ( q1, b) = ( q2, b, L)
Cuarta ( q1 , aaaab)
Quinta ( q1 , aaaa b)
Sexta ( q2 ,aaaa )
Máquinas de Turing
Notaciones empleadas
Segunda Notación

En esta notación el estado se ubica antes del símbolo que está ubicado en la
cabeza de lectura/escritura

Función de transición esta dada por


Formato
δ( q1, a) = ( q1, a, R)
δ( q1, b) = ( q1, a, R)
a1 a1 … a1 qi ak …. An δ( q1, b) = ( q2, b, L)

Para el ejercicio anterior las transiciones quedan de la siguiente forma


q1abba => aq1bba => aaq1ba => aaaq1a => aaaaq1b => aaaaq2
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an bn n>0
Análisis
aaabbb a a a b b b
x y x x x y y y
Por cada a que se reconozca se la marca con una x para indicar que ya se la trabajo, y por cada
marca x se va a buscar la correspondiente b para marcarla con y, avanzando siempre a la
derecha, el estado q1 si identifica una a la va a marcar con x y se cambiará al estado q2 para
buscar la b correspondiente. Cuando q2 alcance una b correspondiente a la a, se la marca con y
para regresar con el estado q3 a buscar nuevamente la nueva a.
Esto se realiza con las siguientes transiciones
δ( q1, a) = ( q2, x, R) con q2 va a buscar el b correspondiente avanzando a la derecha
δ( q2, a) = ( q2, a, R) con esta avanza en la secuencia de las a
δ( q2, b) = ( q3, y, L) cuando q2 alcance una b, con seguridad es la b
correspondiente, por lo que la marca con y, y se cambia al
estado q3. El estado q3 es el que va a regresar a buscar la
siguiente a para marcarla.
δ( q3, a) = ( q3, a, L) con esta se mueve a la izquierda hasta a encontrar una x
δ( q3, x)
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an bn n>0
Con las transiciones anteriores se tiene
aaabbb
x x y
Y se tiene que q3 regreso a x por lo que debe marcar la siguiente a con x. El estado q1 es el que permite
marcar a con x por lo que se realiza lo siguiente
δ( q3, x) = ( q1, x, R) al moverse a la derecha se va a encontrar con
a, por lo que la primera transición la marca con x y se pasa al estado q2 a
buscar la b correspondiente, transiciones ya realizadas
aaabbb
x x y
Para que q2 pueda avanzar para encontrar la próxima b tiene que avanzar también en las y con la
siguiente transición
δ( q2, y) = ( q2, y, R) q2 se mueve en las y hasta encontrar una b, la cual es cambiada por y se cambia
al estado q3
q3 se mueve a la izquierda a buscar la a correspondiente por lo que debe moverse entre las y as{i:
δ( q3, y) = ( q3, y, L)
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an bn n>0
Con las transiciones anteriores se tiene
aaabbb
x x xy yy
Y se tiene que q3 regreso a x por lo que debe marcar la siguiente a con x. El estado q1 es el
que permite marcar a con x por lo que se realiza lo siguiente, pero se presenta el caso en
que ya no hay más a, representado de la siguiente forma:
δ( q1, y) = ( q4, y, R)

q4 va a recorrer hacia la derecha para encontrar el blanco, si la secuencia es correcta q4


alcanza el blanco, por lo que hace la transición al estado q5 que es de aceptación

δ( q4, y) = ( q4, y, R)
δ( q4, b) = ( q5, b , L) q5 Es el estado de aceptación.
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an bn n>0
El resultado final de las transiciones será lo siguiente:
δ( q1, a) = ( q2, x, R)
δ( q2, a) = ( q2, a, R)
δ( q2, b) = ( q3, y, L)
δ( q3, a) = ( q3, a, L)
δ( q3, x) = ( q1, x, R)
δ( q2, y) = ( q2, y, R)
δ( q3, y) = ( q3, y, L)
δ( q1, y) = ( q4, y, R)
δ( q4, y) = ( q4, y, R)
δ( q4, b) = ( q5, b, L)
q5 es de aceptación
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an bn cn n>0
Ejemplo
aaabbbccc
Análisis
aaabbbccc
x x y y z z
Sigue el mismo comportamiento del ejercicio anterior, en donde se va a tener estados que
permiten marcar las a con x (q1), las b con y (q2) y la c con z (q3) respectivamente.
Entonces se van a tener estados como q1 que es de inicio marcando la a con x, un estado
q2 que avanza a buscar la b correspondiente, y marcarla con y, un estado q3, al igual que
el q2 que va a avanzar a buscar la c correspondiente para marcarla con z y cambiarse al
estado q4, para retornar a buscar nuevamente la siguiente a y volver a realizar los pasos
anteriores.
En el proceso de avanzar y retornar se tienen que colocar las transiciones correspondiente
de tal forma que se tengan en cuenta los nuevos símbolos (x,y,z) que van quedando
almacenados en la cinta.
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an bn cn n>0
Solución
δ( q1, a) = ( q2, x, R) δ( q2, y) = ( q2, y, R)
δ( q2, a) = ( q2, a, R) δ( q3, z) = ( q3, z, R)
δ( q1, y) = ( q5, y, R)
δ( q2, b) = ( q3, y, R)
δ( q5, y) = ( q5, y, R)
δ( q3, b) = ( q3, b, R) δ( q5, z) = ( q5, z, R)
δ( q3, c) = ( q4, z, L) δ( q5, b) = ( q6, b, L)
δ( q4, b) = ( q4, b, L)
δ( q4, y) = ( q4, y, L)
δ( q4, a) = ( q4, a, L)
δ( q4, x) = ( q1, x, R)
δ( q4,z) = ( q4,z, L)
q6 es de aceptación
Máquinas de Turing
Ejercicios
Realizar una máquina de Turing que permita reconoces la secuencia
an b2n n>0
Solución
aabbbb
x x yyyy
Igual que an bnb el cambio que una a condiciona a dos bes, por lo que el estado q3 va a manejar la segunda b, para
regresarse con q4
δ( q1, a) = ( q2, x, R)
δ( q2, a) = ( q2, a, R)
δ( q2, b) = ( q3, y, R)
δ( q3, b) = ( q4, y, L)
δ( q4, y) = ( q4, y, L)
δ( q4, y) = ( q4, y, L)
δ( q4, a) = ( q4, a, L)
δ( q2, y) = ( q2, y, R)
δ( q4, x) = ( q1, x, R)
δ( q1, y) = ( q5, y, R)
δ( q5, y) = ( q5, y, R)
δ( q5, b) = ( q6, b, L)
Máquinas de Turing
Modificación de Máquinas de Turing
A la máquina de Turing básica que tiene la siguiente transición
δ: Q x Γ→ Q x Γ x {R,L}
Puede ser modificada por:

δ: Q x Γ→ Q x Γ x {R,L,S}
Donde S significa permanecer en la posición de la cinta
Por lo tanto la transición
δ(q,σ) = (p, σ , S)
pasa del estado q al estado p pero no se mueve en la cinta.
Máquinas de Turing
Modificación de Máquinas de Turing
División de las celdas de la cinta en subceldas
Cada celda está subdividida en n subceldas las cuales se pueden trabajar
independientemente con la función de transición
Ejemplo

Cada celda se ha dividido en 3 subceldas, por lo que se establecen 3 pistas y


para cada una de ellas se debe establecer la acción correspondiente a realizar,
las acciones se encaminan a establecer que símbolo se lee y que símbolo se
escribe, el estado si es único para todas las subceldas.
Por lo tanto, el formato de la función de transición es la siguiente:
δ (q,(σ1 , σ2 ,….. σn ,)) = (p,(t1 , t2 ,….. tn ,), ( X1, X2,……... Xn,))
De acuerdo a esta función se establece que la transición cambia del estado q
al estado p y reemplaza el σi, por el ti y mueve la cabeza de lectura/escritura
de la cinta i en la dirección Xi los movimientos son independientes
Máquinas de Turing
Ejercicios con máquina de Turing modificada
Realizar una máquina de Turing que permita reconoces la secuencia
an bn n>0
Solución
Para este ejercicio se van a tener dos cintas, en la primera se coloca la
secuencia a reconocer y la segunda va a tener blancos

Cuando se recorren las a, en la cinta dos se va marcando la c, hasta que


en la primera cinta se llegue a la b, en cuyo caso se cambia al estado q2
Máquinas de Turing
Ejercicios con máquina de Turing modificada
Realizar una máquina de Turing que permita reconoces la secuencia
an bn n>0
La acción anterior se realiza con
δ (q1,(a ,b)) = (q1(a , c), ( R,R))
δ (q1,(b ,b)) = (q2(b , b), ( S,L)) se cambia de estado y se deja la cabeza de e/s
al inicio de la secuencia de las b y de las c
Ahora las c que quedan marcadas en la segunda cinta, va a servir para
reconocer la secuencia de las b, por lo que el movimiento en la cinta va en
diferentes direcciones

δ (q1,(a ,b)) = (q1(a , c), ( R,R))


δ (q1,(b ,b)) = (q2(b , b), ( S,L))
δ (q2,(b , c)) = (q2(b , c), ( R,L))
δ (q2,(b , b)) = (q3(b , b), ( L,R)) q3 estado de aceptación
Máquinas de Turing
Ejercicios con máquina de Turing modificada
Realizar una máquina de Turing que permita reconoces la secuencia
an bn cn n>0
Solución
El ejercicio anterior va a servir de base para reconocer la secuencia
Inicialmente se coloca la secuencia de entrada en la primera cinta

Y se recorre la secuencia de a marcando x en la segunda cinta, esto se lo


hace con el estado q1
Máquinas de Turing
Ejercicios con máquina de Turing modificada
Realizar una máquina de Turing que permita reconoces la secuencia
an bn cn n>0
Luego se recorre las b y las x almacenadas en la segunda cinta va a permitir
reconocer las b, pero se cambian las x por las y, esto se lo hace con el estado q2. las
secuencia de las b se recorren hacia la derecha y las y a la izquierda

Para reconocer las c se lo hace con el estado q3 y se recorren las c en la primera


cinta y las y en la segunda cinta cambiando la y por z y si la secuencia es correcta q3
debe alcanzar los blancos, por lo que se pasa al q4, que es un estado de aceptación
Máquinas de Turing
Ejercicios con máquina de Turing modificada
Realizar una máquina de Turing que permita reconoces la secuencia
an bn cn n>0

δ (q1,(a ,b)) = (q1(a , x), ( R,R))


δ (q1,(b ,b)) = (q2(b , b), ( S,L))
δ (q2,(b , x)) = (q2(b , y), ( R,L))
δ (q2,(c, b)) = (q3(c , b), ( S,R))
δ (q3,(c, y)) = (q3(c , z), ( R,R))
δ (q3,(b, b)) = (q4(b , b ), ( L,L))

q4 estado de aceptación
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky
Hemos visto gramáticas libres de contexto que cubren las principales
construcciones que ocurren en técnicas de lenguajes, a saber, estructuras de
paréntesis y listas jerárquicas, pero fallan con otras estructuras sintácticas incluso
simples, como la réplica o las tres potencias iguales
L = { an bncn | n ≥ 1}

Tales deficiencias han motivado, desde los primeros días de la teoría del lenguaje,
para realizar muchas investigación sobre gramáticas formales más poderosas.

Ninguno de los modelos han tenido éxito

La base de todos los desarrollos posteriores es la clasificación de gramáticas debida


al lingüista Noam Chomsky
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky – Jerarquía de Chomsky
La clasificación histórica de las gramáticas de estructura sintagmática basada en la forma de
las reglas reescritura de reglas se encuentra en la Tabla 2.9.
Sorprendentemente, muy pequeña diferencia en la forma de la regla, determinan cambios
sustanciales en las propiedades de la familia de los lenguajes correspondiente, tanto en
términos de decidibilidad como de complejidad algorítmica.
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky

Gramática tipo 0
Son gramáticas que no tienen restricciones en las producciones, estas gramáticas no tienen
relevancia en los lenguajes de programación. Escribir un analizador sintáctico es muy difícil
Nombre
Sin nombre
Forma de la reglas

Familia de lenguaje
Recursivamente enumerable
Tipo de reconocedor
Máquina de Turing

una regla de tipo 0 puede reemplazar una cadena arbitraria no vacía sobre terminales y no
terminales, con otra cadena arbitraria;
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky
Gramática tipo 1
Son gramáticas que no tienen restricciones en las producciones, estas gramáticas no
tienen relevancia en los lenguajes de programación. Escribir un analizador sintáctico es
muy difícil
Nombre
Gramáticas dependientes de contexto o sensibles al conexto
Forma de la reglas

Familia de lenguaje
Contextual o dependiente de contexto

Tipo de reconocedor
Máquina de Turing con complejidad del espacio limitada por la longitud de la cadena
de entrada
una regla de tipo 1 agrega una restricción a la forma de tipo 0: la parte derecha de una
regla debe ser al menos tan largo como la parte izquierda;
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky
Gramática tipo 2
Son gramáticas formadas por producciones independientes de contexto
Nombre
Independientes de contexto o BNF
Forma de la reglas

Familia de lenguaje
Independiente del contexto (CF) o algebraica.

Tipo de reconocedor
Autómata de pila
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky
Gramática tipo 3
Son gramáticas formadas por producciones independientes de contexto
restringidas
Nombre
Regular o unilineal (lineal por la derecha o por la izquierda).
Forma de la reglas

Familia de lenguaje
Regular REG o racional o de estado finito.
Tipo de reconocedor
Autómata finito
Gramáticas más generales y familias lingüísticas
Clasificación de Chomsky
Ejemplos gramáticas tipo 1 de lenguaje de potencia igual de tres elementos

Ejemplo. Gramática tipo 1 de réplica con centro


Gramáticas más generales y familias lingüísticas
Ejercicios con máquina de Turing modificada
Gracias por su atención
Muchos éxitos

También podría gustarte