You are on page 1of 20

TALLER 2: NFA y DFA

ESTEBAN DARIO GUTIÉRREZ LÓPEZ

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA

FACULTAD DE INGENIERÍA

INGENIERÍA DE SISTEMAS

TUNJA, BOYACÁ

2018

1
LISTA DE CONTENIDOS

Segundo punto .................................................................................................................... 3


Tercer punto ........................................................................................................................ 5
Cuarto punto...................................................................................................................... 11
Conclusiones ..................................................................................................................... 19
Lista de referencias ........................................................................................................... 20

2
SEGUNDO PUNTO: Leyendo… ando

 CAPITULO 2.

Los lenguajes regulares se pueden describir usando tres mecanismos distintos:


expresiones regulares (ER), autómatas finitos determinísticos (AFD) y no
determinísticos (AFND). Algunos de los mecanismos son buenos para describir
lenguajes, y otros para implementar reconocedores eficientes.
Una expresión regular (ER) sobre un alfabeto finito Σ se define recursivamente como
sigue:
1. Para todo c ∈ Σ, c es una ER.
2. 𝜙 es una ER.
3. Si E1 y E2 son ERs, E1 | E2 es una ER.
4. Si E1 y E2 son ERs, E1 · E2 es una ER.
5. Si E1 es una ER, E1 ⋆ es una ER.
6. Si E1 es una ER, (E1) es una ER
No todos los lenguajes que se me ocurran pueden ser descritos con ERs, pues la
cantidad de lenguajes distintos sobre un alfabeto finito es no numerable, mientras que
la cantidad de ERs es numerable. Algunas aplicaciones prácticas donde se usan ERs
es en la especificación de fechas, direcciones IP, tags XML, nombres de variables en
Java, números en notación flotante, direcciones de email, etc. Son ejercicios
interesantes, aunque algunos son algo tediosos.

Un AFD es otro mecanismo para describir lenguajes. En vez de pensar en generar las
cadenas (como las ERs), un AFD describe un lenguaje mediante reconocer las
cadenas del lenguaje, y ninguna otra. Los nodos del grafo son estados. El apuntado
con un ángulo i es el estado inicial, en el que empieza la computación. Estando en un
estado, el AFD lee una letra de la entrada y, según indique la flecha (llamada
transición), pasa a otro estado (siempre debe haber exactamente una flecha saliendo
de cada estado por cada letra). Cuando se lee toda la cadena, el AFD la acepta o no
según el estado al que haya llegado sea final o no. Los estados finales se dibujan con
doble círculo. En este AFD pasa algo que, más o menos explícitamente, siempre
ocurre. Cada estado se puede asociar a un invariante, es decir, una afirmación sobre la
cadena leída hasta ese momento.

Hay dos formas posibles de entender cómo funciona un AFND. La primera es pensar
que, cuando hay varias alternativas, el AFND elige alguna de ellas. Si existe una
forma de elegir el siguiente estado que me lleve finalmente a aceptar la cadena,
entonces el AFND la aceptara. La segunda forma es imaginarse que el AFND está en
varios estados a la vez (en todos en los que “puede estar” de acuerdo a la primera
visión). Si luego de leer la cadena puede estar en un estado final, acepta la cadena.

los AFDs se pueden convertir a ERs que generen el mismo lenguaje. Esta conversión
tiene poco interés práctico, pero es esencial para mostrar que los tres mecanismos de
especificar lenguajes son equivalentes.

3
La idea es numerar los estados de K de cero en adelante, y definir ERs de la forma
R (i, j, k), que denotarán las cadenas que llevan al AFD del estado i al estado j
utilizando en el camino solamente estados numerados < k. Notar que los caminos
pueden ser arbitrariamente largos, pues la limitación está dada por los estados
intermedios que se pueden usar.
Las propiedades de clausura se refieren a qué operaciones podemos hacer sobre
lenguajes regulares de modo que el resultado siga siendo un lenguaje regular.
- La unión, concatenación y clausura de Kleene de lenguajes regulares es regular.
- El complemento de un lenguaje regular es regular, y la intersección y diferencia
de dos lenguajes regulares es regular.

4
TERCER PUNTO: Indagando el autómata

