Está en la página 1de 18

Universidad Mariano Gálvez

Sede Cobán, Alta Verapaz


Ingeniería en Sistemas de Información y Ciencias de la
Computación
Autómatas y Lenguajes Formales
Ing. Héctor Macz

Informe Proyecto Final

Estudiantes:
Michael Estuardo Ramírez Godoy (4090-18-3442)
Saul Ernesto Coy Pop (4090-18-21786)
Octubre 2020
Lenguaje #1
Escritura Formal:
L = {w/w calcula el numero consecutivo de un número binario dado}
MT = ({q0, q1, q2}, {0,1}, {0,1}, {δ}, {q0}, {B}, {q2})
δ=
δ(q0,0) =(q0,0,R)
δ(q0,1) =(q0,1,R)
δ(q0,B)=(q1,B,L)
δ(q1,0) =(q2,1,R)
δ(q1,1) =(q1,0,L)
δ(q1,0) =(q2,1,L)
δ(q1,B) =(q2,1,L)

Gramática:
G= ({A,B},{0,1},{P},{S})
Reglas:
S→A|B
A→0A | B | ϵ
B→1B | A | ϵ
Derivaciones:
Cadena a Derivar: 11000→11001

Derivación por Derecha:


S→B→1B→11B→11A→110A→1100A→1100B→11001B→11001Ɛ→11001
Derivacion por Izquierda:
S→B→1B→11B→11A→110A→1100A→1100B→11001B→11001Ɛ→11001
Arbol de Derivacion:

2
S

1 B

1 B

0 A

0 A

1
B

3
Cadenas Aceptadas:
Funciones de Transición de la cadena más pequeña y una cadena media.

Cadena más pequeña: w= 0 → 1


δ(q0,0) = (q0, 0, R)
δ(q0,B) = (q1, B, L)
δ(q1,0) = (q2, 1, R)
δ(q1,B) = (q2, 1, L)

Cadena media: w= 110010→110011

δ(q0,1) = (q0, 1, R)
δ(q0,1) = (q0, 1, R)
δ(q0,0) = (q0, 0, R)
δ(q0,0) = (q0, 0, R)
δ(q0,1) = (q0, 1, R)
δ(q0,0) = (q0, 0, R)
δ(q0,B) = (q1, B, L)
δ(q1,0) = (q2, 1, L)
δ(q1,B) = (q2,1, L)

Descripción Instantánea: ID de cadena minina y cadena media

Cadena más pequeña: w= 0 → 1

4
Cadena media: w= 110010→110011

5
6
Expresión Regular
Expresión regular a partir de la gramática generada
S→A|B
A→0A | B | ϵ
B→1B | A | ϵ

B=1B+A+Ɛ S=A+B
B=1B+A S= (0+1*) * +1*A
B=1*A S= (0+1*) * | 1*(0|1*) *

A=0A+B+Ɛ
A=0A+(1*A) + Ɛ
A=0A+1*A
A=A (0+1*)
A= (0+1*) *

7
Descripción del Proyecto (Funcionamiento del Autómata)
Esta máquina funciona con el lenguaje que se estableció anteriormente, la cual es
calcular el número consecutivo de un número binario dado.

El autómata para la máquina de Turing construida funciona de la siguiente manera:

La máquina o el autómata leen de primero en su estado inicial todo el número que


se ha ingresado y poder ir buscando el vacío para poder generar el cambio de vacío
al número dado, luego de encontrar el vacío ir al Estado siguiente donde si el
encontrar el número uno lo convertirá en un cero y el cabezal de la máquina irá
hacia la izquierda pero si en dado caso el número que se encuentra es un cero lo
convertirá en un Uno, gira hacia la derecha para encontrar un vacío y saber que
termino o a la izquierda buscando un uno y sabiendo que la cadena también se ha
completado.

8
Lenguaje #2
Escritura Formal
L = {w/w de una palabra w del alfabeto ∑= {0,1}, proporciona su reversa wR}
MT = ({q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}, {0,1}, {1,0,1,0}, {δ}, {q0}, {B}, {q9})
δ=

