Sei sulla pagina 1di 29

AUTOMATAS Y LENGUAJES FORMALES

FASE 6: DEBATIR:
GENERAR, DETERMINAR E IMPLEMENTAR SOLUCIONES A LOS
EJERCICIOS PLANTEADOS

PRESENTADO POR:
JUAN PABLO AYALA
COD. 1.110.507.132
OSCAR JAVIER GARCIA
COD. 1.105.614.321
HERNAN DANIEL CAZARES GAITAN
COD. 1.110.491.450

PRESENTADO A:
EDGAR ANTONIO CORTES
TUTOR

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BASICAS TECNOLOGIAS E INGENIERIAS
DICIEMBRE DE 2017
IBAGUE – TOLIMA
INTRODUCCION

El presente trabajo se basa en la presentación de ejercicios con los cuales


pondremos todos los conocimientos y todas las temáticas vistas en el curso de
Autómatas y lenguajes formales, desde los procedimientos para hallar la expresión
regular de cada autómata, pasando por el lenguaje regular y la explicación del tipo
de autómata que es, hasta conversiones de AFD a AFND y viceversa,
minimización, desarrollar autómatas por métodos de Pila y realizar máquinas de
Turing, con esto se da por finalizado el curso y se apropian los conocimientos
necesarios en estos temas.
EJERCICIO 1
De cada uno de los siguientes autómatas, realizar el procedimiento paso a paso
de hallar la expresión regular, el lenguaje regular y explicar el tipo de autómata
que es:

A.

B.

C.
A.

EXPRESION REGULAR:

a b

q0 q0 q2

q1 q1 q1

q2 q2 q1

Expresión regular q 0 Pasando por q1 no se puede realizar ya que el


estado final esta antes y no hay datos que retornen a q 2 , esto se puede
verificar con el JFLAP
Expresión regular q 0 Pasando por q 2 :

a∗ ba∗

LENGUAJE REGULAR:
El Autómata presenta en su estructura el siguiente Lenguaje Regular:
L (M) = lenguaje regular

W = cadena de caracteres
Q = {q 0, q 2, q1, }

Σ ∗ = Lenguaje universal.
Σ = {a, b}

δw = Conjunto de transiciones de la cadena w.


q 0 → a = q1
q 0 → ab = q 2
q1 → a = q 2
q1 → b = q1
q2 → a = q0
q 2 → b = q1

q 0 = estado inicial del autómata.


q0 = q0

F = Es el conjunto de estados de aceptación del autómata.


F = q2

TIPO DE AUTOMATA:

El tipo de autómata es un Finito Determinista o AFD, ya que para cada estado en


que se encuentre el autómata, y con cualquier símbolo del alfabeto leído, existe
siempre no más de una transición posible desde ese estado y con ese símbolo.
B.

EXPRESION REGULAR:

0 1

q0 q1 q0

q1 q2 q0

q2 q2 q0

Expresión regular q 0 Pasando por q1  ((0∗ 1 + 01)∗ 000∗ 1)∗

Expresión regular q 0 pasando por q 2 (1 + 01)∗ 000∗

Expresión definida:
((0∗ 1 + 01)∗ 000∗ 1)∗ (1 + 01)∗ 000∗

Veamos la expresión definida en JFLAP


LENGUAJE REGULAR:
De acuerdo a lo planteado en el autómata se establece el siguiente lenguaje con
cada uno de sus ítems así:
L(M)= lenguaje regular
W= cadena de caracteres
Q = {q 0, q 2, q1, }

Σ ∗ = Lenguaje universal.
Σ = {0,1}

δw = Conjunto de transiciones de la cadena w.


q 0 → 0 = q1
q0 → 1 = q0
q1 → 0 = q 2
q1 → 1 = q 0
q2 → 0 = q2
q2 → 1 = q0

q 0 = estado inicial del autómata.


q0 = q0

F= Es el conjunto de estados de aceptación del autómata.


F = q2

TIPO DE AUTOMATA:
El tipo de autómata es un Finito Determinista o AFD, ya que para cada estado en
que se encuentre el autómata, y con cualquier símbolo del alfabeto leído, existe
siempre no más de una transición posible desde ese estado y con ese símbolo.

C.
EXPRESION REGULAR:

0 1 ʎ

q0 q2 q1 -

q1 - q1 -

q2 q1 - q3

q3 - q1 -

Expresión regular q0 Pasando por q1  1


Expresión regular q0 Pasando por q2  00
Expresión regular q0 Pasando por q3  (01)1∗
Expresión definida:
(1 + 00 + 01)1∗

Autómata en JFLAP:
LENGUAJE REGULAR:
De acuerdo a lo planteado en el autómata se establece el siguiente lenguaje con
cada uno de sus ítems así:
L (M)= lenguaje regular
W= cadena de caracteres
Q = {q 0, q 2, q1, }
Σ ∗ = Lenguaje universal.
Σ = {0,1, λ}