3.1. Sean los siguientes autómatas. Generar, para cada uno de ellos, su gramática, lenguaje, el
formalismo de cada autómata incluyendo sus funciones de transición y comprobaciones de
palabras existentes y no existentes en cada uno de ellos, a partir del análisis de hilos visto en
clase.

 A1 => Sn = {q0, q1, q2, q3, q4, q5, q6, q7, q8}
∑ = {1, 2, 3}
𝛿 = {q1--1-->q3, q1--2-->q4, q1--3-->q2, q0--1-->q1, q0--2-->q0, q0--3-->q0,
q2--1-->q2, q2--2-->q2, q3--1-->q1, q3--2-->q4, q3--3-->q8, q4--1-->q5, q4--2-->q1,
q4--3-->q7, q5--1-->q1, q5--2-->q4, q5--3-->q6, q6--1-->q5, q6--2-->q7, q6--3-->q6,
q7--1-->q3, q7--2-->q7, q7--3-->q7, q8--1-->q3, q8--2-->q8, q8--3-->q8 }
Sθ = {q1}
SA = {q1, q2, q0, q3, q4, q5, q6, q8}

- - Funciones de transición:

5
𝛿(q1,1) = q3 𝛿(q3,2) = q4 𝛿(q6,2) = q7
𝛿(q1,2) = q4 𝛿(q3,3) = q8 𝛿(q6,3) = q6
𝛿(q1,3) = q2 𝛿(q4,1) = q5 𝛿(q7,1) = q3
𝛿(q0,1) = q1 𝛿(q4,2) = q1 𝛿(q7,2) = q7
𝛿(q0,2) = q0 𝛿(q4,3) = q7 𝛿(q7,3) = q7
𝛿(q0,3) = q0 𝛿(q5,1) = q1 𝛿(q8,1) = q3
𝛿(q2,1) = q2 𝛿(q5,2) = q4 𝛿(q8,2) = q8
𝛿(q2,2) = q2 𝛿(q5,3) = q6 𝛿(q8,3) = q8
𝛿(q3,1) = q1 𝛿(q6,1) = q5

- L(A1) = {w | δ̂(q1, w) ε SA}


- w1 = 112233
q1----1---->q3----1---->q1----2---->q4----2----->q1----3---->q2----3---- muere
ababbab ∉ L(A2)
- w2 = 123321
q1----1---->q3----2---->q4----3---->q7----3----->q7----2---->q7----1---->q3
ababbab ε L(A2)

 A2:

6
 A2 => Sn = {q0, q1, q2, q3, q4, q5, q6, q7}
∑ = {a, b}
𝛿 = { q0--a-->q1, q0--b-->q2, q1--a-->q5, q1--b-->q3 , q2--a-->q4, q2--b-->q6,
q3--a-->q4, q3--b-->q5, q4--a-->q1, q4--b-->q3, q5--a-->q7, q5--b-->q1, q6--a--
>q4, q6--b-->q3, q7--a-->q6, q7--b-->q3}
Sθ = {q0}
SA = {q0, q3, q4, q5, q7}
- Funciones de transición:
𝛿(q1, a) = q5 𝛿(q3, a) = q4 𝛿(q6, a) = q4
𝛿(q1, b) = q3 𝛿(q3, b) = q5 𝛿(q6, b) = q3
𝛿(q0, a) = q1 𝛿(q4, a) = q1 𝛿(q7, a) = q6
𝛿(q0, b) = q0 𝛿(q4, b) = q3 𝛿(q7, b) = q3
𝛿(q2, a) = q4 𝛿(q5, a) = q7
𝛿(q2, b) = q6 𝛿(q5, b) = q1

- L(A2) = {w | δ̂(q0, w) ε SA}


- w1= aaaabbb
q0----a---->q1----a---->q5----a---->q7----a----->q6----b---->q3----b---->q5----b---->q1
ababbab ∉ L(A2)
- w2 = ababbab
q0----a---->q1----b---->q3----a---->q4----b----->q3----b---->q5----a---->q7----b---->q3
ababbab ε L(A2)

 A3:

7
 A2 => Sn = {q0, q1, q2, q3, q4, q5, q6, q7}
