Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Presentan: Sylfra Avendao Romero Selene Contreras Crdova Omar Andrei Martnez Aguilar Reyes Martnez Solano
TEOREMA DE KLEENE
TEOREMA DE KLEENE
Estrella de Kleene: E.R.
DFA
NFA-
NFA
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 autmata esto se hace en base a las reglas a la derecha.
Ejemplo: a
1 a 2
a*
6 8 a 10
11
bc
3 b 5 7 c
Formando el autmata:
2 a 4 6
10
11
1
3 b 5
12
T.Kleene
NFA-NFA
2 a 4
10
11
1 3
12
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(2) = {2} Mov{C(2) ,a}={4} Mov{C(2), b }={ } Mov{C(2), c }={ } C(5) = {5,7} Mov{C(5) ,a}={ }
C(3) = {3} Mov{C(3) ,a}={ } Mov{C(3), b }={5} Mov{C(3), c }={ } C(6) = {6,8,11,12} Mov{C(6) ,a}={10}
Mov{C(4), b }={ }
Mov{C(4), c }={ } C(7) = {7} Mov{C(7) ,a}={ }
Mov{C(5), b }={ }
Mov{C(5), c }={9}
Mov{C(6), b }={ }
Mov{C(6), c }={ }
Mov{C(7), b }={ }
Mov{C(7), c }={9}
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 despus minimizarla mediante la identificacin de los estados a los que no hay forma de llegar a ellos mediante otros estados.
Alfabeto Estado
1 2 3 4 5 6 7 8 9 10 11 12
a
4 4 10 10 10 10 -
b
5 5 -
c
9 9 -
C
1,2,3 2 3 4,6,8,11,12 5,7 6,8,11,12 7 8 9,12 6,8,11,10 11,12 12
4. Si se quiere dibujar el autmata solo se debe tomar en cuenta que los estados finales sern aquellos que en su cerradura epsilon contengan al antiguo estado final. a
10
T.Kleene
NFA-DFA
10 a
a
4 b
10
NFA-DFA
De la tabla minimizada de la Conversin Anterior
Alfabeto Estado
1 2 3 4 5 6 7 8 9 10 11 12
a
4 4 10 10 10 10 -
b
5 5 -
c
9 9 -
NFA-DFA
1. Mover los estados resultantes con cada valor del alfabeto.
Mov{C(4) ,a}={10, 4} Mov{C(4), b }={5} Mov{C(4), c }={ } Mov{C(9) ,a}={ } Mov{C(9), b }={ } Mov{C(9), 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 }={ }
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 Estado
a
10,4 10
b
5 -
c
9 -
4 5 9 10
2. En caso de que el resultado de algn movimiento resulte vaco, se aumenta un nuevo movimiento con otro estado que apunta a nada.
NFA-DFA
Se realiza la Tabla de Resultados
Alfabeto
Estado
4 5 9 10 X
a
10 10 -
b
5 -
c
9 -
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
a a,b,c 10 x
4
b 5 c 9
NFA-DFA
De igual forma, los estados que no tengan salida con el mismo nmero de elementos del alfabeto debe apuntar con el elemento del alfabeto faltante al nuevo estado de trampa.
a b,c a c 10 x a,b,c
a,b,c a,b
4
b 5 c 9
T.Kleene
DFA e.r.
Teniendo este autmata finito determinstico.
a,b
b 3 c 4
Se aumenta un estado inicial que apunta con Null a los antiguos estados iniciales.
a,b,c qf
q0
a,b
b 3 c 4
Se detectan los estados de no aceptacin. Son aquellos que apuntan en todo el alfabeto a s mismos y no son finales. Se sustituye por vaco todos los apuntadores al estado de no aceptacin a b,c a c 1 2 5 a,b,c
a,b,c qf
q0
a,b
b 3 c 4
Se detectan los estados de no aceptacin. Son aquellos que apuntan en todo el alfabeto a s mismos y no son finales. Se sustituye por vaco todos los apuntadores al estado de no aceptacin a
qf 5
q0 1
b 3 c 4
Los estados finales se vuelven normales, y apuntan con null al nuevo estado final.
q0 1 b 3 c 4 a
qf
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 1 b 3 c 4 a
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. a
q0 1 b 3 c 4 a
qf
aa*
+ bc
= a+ + bc