δw = Conjunto de transiciones de la cadena w.


q0 → 0 = q2
q 0 → 1 = q1
q1 → 1 = q1
q2 → λ = q3
q 2 → 0 = q1
q 3 → 1 = q1

q 0 = estado inicial del autómata.


q0 = q0

F= Es el conjunto de estados de aceptación del autómata.


F = q1

TIPO DE AUTOMATA:
El tipo de autómata es un Finito Determinista o AFD, ya que para cada estado en
que se encuentre el autómata, y con cualquier símbolo del alfabeto leído, existe
siempre no más de una transición posible desde ese estado y con ese símbolo.
Ejercicio No. 2

Realizar la conversión de AFD a AFND o de AFND a AFD según corresponda

Autómata finito no determinista con transiciones vacías

1. Se identifica el estado inicial y el alfabeto que se va a manejar en el


autómata, para esto hacemos la siguiente tabla en donde podemos
observar las transiciones desde el estado inicial.

Símbolos del Alfabeto


Conjunto de a b C
estados
A= {0} U {1} B= {21} U {1} C= {0} U {1} D= {4} U {1}
B= {21} U {1} E= {41} U {1} C= {0} U {1} G= {1}
C= {0} U {1} B= {21} U {1} C= {0} U {1} D={4} U {1}
D= {4} U {1} I = {31} U {1} G= {1} C= {0} U {1}
E= {41} U {1} I={31} U {1} G= {1} C= {0} U {1}
G= {1} J= {1} U {1} G= {1} G= {1}
I = {31} U {1} K={51} U {1} E= {41} U {1} G= {1}
J= {1} U {1} J= {1} U {1} G= {1} G= {1}
K={51} U {1} B= {21} U {1} D= {4} U {1} L= {3} U {1}
L= {3} U {1} K={51} U {1} E= {41} U {1} G= {1}
- Tomamo s a A= {0} U {1} esto quiere decir qu e q0 unión q1 es donde
se encuentra la transición vacía.

- Tomamos B= {21} U {1} es el resultado del valor del estado de q0 en “a” y el


valor de q1 en “a”. Como es un valor diferente al de “A” entonces lo
nombramos como “B”.

- Tomamos C= {0} U {1} es el resultado del valor del estado de q0 en “b” y el


valor de q1 en “b”. Como es un valor diferente de “A y B” entonces lo
nombramos como “C”.

- Tomamos D= {4} U {1} es el resultado del valor del estado de q0 en “c” y el


valor de q1 en “c”. Como es un valor diferente de “A, B y C” entonces lo
nombramos como “D”.

- Luego tomamos B= {21} U {1} al primer cuadro de la izquierda y empezamos


a buscar sus valores como hicimos con el “A”.
- Tomamos E= {41} U {1} es el resultado del valor del estado de q2 en “a” y el
valor de q1 en “a”. Como es un valor diferente al de “A, B, C y D”
entonces lo nombramos como “E”.

- Tomamos C= {0} U {1} es el resultado del valor del estado de q2 en “b” y el


valor de q1 en “b”. Como es un valor es similar a “C” entonces lo seguimos
nombrando como “C”.

De esta manera seguimos llenando el cuadro hasta haber agotado todas las
alternativas del autómata.

2. Después de realizar la conversión en el jfLap hacemos otro cuadro con los


nuevos estados, el cual permite realizar el diagrama de la conversión de
AFD y se realizará el diagrama del nuevo autómata.

Símbolos del Alfabeto


Conjunto de estados a b C
A B C D
B E C G
C B C D
D I G C
E I G C
G J G G
I K E G
J J G G
K B D L

Ejercicio No. 3

Realice la minimización paso a paso del autómata finito determinista


Quíntupla:

M={A,B,C,D,E,G,I,J,K,L},{a,b,c},δ,A,{D,E,K,I,L}
K={A,B,C,D,E,G,I,J,K,L}---(estados)
Σ= {a, b, c} --- (alfabeto)
δ= {A} --- (estado inicial)
F= {D, E, K, I, L} --- (estados finales)

Tabla de transiciones

ESTADO a b c
A B C D
B E C G
C B C D
D I G C
E I G C
G J G G
I K E G
J J G G
K B D L
L K E G

Conjunto Aceptadores
X = {D, E, K, I, L}
Conjunto No Aceptadores
Y = {A, B, C, G, J}

EST a b c
D X Y Y
E X Y Y
K Y X X
I X X Y
L X X Y

EST a b c
A Y Y X
B X Y Y
C Y Y X
G Y Y Y
J Y Y Y

P = {D, E, B}
Q= {I, L}
R= {A, C}
S= {G, J}
T= {K}

CONJUNTO P
a b c
D Q S R
E Q S R
B P R S
CONJUNTO Q
a b c
I T P S
L T P S
CONJUNTO R
a b c
A P R P
C P R P