∑ = {s, r}
𝛿 = { q0--s-->q5, q0--r-->q1, q1--s-->q7, q1--r-->q2 , q2--s-->q4, q2--r-->q2,
q3--s-->q2, q3--r-->q7, q4--s-->q3, q4--r-->q6, q5--s-->q7, q5--r-->q4, q6--s--
>q2, q6--r-->q7, q7--s-->q7, q7--r-->q0}
Sθ = {q0}
SA = {q0, q3, q4, q5, q7}
- Funciones de transición:
𝛿(q1, s) = q7 𝛿(q3, s) = q2 𝛿(q6, s) = q2
𝛿(q1, r) = q2 𝛿(q3, r) = q7 𝛿(q6, r) = q7
𝛿(q0, s) = q5 𝛿(q4, s) = q3 𝛿(q7, s) = q7
𝛿(q0, r) = q 𝛿(q4, r) = q6 𝛿(q7, r) = q0
𝛿(q2, s) = q4 𝛿(q5, s) = q7
𝛿(q2, r) = q2 𝛿(q5, r) = q4

- L(A3) = {w | δ̂(q0, w) ε SA}


- w1= rsrsrss
q0----r---->q1----s---->q7----r---->q0----s----->q5----r---->q4----s---->q3----s---->q2
rsrsrss ∉ L(A3)

8
- w2 = srsssrr
q0----s---->q5----r---->q4----s---->q3----s----->q2----s---->q4----r---->q6----r---->q7
srsssrr ε L(A3)

3.2. Determinar el formalismo y la FTE de las siguientes palabras, teniendo en cuenta el


autómata propuesto:

- w1 = ababbaabb
x0--|---> x1--|---> x3--|---> x3--|--->x2--|--->x0--|--->x1--|--->x1--|--->x3--|--->x2
| |---> x2--|---> x2--|--->x0--|--->x2--|--->x2--|--->x2--|--->x0--| x1
| | | | | | |--->x5--|--->x4--|--->x3
| | | | | |--->x5--|--->x3--|--->x2--|--->x0
| | |---> x5--|--->x4--|--->x3--|--->x3--| | |
| | | | |--->x1--| | | |
a b a b b a a b b

δ̂(q0, ababbaabb) = {x1, x2, x3, x0}


Todas las transiciones tienen la misma cantidad de estados
Cantidad de estados: 10

9
- w2 = baaabaaba
x0--|---> x2--|---> x2--|---> x2--|--->x2--|--->x0--|--->x1--|--->x1--|--->x3--|--->x3
| | | |--->x5--|--->x4--| | |--->x2--|--->x2
| | |---> x5--|--->x4--|--->x3--|--->x3--|--->x3-- | |--->x5
| | | | |--->x1--| | |
| |---> x5--|---> x3--|--->x0--|--->x2--|--->x2--|--->x2--|--->x0--|--->x1
| | | | | | |--->x5--|--->x4--|
| | | | | |--->x5--|
b a a a b a a b a

δ̂(q0, baaabaaba) = {x1, x2, x3, x5}


baaabaaba ε L(A)
Todas las transiciones tienen la misma cantidad de estados
Cantidad de estados: 10

10
CUARTO PUNTO: Minimizando… ando

Dados los siguientes DFA, realizar procesos de minimización, según el teorema de MyHill-
Nerode, visto en clase:
- A5:

a b c d e f g
a
b X
c X X
d X X X
e X X X X
f X X X X
g X X X X X

(b, a) = δ (a, 0) =b (e, a) = δ (a, 0) =b (f, a) = δ (a, 0) =b


δ (b, 0) =c} M δ (e, 0) =e} M δ (f, 0) =g} M
δ (a, 1) =f δ (a, 1) =f δ (a, 1) =f
δ (b, 1) =e} NM δ (e, 1) =e} M δ (f, 1) =e} NM
(d, a) = δ (a, 0) =b (e, b) = δ (b, 0) =c (f, b) = δ (b, 0) =c
δ (d, 0) =a} M δ (e, 0) =e} M δ (f, 0) =g} NM
δ (a, 1) =f δ (b, 1) =e δ (b, 1) =e
δ (d, 1) =e} NM δ (e, 1) =e} NE δ (f, 1) =e} NM
(d, b) = δ (b, 0) =c (e, d) = δ (d, 0) =a (f, d) = δ (d, 0) =a
δ (d, 0) =a} M δ (e, 0) =e} M δ (f, 0) =g} M
δ (b, 1) =e δ (d, 1) =e δ (d, 1) =e
δ (d, 1) =e} NE δ (e, 1) =e} NE δ (f, 1) =e} NM

