Autómatas Finitos No Deterministas

31
Autómatas finitos no deterministas Dr. Julio J. Águila G. 20 de diciembre de 2004 Última revisión: 20 de agosto de 2019

Transcript of Autómatas Finitos No Deterministas

Page 1: Autómatas Finitos No Deterministas

Autómatas finitos no deterministas

Dr. Julio J. Águila G.

20 de diciembre de 2004

Última revisión: 20 de agosto de 2019

Page 2: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 2

Contenidos

Autómatas.

Autómatas finitos no deterministas.

Expresiones regulares.

Construcción de Thompson

Page 3: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 3

Autómata

AUTÓMATA

reconocedor

de un

lenguaje:

¿pertenece la

palabra al

lenguaje?

palabra

de

entrada

Solo hay dos

respuestas

posibles: SÍ o

NO

Page 4: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 4

Grafo de transiciones AFN

0 1 2 3 Inicio

a

a

b

b b

Page 5: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 5

Movimientos del AFN

a a b b

0 -> 0 -> 1 -> 2 -> 3

a a b a

0 -> 0 -> 0 -> 0 -> 0

a a b b

0 -> 0 -> 0 -> 0 -> 0

Page 6: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 6

Definición AFN 1. Un conjunto de estados S.

2. Un conjunto de símbolos de entrada Σ (el alfabeto del lenguaje).

3. Una función de transición mueve, denotada por ∆,

que transforma pares estado-símbolo en conjuntos de estados. (∆: S × Σ → S)

4. Un estado s0 que se considera el estado de inicio (o estado inicial).

5. Un conjunto de estados F considerados como estados finales (o estados de aceptación).

Page 7: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 7

Ejemplo AFN

Sea entonces M un AFN, tal que M= { S, Σ, Δ, s0, F} donde:

S= { 0, 1, 2, 3}

Σ= { a, b}

Δ= { { 0, a, { 0, 1}}, { 0, b, { 0}}, { 1, b, { 2}}, { 2, b, { 3}}}

s0= { 0}

F= { 3}

Page 8: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 8

Tabla de Transiciones

Estado

Símbolo de Entrada

a

b

0

{0,1}

{0}

1

-

{2}

2

-

{3}

Page 9: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 9

AFN y lenguajes regulares

El lenguaje definido por un AFN es el conjunto de palabras de entrada que acepta como válidas. Los conjuntos de palabras pueden ser finitos, infinitos o infinito numerables.

En general, el lenguaje definido por un AFN se conoce como lenguaje regular y puede ser definido por una expresión regular, la cual, independiente del tamaño del lenguaje, es una expresión finita.

Page 10: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 10

AFN lenguaje (a*|b*)abb

0 1 2 3 Inicio

a

a

b

b b

Page 11: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 11

AFN lenguaje aa*|bb*

1 2 a

3 4 b

a

b

0 Inicio

ε

ε

Page 12: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 12

Expresiones regulares

1. ε es una e.r. designada por { ε}.

2. Si a Є Σ → a es una e.r. designada por { a}.

3. Si r y s son e.r. representadas por L( r) y L( s) entonces:

a. (r)|(s) es una e.r. representada por L( r) U L( s).

b. (r)(s) es una e.r. representada por L( r)L( s).

c. (r)* es una e.r. representada por (L( r))*.

d. (r) es una e.r. representada por L(r).

Page 13: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 13

Construcción de Thompson

Construcción de un AFN a partir de una expresión regular.

Entrada: una expresión regular r en un alfabeto Σ.

Salida: un AFN que acepte L(r).

Page 14: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 14

Método de Thompson

Leyendo la expresión de izquierda a derecha, y considerando su estructura sintáctica, se crean los autómatas para cada subexpresión. En la medida que se avanza se van combinando de forma inductiva los autómatas.

Page 15: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 15

Regla 1

1. Para ε, construir el AFN

Aquí, i es un nuevo estado de inicio y f es un un nuevo estado de aceptación. Ciertamente este AFN reconoce {ε}.

Inicio

f i

Page 16: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 16

Regla 2

2. Para a de Σ, construir el AFN

De nuevo, i es un nuevo estado de inicio y f es un un nuevo estado de aceptación. Esta máquina reconoce {a}.

Inicio

f i

a

Page 17: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 17

Regla 3

3. Supóngase que N(s) y N(t) son AFN para las expresiones regulares s y t.

Page 18: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 18

Regla 3.a

a) Para la expresión regular s|t, constrúyase el siguiente AFN compuesto N(s|t):

Inicio f i

N(s)

N(t)

Page 19: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 19

Regla 3.b

b) Para la expresión regular st, constrúyase el siguiente AFN compuesto N(st):

Inicio f i N(s) N(t)

Page 20: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 20

Regla 3.c

c) Para la expresión s*, constrúyase el AFN compuesto N(s*):

f i N(s)

Page 21: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 21

Regla 3.d

d) Para la expresión regular entre paréntesis (s), utilícese N(s) como AFN.

Page 22: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 22

Propiedades

1. N(r) tiene a lo sumo el doble de estados que de símbolos y operadores en r. Esto se debe al hecho de que en cada paso de la construcción se crean a lo sumo dos nuevos estados.

2. N(r) tiene exactamente un estado de inicio y otro de aceptación. El estado de aceptación no tiene transiciones salientes. Esta propiedad se cumple igualmente para todos los autómatas constituyentes.

3. Cada estado de N(r) tiene una transición saliente con un símbolo en S o a lo sumo dos transiciones ε salientes .

Page 23: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 23

Ejemplo

Ejemplo: utilizando el algoritmo para construir el N(r) de la expresión regular r= (a|b)*abb, tendremos los siguientes pasos.

Page 24: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 24

Ejemplo (a|b)*abb

Para la primera a se construye N(a)

Inicio

2

a

3

Page 25: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 25

Ejemplo (a|b)*abb

Para la primera b se construye N(b)

Inicio

4

b

5

Page 26: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 26

Ejemplo (a|b)*abb

Ahora se puede combinar N(a) y N(b) utilizando la regla de la unión para obtener el AFN para N(a|b)

Inicio

2

a

3

4

b

5

6 1

Page 27: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 27

Ejemplo (a|b)*abb

El AFN para N((a|b)*) es

Inicio

2 a

3

4 b

5

6 1

7 0

Page 28: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 28

Ejemplo (a|b)*abb

Para la segunda a se construye N(a)

Inicio

7’

a

8

Page 29: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 29

Ejemplo (a|b)*abb

Para el autómata N((a|b)*a) se unen los autómatas correspondientes

Inicio 2

a 3

4 b

5

6 1

7 0

a 8

Page 30: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 30

Ejemplo (a|b)*abb

Para la segunda y tercera b los autómatas respectivos serían:

Inicio

8’

b

9

Inicio

9’

b

10

Page 31: Autómatas Finitos No Deterministas

29/08/2019 Autómatas finitos no

deterministas 31

Ejemplo (a|b)*abb

Finalmente, fusionando los autómatas, se construye N((a|b)*abb)

Inicio 2

a

3

4

b

5

6 1

7 0

8 10 9

a b b