Sei sulla pagina 1di 13

Unidad 3

Fase 4 – Modelar Problemas de Lenguajes Estructurados por Frases

Presentado Por:
José Alfonso Carrillo Bermudez
Código No. 1.049.627.449

Grupo No: 301405_71

Tutor:
Angela María González Amarillo

Trabajo individual correspondiente a la fase 4 del curso Autómatas y


Lenguajes Formales

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
INGENIERÍA DE SISTEMAS
AUTÓMATAS Y LENGUAJES FORMALES
2019
Desarrollo Actividad Individual

Ejercicios de la Fase 4

De acuerdo con el último dígito de la cédula o tarjeta de identidad, identifique el


ejercicio asignado en la siguiente tabla:

Último dígito de la Cédula o TI Ejercicio

1y9 Ejercicio 1
2 y 8 Ejercicio 2
3 y 7 Ejercicio 3
4 y 6 Ejercicio 4
5 y 0 Ejercicio 5

ACTIVIDAD 1: Maquinas de Turing

1. Ejercicio 1 2. Ejercicio 2

3. Ejercicio 3 4. Ejercicio 4

5. Ejercicio 5
El diseño solicitado corresponde al diligenciamiento de la siguiente tabla:

EJERCICIO A
TRABAJAR

Caracterización En este espacio se realiza:


de la máquina
de Turing - Mediante la definición formal explicar las
características de la máquina de Turing.

Las máquinas de Turing son un formalismo


matemático descrito por primera vez por Alan
Turing en 1936, con la finalidad de disponer de una
herramienta abstracta para estudiar la teoría de la
computabilidad. Se dice que un problema es
computable si existe un algoritmo (una secuencia
de pasos) que permita obtener su solución.
Intuitivamente, una máquina de Turing puede
considerarse como un dispositivo capaz de adoptar
un estado entre varios posibles y que dispone de
un cabezal capaz de leer y escribir símbolos en una
cinta. En cada momento, en función del estado en
que se encuentre y del símbolo que lee de la cinta,
realiza tres acciones:

 Escribe un nuevo símbolo en la cinta, en la


misma casilla donde acaba de leer un
símbolo.
 Desplaza el cabezal una única posición a lo
largo de la cinta, hacia la derecha o hacia la
izquierda, o bien puede dejarlo apuntando a
la misma casilla.
 Cambia de estado.

Aparte de esta definición básica de la máquina de


Turing, existen muchas variantes, todas ellas
equivalentes entre si.
 La cinta es unidimensional e infinita por
ambos lados.
 La máquina se utiliza para analizar palabras,
que al comienzo forman el contenido de la
cinta. A ambos lados de la palabra a analizar,
al ser la cinta infinita, todas las casillas
contendrán el símbolo correspondiente al
espacio en blanco, .
 Al principio del proceso, el cabezal está
situado sobre el primer símbolo por la
izquierda de la palabra a analizar.
 Cuando la máquina de Turing no tiene
definida ninguna acción para la configuración
en que se encuentra, se para.

Una máquina de Turing es una séptupla (𝜮, 𝜞, , 𝑸,


𝒒𝟎, 𝑭, 𝜹)

 𝜮 es el alfabeto de entrada de las palabras a


procesar.
 𝜞 es el alfabeto de la cinta, que contiene
todos los símbolos que la maquina puede leer
o escribir en la cinta. Siempre se cumple 𝜮 ⊂
𝜞.
  ∈ 𝜞 representa el símbolo blanco o espacio
en blanco.
 𝑸 es el conjunto de estados.
 𝒒𝟎 es el estado inicial.
 𝑭 es el conjunto de estados finales.
 𝜹: (𝑸 ∗ 𝜞) → 𝑸 ∗ 𝜞{+, −, =}) es una función
parcial, llamada función de transición.

A partir del estado actual y del símbolo leído en la