11
(f, e) = δ (e, 0) =e δ (f, 1) =e} NM δ (c, 1) =c
δ (f, 0) =g} M (g, c) = δ (c, 0) =c δ (g, 1) =g} NM
δ (e, 1) =e δ (g, 0) =g} NM

δ̂(a, 001010) = c
001010 ε L(A5)
Autómata A5 reducido:

δ̂(q0, 001010) = q4
001010 ε L(A5)

12
- A6:

A B C D E F G H
A
B X
C X X
D X X
E X X X X
F X X X X X
G X X X X X
H X X X X X

(B, A) = δ (A, a) =C (D, A) = δ (A, a) =C (F, E) = δ (F, a) = G


δ (B, a) =D} NM δ (D, a) =} NE δ (E, a) =D} M
δ (A, b) =B δ (A, b) =B δ (F, b) =D
δ (B, b) =C} M δ (D, b) =E} M δ (E, b) =G} M
(C, A) = δ (A, a) =C (D, B) = δ (B, a) =D (G, E) = δ (G, a) =
δ (C, a) =} NE δ (D, a) =} NE δ (E, a) =D} NE
δ (A, b) =B δ (B, b) =C δ (G, b) =G
δ (C, b) =H} NM δ (D, b) =E} M δ (E, b) =G} NE
(C, B) = δ (B, a) =D (D, C) = δ (C, a) = (G, F) = δ (G, a) =
δ (C, a) =} NE δ (D, a) =} NE δ (F, a) =G} NE
δ (B, b) =C δ (C, b) =H δ (G, b) =G
δ (C, b) =H} M δ (D, b) =E} NM δ (F, b) =D} M

13
(H, E) = δ (H, a) =C (H, F) = δ (H, a) =C (H, G) = δ (H, a) =C
δ (E, a) =D} NM δ (F, a) =G} M δ (G, a) =} NE
δ (H, b) =G δ (H, b) =G δ (H, b) =G
δ (E, b) =G} NE δ (F, b) =D} M δ (G, b) =G} NE

δ̂(A, bababbb) = G
001010 ε L(A6)
Autómata A6 reducido:

δ̂(q0, bababbb) = q3
bababbb ε L(A6)

14
A7:

A B C D E F G
A
B X
C X X
D X X X
E X X X X
F X X X X X
G X X X X X X

(B, A) = δ (A, a) =B (D, A) = δ (A, a) =B (E, F) = δ (E, a) =D


δ (B, a) =D} NM δ (D, a) =C} NM δ (F, a) =G} M
δ (A, b) =A δ (A, b) =A δ (E, b) =G
δ (B, b) =F} M δ (D, b) =E} M δ (F, b) =D} M
(C, A) = δ (A, a) =B (D, B) = δ (B, a) =D (G, E) = δ (E, a) =D
δ (C, a) =A} M δ (D, a) =C} NM δ (G, a) =G} M
δ (A, b) =A δ (B, b) =F δ (E, b) =G
δ (C, b) =C} NM δ (D, b) =E} M δ (G, b) =D} M
(C, B) = δ (B, a) =D (D, C) = δ (C, a) =A (G, F) = δ (G, a) =F
δ (C, a) =A} NM δ (D, a) =C} NM δ (F, a) =G} M
δ (B, b) =F δ (C, b) =C δ (G, b) =G
δ (C, b) =C} M δ (D, b) =E} M δ (F, b) =D} M

No se puede reducir.
A8:

15
q0 q1 q2 q3 q4 q5 q6 q7
q0
q1 X
q2 X X
q3 X X X
q4 X X X X
q5 X X X X
q6 X X X X X X
q7 X X X X X X

(q0, q1) = δ (q0, a) = q5 δ (q4, b) = q7


