Autómatas Finitos No Deterministas

Post on 04-Jul-2022

3 views 0 download

Transcript of 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

29/08/2019 Autómatas finitos no

deterministas 2

Contenidos

Autómatas.

Autómatas finitos no deterministas.

Expresiones regulares.

Construcción de Thompson

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

29/08/2019 Autómatas finitos no

deterministas 4

Grafo de transiciones AFN

0 1 2 3 Inicio

a

a

b

b b

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

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).

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}

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}

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.

29/08/2019 Autómatas finitos no

deterministas 10

AFN lenguaje (a*|b*)abb

0 1 2 3 Inicio

a

a

b

b b

29/08/2019 Autómatas finitos no

deterministas 11

AFN lenguaje aa*|bb*

1 2 a

3 4 b

a

b

0 Inicio

ε

ε

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).

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).

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.

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

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

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.

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)

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)

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)

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.

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 .

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.

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

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

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

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

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

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

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

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