Sei sulla pagina 1di 26

TEOREMA DE KLEENE

MAESTRA EN CIENCIAS EN CIENCIAS DE LA COMPUTACIN

Presentan: Sylfra Avendao Romero Selene Contreras Crdova Omar Andrei Martnez Aguilar Reyes Martnez Solano

TEOREMA DE KLEENE

Un lenguaje es regular si y slo si es aceptado por un autmata finito.


Consta de 4 algoritmos:
E.R. NFA DFA a NFA- a DFA a E.R. NFA- a NFA

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

Tenemos la E.R. -> aa* + bc

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(1) = {1,2,3} Mov{C(1) ,a}={4} Mov{C(1), b }={5} Mov{C(1), c }={ }

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}

C(4) = {4,6,8,11,12} Mov{C(4) ,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(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 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 -

3. Se realiza la tabla de los resultados de los movimientos

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,c a c 1 2 5 a,b,c a,b,c

a,b
b 3 c 4

Se aumenta un estado inicial que apunta con Null a los antiguos estados iniciales.

Se aumenta un estado final.


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

Gracias por su Atencin

Potrebbero piacerti anche