CONJUNTO S
a b c
G S S S
J S S S

CONJUNTO T
a b c
K P P Q

Q= {I, L}
R= {A, C}
S= {G, J}
T= {K}
U= {B}
V= {D, E}

CONJUNTO Q
a b c
I T P S
L T P S
CONJUNTO R
a b c
A P R P
C P R P
CONJUNTO S
a b c
G S S S
J S S S
CONJUNTO T
a b c
K P P Q

CONJUNTO U
a b c
K U V Q

CONJUNTO V
a b c
B V R S

TABLA DE TRANSICIONES

ESTADOS a b c
Q T P S
R P R P
S S S S
T P P Q
U U V Q
V V R S
Ejercicio No. 4

Realizar el autómata a Pila de L = {(a+b)*}


El alfabeto se compone por el lenguaje a y b y se toman dos rutas desde el estado
inicial por su condición (a+b), la estrella de Kleene representa el conjunto de las
cadenas que se pueden formar tomando cualquier número de cadenas del
conjunto inicial, posiblemente con repeticiones, y concatenándolas entre sí.
Podemos representar el auto mata de la siguiente manera:

Para verificar el autómata se procederá a usar la herramienta JFLAP, en la cual


diseñaremos este autómata y lo pondremos en funcionamiento con diferentes
cadenas y así comprobar su funcionamiento.
Empezaremos enviado los caracteres a y b, verificaremos si son aceptados.
El carácter a lo lee sin ningún problema pasando por q2 llegando hasta el estado
final.

El carácter b también se lee sin ningún problema pasando por q4.


Verificando en JFLAP veremos que se cumple {a + b} ahora para verificar la
clausura de Kleene vamos a enviar caracteres concatenados.
Aunque la cadena “aa” se lee hasta el estado final no es válida y no se acepta por
el autómata, igual manera sucede con la cadena “bb”
Aquí vemos dentro de algunas cadenas enviadas, cuales son aceptadas por el
autómata, vemos que aunque el autómata en su expresión {a+b}* posee una
estrella de Kleen, las cadenas múltiples llegan hasta el estado final pero no son
aceptas.
Este autómata refleja niveles no determinísticos.

Ejercicio No. 5
Realizar una máquina de Turing
Transiciones
𝜎(𝑞1, 𝑎) = (𝑞1, 𝑎, 𝑅)
𝜎(𝑞1, 𝑏) = (𝑞1, 𝑎, 𝑅)
𝜎(𝑞1, 𝐵) = (𝑞2, 𝐵, 𝐿)

Recorra la máquina con al menos una cadena válida explicando lo sucedido tanto
en la cinta como en la secuencia de entrada

a b b a B
q1
a b b a B
q1
a a b a B
q1
a a a a B
q1
a a a a B
q1
a a a a B
q2
De forma manual se describe la cadena valida resaltando con color amarillo los
estados y la dirección en la que deben proceder, como es el caso de la última
transición que en este caso cambia de sentido en el caso de este ejercicio a la
izquierda.
Identifique una cadena que no sea válida y justifíquela porque

a b b a B
q1
a b b a B
q1
a a b a B
q1
a a a a B
q1
a a a a B
q1
a a a a B
q2
Esta cadena es invalida porque en la parte final no cambia de sentido a la
izquierda por tanto es incorrecta
Ejecute el RunTest a una cadena aceptada que tenga la menos cinco símbolos

Identifique en que momento la máquina se detiene


Se procede a ejecutar aabaB la maquina se detiene justo cuanto llega al estado
final q2
CONCLUSIONES

Mediante este trabajo se abordaron diferentes temas que se pusieron en


práctica a lo largo del curso, cada uno de los temas y las unidades
establecidas en el encuadre pedagógico se ven reflejados en estos 5 ejercicios
para dejar evidencia clara y sólida de que el estudiante adquirió conceptos y
métodos para el desarrollo de problemas de autómatas mediante expresiones
y lenguaje regular, conocimientos en saber qué tipo de autómata se está
trabajando y porque se diferencian, conversiones de autómatas determinísticos
a no determinísticos y creación de máquinas de Turing.
BIBLIOGRAFIA

- http://ocw.uc3m.es/ingenieria-informatica/teoria-de-automatas-y-lenguajes-
formales/ejercicios/ejercicios-tema-6-automatas-a-pila

- http://ocw.uc3m.es/ingenieria-informatica/teoria-de-automatas-y-lenguajes-
formales/ejercicios/ejercicios-tema-6-automatas-a-pila

- http://www.exa.unicen.edu.ar/catedras/ccomp1/ApunteAutomatasPila.pdf

- https://www.youtube.com/watch?v=VDqII36S7U4

- https://www.youtube.com/watch?v=bhjDjCkS9Hk

Potrebbero piacerti anche