Exposici+¦n Estrella de Kleene2
-
Upload
kaeren-winchester -
Category
Documents
-
view
73 -
download
13
Transcript of Exposici+¦n Estrella de Kleene2
TEOREMA DE KLEENETEOREMA DE KLEENEMAESTRÍA EN CIENCIAS EN CIENCIAS MAESTRÍA EN CIENCIAS EN CIENCIAS
DE LA COMPUTACIÓNDE LA COMPUTACIÓN
Presentan:Sylfra Avendaño Romero
Selene Contreras CórdovaOmar Andrei Martínez Aguilar
Reyes Martínez Solano
TEOREMA DE TEOREMA DE KLEENEKLEENE
Un lenguaje es regular si y sólo si es aceptado por un autómata
finito.
Consta de 4 algoritmos:
• E.R. a NFA-ε
• NFA- ε a NFA
• NFA a DFA
• DFA a E.R.
Estrella de Kleene:
E.R.
NFA- ε
NFA
DFA
TEOREMA DE TEOREMA DE KLEENEKLEENE
1) E.R. a NFA- ε
Se debe tomar en cuenta los operandos de los que está compuesta la E.R. para determinar la forma en que se enlazará el autómata esto se hace en base a las reglas a la derecha.
Ejemplo: Tenemos la E.R. ->-> aa* + aa* + bcbc
1 2a
aε
6 8 10 11aε
ε
ε
a*
3 5 7 9b cε
bc
3 5 7 9b cε
Formando el autómata:
1
2 4a
ε
ε
ε
6 8 10 11aε
ε
εε
12
ε
ε
T.Kleene
1. Se interpretan los estados y sus direcciones teniendo en cuenta hacia donde nos lleva en base a epsilon y agregando que cada estado se lleva a si mismo.
2. Mover cada estado que resulto de la cerradura épsilon con los valores del alfabeto.
Cε(1) = {1,2,3}
Mov{Cε(1) ,a}={4}
Mov{Cε(1), b }={5}
Mov{Cε(1), c }={ }
NFAε-NFA ε
1
2
3
4
5
6
7
8
9
12
10 11a
b c
a
ε
ε
ε ε
ε
ε
εε
ε
Cε(2) = {2}
Mov{Cε(2) ,a}={4}
Mov{Cε(2), b }={ }
Mov{Cε(2), c }={ }
Cε(3) = {3}
Mov{Cε(3) ,a}={ }
Mov{Cε(3), b }={5}
Mov{Cε(3), c }={ }
Cε(4) = {4,6,8,11,12}
Mov{Cε(4) ,a}={10}
Mov{Cε(4), b }={ }
Mov{Cε(4), c }={ }Cε(5) = {5,7}
Mov{Cε(5) ,a}={ }
Mov{Cε(5), b }={ }
Mov{Cε(5), c }={9}
Cε(6) = {6,8,11,12}
Mov{Cε(6) ,a}={10}
Mov{Cε(6), b }={ }
Mov{Cε(6), c }={ }
Cε(7) = {7}
Mov{Cε(7) ,a}={ }
Mov{Cε(7), b }={ }
Mov{Cε(7), c }={9}
Cε(8) = {8}
Mov{Cε(8) ,a}={10}
Mov{Cε(8), b }={ }
Mov{Cε(8), c }={ }
Cε(9) = {9,12}
Mov{Cε(9) ,a}={ }
Mov{Cε(9), b }={ }
Mov{Cε(9), c }={ }
Cε(10) = {10,11,8,6}
Mov{Cε(10) ,a}={10}
Mov{Cε(10), b }={ }
Mov{Cε(10), c }={ }
Cε(11) = {11,12}
Mov{Cε(11) ,a}={ }
Mov{Cε(11), b }={ }
Mov{Cε(11), c }={ }
Cε(12) = {12}
Mov{Cε(12) ,a}={ }
Mov{Cε(12), b }={ }
Mov{Cε(12), c }={ }
3. Se genera la siguiente tabla para después minimizarla mediante la identificación de los estados a los que no hay forma de llegar a ellos mediante otros estados.
AlfabetoAlfabeto EstadoEstado aa bb cc CCεε
11
22
33
44
55
66
77
88
99
1010
1111
1212
44
44
--
1010
--
1010
--
1010
--
1010
--
--
55
--
55
--
--
--
--
--
--
--
--
--
--
--
--
--
99
--
99
--
--
--
--
--
1,2,31,2,3
22
33
4,6,8,11,124,6,8,11,12
5,75,7
6,8,11,126,8,11,12
77
88
9,129,12
6,8,11,106,8,11,10
11,1211,12
1212
4. Si se quiere dibujar el autómata solo se debe tomar en cuenta que los estados finales serán aquellos que en su cerradura epsilon contengan al antiguo estado final.
5 104 9
a
b c
a
T.Kleene
NFA-DFA
5 104 9
a
b c
a
4
5
a
a
bc
9
10
NFA-DFADe la tabla minimizada de la Conversión Anterior
AlfabetoAlfabeto EstadoEstado aa bb cc
11
22
33
44
55
66
77
88
99
1010
1111
1212
44
44
--
1010
--
1010
--
1010
--
1010
--
--
55
--
55
--
--
--
--
--
--
--
--
--
--
--
--
--
99
--
99
--
--
--
--
--
1. Mover los estados resultantes con cada valor del alfabeto.
NFA-DFA
Mov{Cε(9) ,a}={ }
Mov{Cε(9), b }={ }
Mov{Cε(9), c }={ }
Mov{Cε(4) ,a}={10, 4}
Mov{Cε(4), b }={5}
Mov{Cε(4), c }={ }
Mov{Cε(5) ,a}={ }
Mov{Cε(5), b }={ }
Mov{Cε(5), c }={ 9 }Mov{Cε(10) ,a}={10}
Mov{Cε(10), b }={ }
Mov{Cε(10), c }={ }
2. En caso de que el resultado de algún movimiento resulte vacío, se aumenta un nuevo movimiento con otro estado que apunta a nada.
NFA-DFA Se realiza la Tabla de Resultados (En el estado 4 se toma el valor del estado inicial en b que es igual a 5, y no se toma el valor con a debido a que ya tiene este estado una salida)
Alfabeto Alfabeto
EstadoEstadoaa bb cc
44
55
99
1010
10,410,4
--
--
1010
55
--
--
--
--
99
--
--
3. Se realiza la tabla de los resultados de los movimientos
NFA-DFA Se realiza la Tabla de Resultados
Alfabeto Alfabeto
EstadoEstadoaa bb cc
44
55
99
1010
XX
1010
--
--
1010
--
55
--
--
--
--
--
99
--
--
--
NFA-DFA
4. Si en la tabla se aumentó un nuevo estado, este estado de trampa debe apuntar a sí mismo con los valores del alfabeto
4
5
a
a
bc
9
10x
a,b,c
NFA-DFA
De igual forma, los estados que no tengan salida con el mismo número de elementos del alfabeto debe apuntar con el elemento del alfabeto faltante al nuevo estado de trampa.
4
5
a
a
bc
9
10x
c
b,c
a,b
a,b,c
a,b,c
T.Kleene
1
3
a
a
bc
4
2
DFA – e.r.•Teniendo este autómata finito determinístico.
5c
b,c
a,b
a,b,c
a,b,c
1
3
a
a
bc
4
2
•Se aumenta un estado inicial que apunta con Null a los antiguos estados iniciales.
q0
5c
b,c
a,b
a,b,c
a,b,c
qf
•Se aumenta un estado final.
1
3
a
a
bc
4
2
q0
5c
b,c
a,b
a,b,c
a,b,c
qf
•Se detectan los estados de no aceptación. Son aquellos que apuntan en todo el alfabeto a sí mismos y no son finales.
•Se sustituye por vacío todos los apuntadores al estado de no aceptación
1
3
a
a
bc
4
2
q0
5
qf
•Se detectan los estados de no aceptación. Son aquellos que apuntan en todo el alfabeto a sí mismos y no son finales.
•Se sustituye por vacío todos los apuntadores al estado de no aceptación
1
3
a
a
bc
4
2
•Los estados finales se vuelven normales, y apuntan con null al nuevo estado final.
q0
qf
1
3
a
a
bc
4
2
q0
qf
aa*
•Se empieza con el estado inicial, se generan cadenas independientes por cada letra del alfabeto concatenada con la cadena hacia donde apunta, en caso de que apunte a sí misma se considera como * y se concatena a los restantes.
1
3
a
a
bc
4
2
•Se empieza con el estado inicial, se generan cadenas independientes por cada letra del alfabeto concatenada con la cadena hacia donde apunta, en caso de que apunte a sí misma se considera como * y se concatena a los restantes.
q0
qf
aa* + bc = a+ + bc
Gracias por su AtenciónGracias por su Atención