cinta, la función 𝜹 nos dice a que estado pasa la
máquina, el símbolo que escribe en la cinta, y en
qué dirección se mueve el cabezal. Los símbolos +,
-, y = representan, respectivamente, el
movimiento hacia la derecha, hacia la izquierda, y
la acción de quedarse apuntando a la misma
casilla.
Dado que 𝑸 𝑦 𝜞 son conjuntos finitos, la aplicación
𝜹 puede representarse mediante una tabla en la
que cada fila corresponde a un estado, cada
columna a un símbolo del alfabeto de entrada, y
cada celda muestra el valor o imagen
correspondiente de 𝜹.
Usualmente, las funciones de transición se
representan mediante una table de transición, que
proporciona una representación matricial con
tantas filas como estado U el número de filas es
igual a |𝑄|) y tantas columnas como símbolos de
cinta (el número de columnas es igual a |𝜞|). La
casilla de la fila corresponde al estado q y la
columna del símbolo de la cinta a contendrá el
resultado de 𝜹(𝒒, 𝒂). Además, es estado inicial
señalara en la tabla mediante el símbolo →, y los
estados finales mediante el símbolo *.
Una máquina de Turing M funciona de la siguiente
manera: al comienzo de la ejecución, el cabezal
está situado sobre el primer símbolo de la cadena
de entrada. En cada paso, la maquina consulta la
función de transición 𝜹(𝒒, 𝝈), teniendo en cuenta el
estado en el que se encuentra, q, y el símbolo
leído, 𝝈. Si 𝜹(𝒒, 𝝈) no está definida, M finaliza o
para; en caso contrario, se realiza la acción
indicada por el valor de 𝜹(𝒒, 𝝈) y se repite el
proceso. Cuando la maquina se para, se consulta la
lista de estados finales F. si el estado en que se
encuentra pertenece a F, la maquina ha finalizado
con éxito.

Una máquina de Turing M (de ahora en más


utilizaremos la abreviatura MT M) está compuesta
por:

 Una cinta infinita en los dos extremos,


dividida en celdas, cada celda puede
almacenar un símbolo.
 Una unidad de control. En todo momento la
unidad de control almacena el estado
corriente de M.
 Un cabezal. En todo momento el cabezal
apunta a una celda. El símbolo apuntado se
denomina símbolo corriente. El cabezal
puede moverse sólo de a una celda por vez,
a la izquierda o a la derecha.

La figura siguiente muestra los componentes de


una máquina de Turing:

- Realizar un cuadro donde explique las


diferencias y similitudes de las máquinas
reconocedoras y Trasductoras.

Máquina de Turing Máquina de Turing


reconocedora calculadora
Sea el lenguaje 𝐿 = Se va a construir una
{𝑎𝑛 𝑏 𝑛 | 𝑛 ≥ 1}. Es decir, MT M que calcula la
L tiene infinitas resta m – n, tal que m
cadenas de la forma y n son dos números
ab, aabb, aaabbb, … Se naturales
va a construir una MT representados en
M que acepta L, en notación unaria.
otras palabras, tal que Cuando m ≤ n, M
𝐿(𝑀) = 𝐿. En este caso, devuelve la cadena
el lenguaje L vacía λ. En la entrada,
representa m y n aparecen
directamente un separados por el dígito
problema de 0.
reconocimiento de las
cadenas de un Idea General
lenguaje.
Dado 𝑤 = 1𝑚 01𝑛 , con
Idea General 𝑚 ≥ 0 y 𝑛 ≥ 0, la MT M
itera de la siguiente
Por cada símbolo a que manera. En cada paso
lee, la MT M lo elimina el primer 1 del
reemplaza por el minuendo, y
símbolo α y va a la correspondientemente
derecha hasta reemplaza el primer 1
encontrar el primer del sustraendo por un
símbolo b. Cuando lo 0. Al final elimina todos
detecta, lo reemplaza los 0 (caso 𝑚 > 𝑛), o
por el símbolo β y bien elimina todos los
vuelve a la izquierda dígitos (caso 𝑚 ≤ 𝑛).
para repetir el proceso
a partir del símbolo a Construcción de la
que está MT M
inmediatamente a la
derecha de la a La MT M = (Q, Ʃ, Γ, δ, q
anterior. Si al final del 0, F) es tal que:
proceso no quedan
símbolos por - 𝑄 = {𝑞0, 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞5, 𝑞6}
reemplazar, la MT M se El estado 𝑞0 es el
detiene en un estado estado de inicio de una
de F, porque significa iteración. El estado 𝑞1
que la entrada tiene la es el estado en que M
forma 𝑎𝑛 𝑏 𝑛 , 𝑐𝑜𝑛 𝑛 ≥ 1. busca el primer 0
En caso contrario, M se yendo a la derecha. El
detiene en un estado estado 𝑞2 es el estado
de (𝑄 – 𝐹). en que M encuentra el
primer 0 yendo a la
Construcción de la derecha. El estado 𝑞3
MT M es el estado en que M
encuentra un 1 después
La MT M = (Q, Ʃ, Γ, δ, de un 0 yendo a la
q0, F) es tal que: derecha. El estado 𝑞4
- 𝑄 = {𝑞𝑎, 𝑞𝑏, 𝑞𝐿, 𝑞𝐻, 𝑞𝐹}. es el estado en que M
El estado 𝑞𝑎 es el yendo a la derecha
estado en que M busca buscando un 1 después
una a. El estado 𝑞𝑏 es de un 0 encuentra en
el estado en que M cambio un blanco. El
busca una b. El estado estado 𝑞5 es el estado
𝑞𝐿 es el estado en que en que M, iniciando una
M vuelve a la izquierda iteración, no encuentra
para procesar la como primer dígito un
siguiente a. El estado 1. El estado 𝑞6 es el
𝑞𝐻 es el estado en que estado final.
M detecta que no hay
más símbolos a. El - Ʃ = {1, 0}
estado 𝑞𝐹 es el estado - Γ = {1, 0, B}
final. - F = {q6}