δ(q0,0)=(q0,0,L) δ(q0,1)=(q0,1,L) δ(q0,B)=(q1,A,R)


δ(q1,0)=(q1,0,R) δ(q1,1)=(q1,1,R)
δ(q1,B)=(q2,Z,L) δ(q2,B)=(q2,B,L)
δ(q2,A)=(q8,B,L) δ(q2,1)=(q3,B,R)
δ(q2,0)=(q6,B,R) δ(q3,B)=(q3,B,R)
δ(q3,Z)=(q4,Z,R) δ(q4,B)=(q5,1,R)
δ(q4,0)=(q4,0,R) δ(q4,1)=(q4,1,R)
δ(q5,0)=(q5,0,L) δ(q5,1)=(q5,1,L)
δ(q5,Z)=(q2,Z,L) δ(q6,B)=(q6,B,R)
δ(q6,Z)=(q7,Z,R) δ(q7,B)=(q5,0,L)
δ(q7,0)=(q7,0,R) δ(q7,1)=(q7,1,R)
δ(q8,B)=(q8,B,R) δ(q8,Z)=(q9,B,R)

Gramática
G= ({A,Z},{0,1},{P},{S})
Reglas:
S→A|Z
A→0A | Z | ϵ
Z→1Z | A | ϵ
Derivaciones:
Cadena a Derivar: 10010 → 01001

Derivación por Derecha:


S→A→0A→0Z→01Z→01A→010A→0100A→0100Z→01001Z→01001ϵ→01001
Derivación por Izquierda:
S→A→0A→0Z→01Z→01A→010A→0100A→0100Z→01001Z→01001ϵ→01001
Árbol de Derivación:

9
10
Cadenas Aceptadas:
Funciones de Transición de la cadena más pequeña y una cadena media.

Cadena más pequeña: w= 01 → 10


δ(q0,0)=(q0,0,L)
δ(q0,B)=(q1,A,R)
δ(q1,0)=(q1,0,R)
δ(q1,1)=(q1,1,R)
δ(q1,B)=(q2,Z,L)
δ(q2,1)=(q3,B,R)
δ(q3,Z)=(q4,Z,R)
δ(q4,B)=(q5,1,R)
δ(q5,Z)=(q2,Z,L)
δ(q2,B)=(q2,B,L)
δ(q2,0)=(q6,B,R)
δ(q6,B)=(q6,B,R)
δ(q6,Z)=(q7,Z,R)
δ(q7,1)=(q7,1,R)
δ(q7,B)=(q5,0,L)
δ(q5,1)=(q5,1,L)
δ(q5,Z)=(q2,Z,L)
δ(q2,B)=(q2,B,L)
δ(q2,B)=(q2,B,L)
δ(q2,A)=(q8,B,L)
δ(q8,B)=(q8,B,R)
δ(q8,B)=(q8,B,R)
δ(q8,B)=(q8,B,R)
δ(q8,Z)=(q9,B,R)

11
Cadena media: w= 1100→0011