δ (q1, a) =q2} M δ (q1, b) = q6} NM
δ (q0, b) =q1 (q4, q3) = δ (q4, a) = q5
δ (q1, b) =q6} M δ (q3, a) = q6} NM
(q3, q1) = δ (q3, a) = q6 δ (q4, b) = q7
δ (q1, a) =q2} M δ (q3, b) = q2} M
δ (q3, b) =q2 (q5, q0) = δ (q5, a) = q6
δ (q1, b) =q6} M δ (q0, a) =q5} NM
(q3, q0) = δ (q3, a) = q6 δ (q5, b) =q2
δ (q0, a) =q5} NM δ (q0, b) =q1} M
δ (q3, b) =q2 (q5, q1) = δ (q5, a) = q6
δ (q0, b) =q1} M δ (q1, a) =q2} M
(q4, q0) = δ (q4, a) = q5 δ (q5, b) =q2
δ (q0, a) =q5} NE δ (q1, b) =q6} M
δ (q4, b) =q7 (q5, q3) = δ (q5, a) = q6
δ (q0, b) =q1} M δ (q3, a) =q6} NE
(q4, q1) = δ (q4, a) = q5 δ (q5, b) =q2
δ (q1, a) = q2} M δ (q3, b) =q2} NE

16
(q5, q4) = δ (q5, a) = q6 δ (q7, b) =q6
δ (q4, a) =q5} NM δ (q0, b) =q1} M
δ (q5, b) =q2 (q7, q1) = δ (q7, a) = q2
δ (q4, b) =q7} M δ (q1, a) =q2} NE
(q6, q0) = δ (q6, a) = q4 δ (q7, b) =q6
δ (q0, a) =q5} M δ (q1, b) =q6} NE
δ (q6, b) =q6 (q7, q3) = δ (q7, a) = q2
δ (q0, b) =q1} M δ (q3, a) =q6} M
(q6, q1) = δ (q6, a) = q4 δ (q7, b) =q6
δ (q1, a) =q2} M δ (q3, b) =q2} M
δ (q6, b) =q6 (q7, q4) = δ (q7, a) =q2
δ (q1, b) =q6} NE δ (q4, a) =q5} M
(q6, q3) = δ (q6, a) = q4 δ (q7, b) =q6
δ (q3, a) =q6} M δ (q4, b) =q7} NM
δ (q6, b) =q6 (q7, q4) = δ (q7, a) =q2
δ (q3, b) =q2} M δ (q4, a) =q5} M
(q6, q4) = δ (q6, a) = q4 δ (q7, b) =q6
δ (q4, a) =q5} M δ (q4, b) =q7} NM
δ (q6, b) =q6 (q7, q5) = δ (q7, a) =q2
δ (q4, b) =q7} M δ (q5, a) =q6} M
(q6, q5) = δ (q6, a) = q4 δ (q7, b) =q6
δ (q5, a) =q6} M δ (q5, b) =q2} M
δ (q6, b) =q6 (q7, q6) = δ (q7, a) =q2
δ (q5, b) =q2} M δ (q6, a) =q4} M
(q7, q0) = δ (q7, a) = q2 δ (q7, b) =q6
δ (q0, a) =q5} M δ (q6, b) =q6} NE

δ̂(q0, bbbaaba) = q2

17
bbbaaba ε L(A8)

Autómata A8 reducido:

δ̂(x0, bbbaaba) = x2
bbbaaba ε L(A8)

18
CONCLUSIONES

 No todos los autómatas pueden ser reducidos por el teorema de MyHill-Nerode.


 Hay autómatas que cuenta con estados que no son utilizados, estos estados pueden ser
eliminados porque no tiene ninguna transición que llegue a ellos.

19
LISTA DE REFERENCIAS

 García Fernández, L; Martínez Vidal, M. (2005) Apuntes de Teoría de Autómatas y


Lenguajes Formales. Creative Commons. Recuperado de
http://repositori.uji.es/xmlui/bitstream/handle/10234/5995/parte_1.pdf?sequence=1&i
sAllowed=y
 Navarro Gonzalo (2016) Teoría de la Computación (Lenguajes Formales,
Computabilidad y Complejidad) Apuntes y Ejercicios URL. Creative Commons.
Recuperado de https://openlibra.com/es/book/teoria-de-la-computacion-lenguajes-
formales-computabilidad-y-complejidad.

20

You might also like