- Ʃ = {𝑎, 𝑏} La función de transición


- 𝛤 = {𝑎, 𝑏, 𝛼, 𝛽, 𝐵} δ se define de la
- 𝑞0 = 𝑞𝑎 siguiente manera:
- 𝐹 = {𝑞𝐹}
1. 𝛿(𝑞0, 1) = (𝑞1, 𝐵, 𝑅)
La función de transición 2. 𝛿(𝑞1, 1) = (𝑞1, 1, 𝑅)
δ se define de la 3. 𝛿(𝑞1, 0) = (𝑞2, 0, 𝑅)
siguiente manera: 4. 𝛿(𝑞2, 1) = (𝑞3, 0, 𝐿)
5. 𝛿(𝑞2, 0) = (𝑞2, 0, 𝑅)
1. 𝛿(𝑞𝑎, 𝑎) = (𝑞𝑏, 𝛼, 𝑅) 6. 𝛿(𝑞3, 0) = (𝑞3, 0, 𝐿)
2. 𝛿(𝑞𝑏, 𝑎) = (𝑞𝑏, 𝑎, 𝑅) 7. 𝛿(𝑞3, 1) = (𝑞3, 1, 𝐿)
3. 𝛿(𝑞𝑏, 𝑏) = (𝑞𝐿, 𝛽, 𝐿) 8. 𝛿(𝑞3, 𝐵) = (𝑞0, 𝐵, 𝑅)
4. 𝛿(𝑞𝑏, 𝛽) = (𝑞𝑏, 𝛽, 𝑅) 9. 𝛿(𝑞2, 𝐵) = (𝑞4, 𝐵, 𝐿)
5. 𝛿(𝑞𝐿, 𝛽) = (𝑞𝐿, 𝛽, 𝐿) 10. 𝛿(𝑞4, 0) = (𝑞4, 𝐵, 𝐿)
6. 𝛿(𝑞𝐿, 𝑎) = (𝑞𝐿, 𝑎, 𝐿) 11. 𝛿(𝑞4, 1) = (𝑞4, 1, 𝐿)
7. 𝛿(𝑞𝐿, 𝛼) = (𝑞𝑎, 𝛼, 𝑅) 12. 𝛿(𝑞4, 𝐵) = (𝑞6, 1, 𝑆)
8. 𝛿(𝑞𝑎, 𝛽) = (𝑞𝐻, 𝛽, 𝑅) 13. 𝛿(𝑞0, 0) = (𝑞5, 𝐵, 𝑅)
9. 𝛿(𝑞𝐻, 𝛽) = (𝑞𝐻, 𝛽, 𝑅) 14. 𝛿(𝑞5, 0) = (𝑞5, 𝐵, 𝑅)
10. 𝛿(𝑞𝐻, 𝐵) = (𝑞𝐹, 𝐵, 𝑆) 15. 𝛿(𝑞5, 1) = (𝑞5, 𝐵, 𝑅)
16. 𝛿(𝑞5, 𝐵) = (𝑞6, 𝐵, 𝑆)

Procedimiento Realice de manera detallada y grafica el


de paso a paso procedimiento paso a paso del recorrido de una
del recorrido cadena (La cadena la selecciona el estudiante,
de una cadena debe contener como mínimo 10 caracteres) en la
máquina de turing. Describir cómo funciona el
almacenamiento mediante el uso de las cintas, etc.

- Paso 1…
- Paso 2…
- Paso 3…

Ejemplo 1:

Gráfico

Realizar la representación utilizando flechas,


conexiones, diagramas que permitan ver el
funcionamiento de la máquina de Turing
transición por transicion

Para una transición:


δ(q,X)=(p,Y,D)