δ(q0,1)=(q0,1,L) δ(q5,Z)=(q2,Z,L)
δ(q0,B)=(q1,A,R) δ(q2,B)=(q2,B,L)
δ(q1,1)=(q1,1,R) δ(q2,B)=(q2,B,L)
δ(q1,1)=(q1,1,R) δ(q2,B)=(q2,B,L)
δ(q1,0)=(q1,0,R) δ(q2,B)=(q2,B,L)
δ(q1,0)=(q1,0,R) δ(q2,A)=(q8,B,L)
δ(q1,B)=(q2,Z,L) δ(q8,B)=(q8,B,R)
δ(q2,0)=(q6,B,R) δ(q8,B)=(q8,B,R)
δ(q6,Z)=(q7,Z,R) δ(q8,B)=(q8,B,R)
δ(q7,B)=(q5,0,L) δ(q8,B)=(q8,B,R)
δ(q5,Z)=(q2,Z,L) δ(q8,B)=(q8,B,R)
δ(q2,B)=(q2,B,L) δ(q8,B)=(q8,B,R)
δ(q2,0)=(q6,B,R) δ(q8,Z)=(q9,B,R)
δ(q6,B)=(q6,B,R)
δ(q6,Z)=(q7,Z,R)
δ(q7,0)=(q7,0,R)
δ(q7,B)=(q5,0,L)
δ(q5,Z)=(q2,Z,L)
δ(q2,B)=(q2,B,L)
δ(q2,B)=(q2,B,L)
δ(q2,1)=(q3,B,R)
δ(q3,B)=(q3,B,R)
δ(q3,B)=(q3,B,R)
δ(q3,Z)=(q4,Z,R)
δ(q4,0)=(q4,0,R)
δ(q4,0)=(q4,0,R)
δ(q4,B)=(q5,1,R)
δ(q5,0)=(q5,0,L)
δ(q5,0)=(q5,0,L)
δ(q5,Z)=(q2,Z,L)
δ(q2,B)=(q2,B,L)
δ(q2,B)=(q2,B,L)
δ(q2,B)=(q2,B,L)
δ(q2,1)=(q3,B,R)
δ(q3,B)=(q3,B,R)
δ(q3,B)=(q3,B,R)
δ(q3,B)=(q3,B,R)
δ(q3,Z)=(q4,Z,R)
δ(q4,0)=(q4,0,R)
δ(q4,0)=(q4,0,R)
δ(q4,1)=(q4,1,R)
δ(q4,B)=(q5,1,R)
δ(q5,1)=(q5,1,L)
δ(q5,0)=(q5,0,L)
δ(q5,0)=(q5,0,L)

12
Descripción Instantánea: ID de cadena minina y cadena media

Cadena más pequeña: w= 01 → 10

13
14
Cadena media: w= 1100→0011

15
16
Expresión Regular
Expresión regular a partir de la gramática generada
S→A|Z
A→0A | Z | ϵ
B→1Z | A | ϵ

Z=1Z+A+Ɛ S=A+Z
Z=1Z+A S= (0+1*) * +1*A
Z=1*A S= (0+1*) * | 1*(0|1*) *

A=0A+Z+Ɛ
A=0A+(1*A) + Ɛ
A=0A+1*A
A=A (0+1*)
A= (0+1*) *

Descripción del Proyecto (Funcionamiento del Autómata)


El funcionamiento de esta máquina y autómata es un poco más complejo que el
anteriormente explicado es un lenguaje que requiere de muchos más estados en el
autómata para poder dejarlo de la mejor manera posible, su funcionamiento es éste:

Cómo primer paso para el trabajo de este autómata se necesita leer el primer dato
que esté en la cadena, ya sea un cero o un uno, si es uno de estos dos dígitos se
moverá a la izquierda y sustituirá el vacío inicial por la letra A, indicando que de ahí
parte la cadena, luego de dicha conversión, El Estado uno vuelve a examinar los
dígitos totales que se han ingresado en la cadena para volver a encontrar un vacío
sólo que ahora de lado derecho para convertir ese vacío en una Z indicando que es
el final de la cadena.

Luego de haber convertido la Z, regresamos a la izquierda para poder buscar el


último elemento que se ingresó de la cadena, este pasará al lado derecho de la Z

17
para empezar a formar el reverso de la cadena ingresada, si irá haciendo el mismo
procedimiento con cada uno de los elementos ingresamos en la cadena antes de
llegar a la letra A, también cada vez que se vaya pasando del otro lado de la Z el
lugar que ocupaba antes el elemento de la cadena será ocupado por un vacío para
mantener siempre la ética de la máquina de Turíng, Una vez ya teniendo todos los
elementos de la cadena del lado derecho de la Z se procede a buscar la letra A para
indicar que la cadena ya ha sido transformada, la letra A se convertirá en un vacío,
regresaremos hasta el punto donde se ubica la Z convirtiéndola en un vacío y así
terminando el procedimiento del autómata y la máquina de Turín completando la
conversión del reverso de la cadena ingresada.

18

También podría gustarte