Elementos Finitos - dec.uc.pt · PDF fileTeoria das Estruturas II Método dos Elementos Finitos
Autómatas Finitos No Deterministas
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