- Paso 1: Estando en el estado q, la cabeza de la


MT señala al símbolo de cinta X,
- Paso 2: Entonces la MT escribe el símbolo de
cinta Y en la casilla actual (cambia X por Y) y
mueve la cabeza una casilla hacia D (D puede ser
derecha, R; o izquierda, L) y pasa al estado p.
- Paso 3: La cinta de la MT está formada por
infinitas casillas.
Inicialmente, la palabra de entrada (una
concatenación de símbolos del alfabeto) se
encuentra escrita en casillas consecutivas de la
cinta y la cabeza señala al primer símbolo de la
palabra. Todas las otras casillas (hacia la izquierda
y la derecha) contienen el símbolo en blanco.
Ejemplo 2:
Gráfico

Realizar la representación utilizando flechas,


conexiones, diagramas que permitan ver el
funcionamiento de la máquina de Turing
transición por transición

- Paso 1: Inicialmente, la cabeza señala el primer


0. Lo cambia por X y se desplaza a la derecha en
busca del primer 1 para cambiarlo por Y:
δ(q0,0)=(q1,X,R)
δ(q1,0)=(q1,0,R)
- Paso 2: Es decir, mientras haya 0's, se mantiene
en el estado q1.
δ(q1,1)=(q2,Y,L)
- Paso 3: Ha encontrado el primer 1. Lo cambia por
Y y pasa al estado q2 moviéndose a la izquierda.
En este estado, la MT se mueve hacia la izquierda
en busca de X saltando las casillas con 0's:
δ(q2,0)=(q2,0,L)
- Paso 4: Cuando encuentra la X, se mueve hacia
la derecha esperando encontrar un 0 para
cambiarlo por X, por lo que pasa al estado q0:
δ(q2,X)=(q0,X,R)
- Paso 5: Una vez cambiado dicho 0 por X, está en
el estado q1. Ahora tiene que buscar el siguiente 1
y cambiarlo por Y, pero se encuentra con Y antes
de llegar, por lo que tiene que saltar esta casilla:
δ(q1,Y)=(q3,Y,R)
- Paso 6: En el estado q3 sigue saltando las casillas
con Y hasta llegar al 1:
δ(q3,Y)=(q3,Y,R)
δ(q3,1)=(q2,Y,L)
- Paso 7: Pasa al estado q2 una vez ha cambiado el
1 por la Y. En este estado, la MT se mueve a la
izquierda hasta encontrar una X. Una vez la
encuentra, se mueve una casilla a la derecha. Si
hay un 0, tendrá que empezar el proceso anterior
(buscar 1, cambiarlo por Y y volver a buscar la X,
con lo que estaremos de nuevo en este punto). Si
ya no quedan 0's, habrá una Y y, por tanto, se han
cambiado n 0's por n X 's y n 1's por n Y 's.
Entonces se mueve a la izquierda:
δ(q2,Y)=(q2,Y,L)
- Paso 8: Se encuentra con una X y pasa al estado
q0. En este estado se busca un 0 para cambiarlo
por X, pero suponemos que ya no quedan.
Entonces la cabeza debe moverse a la derecha
para comprobar que tampoco quedan más 1's:
δ(q0,Y)=(q0,Y,R)
- Paso 9: Cuando encuentra el primer símbolo en
blanco, la MT finaliza:
δ(q0,B)=(q4,B,R)
- Paso 10: En el caso de que haya más 0's que 1's,
llegará un momento en el que ya no queden 1's
(los habrá cambiado por Y ). La MT se quedará
permanentemente en el estado q1 .

Practicar y Apoyándose en el simulador JFlap o VAS ejecutar y


verificar lo validar por lo menos cinco cadenas válidas y 5
aprendido cadenas rechazadas por la máquina. En este
espacio adjunta la imagen.
Referencias Bibliográficas

 Alfonseca C, E., Alfonseca M, M., Mariyón S, R. (2009). Teoría de autómatas y


lenguajes formales. (pp. 19 - 65). Recuperado el 14 de Noviembre de 2019,
de http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?docID=1049845
6&ppg=6

 Rosenfeld, D. (2016). Computabilidad, Complejidad computacional y verificación de


programas. (pp. 7 - 27). Recuperado el 14 de Noviembre de 2019,
de http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?docID=1120161
6&ppg=12

 González, A. [Ángela]. (2018, junio 1). Lenguajes Estructurados por Frases. [Archivo
web]. Recuperado el 14 de Noviembre de 2019, de http://hdl.handle.net/10596/18316