Sie sind auf Seite 1von 19

TEOREMA

DE KLEENE
Teorema de Kleene
E.R

DFA NFA-ε

NFA
Método o Algoritmo de Thompson
Traduce cada parte de la definición de la expresión regular en un autómata que acepta el mismo lenguaje
denotado por ella, de tal manera que el AFN-ε quede definido al analizar la expresión parte por parte.

1. Para una expresión regular 𝜱 que denota al lenguaje vacío.


2. La expresión regular 𝜺 denota al lenguaje cuya única cadena es la vacía.
3. Para cada símbolo 𝒂 ∈ 𝜮, la expresión regular a denota al lenguaje {𝒂}.

Sean 𝑬 y 𝑭 dos expresiones regulares:

1. El lenguaje unión 𝑳(𝑬) y 𝑳(𝑭) denotado por la ER 𝑬 + 𝑭 será:


2. La expresión regular 𝑬𝑭 denota al lenguaje concatenación de 𝑳(𝑬) y 𝑳(𝑭).
3. Para la estrella de Kleene de una expresión regular 𝑬∗ , que representa al lenguaje [ 𝑳 𝑬 ]∗ :
(a+b)b*
ε
ε a ε
q0
a q1
q0 q1 q2 q3

a
ε q1 q3
ε
q0
q5 q1
ε q1
a q2
ε q3
b q4
ε q5

b ε q0 q1
ε q2 q4
(a+b)b*
a ε
ε q2 q4
ε
ε q6
ε q7
ε q8
b q9
ε q10
ε q11
q0 q1

b ε
ε q3 q5
ε

a ε
ε q1 q3
ε
q0
q5 q0
ε q1
a q2
ε q3

b ε
ε q2 q4
ε
(a+b)b*
Todo AFN-ε puede ser redefinido como un AFN equivalente y, para ello, se deben eliminar sus transiciones ε.

a ε
ε q2 q4
ε
ε ε ε b ε ε
q6 q7 q8 q9 q10 q11
q0 q1

b ε
ε q3 q5
ε

Clausuras respecto de épsilon

Definición: Se llama clausura de un estado al conjunto de estados a los que puede evolucionar sin consumir
ninguna entrada.

𝑪𝑳𝝐 (𝒒𝒎 ) = { 𝒒𝒏 ∈ 𝑸 | 𝒒𝒏 𝒆𝒔 𝒂𝒄𝒄𝒆𝒔𝒊𝒃𝒍𝒆 𝒅𝒆𝒔𝒅𝒆 𝒒𝒎 𝒔𝒊𝒏 𝒄𝒐𝒏𝒔𝒖𝒎𝒊𝒓 𝒏𝒊𝒏𝒈ú𝒏 𝒔í𝒎𝒃𝒐𝒍𝒐}


a ε
ε q2 q4
ε
ε ε ε b ε ε
q6 q7 q8 q9 q10 q11
q0 q1

b ε
ε q3 q5
ε

𝑪𝑳𝜺 𝒒𝟎 = {𝒒𝟎 , 𝒒𝟏 , 𝒒𝟐 , 𝒒𝟑 } 𝑪𝑳𝜺 𝒒𝟔 = {𝒒𝟔 , 𝒒𝟕 , 𝒒𝟖 , 𝒒𝟏𝟎 , 𝒒𝟏𝟏 }


𝑪𝑳𝜺 𝒒𝟏 = {𝒒𝟎 , 𝒒𝟐 , 𝒒𝟑 } 𝑪𝑳𝜺 𝒒𝟕 = {𝑞7 , 𝑞8 , 𝑞10 , 𝑞11 }
𝑪𝑳𝜺 𝒒𝟐 = {𝒒𝟐 } 𝑪𝑳𝜺 𝒒𝟖 = {𝑞8 }
𝑪𝑳𝜺 𝒒𝟑 = {𝒒𝟑 } 𝑪𝑳𝜺 𝒒𝟗 = {𝑞8 , 𝑞9 , 𝑞10 , 𝑞11 }
𝑪𝑳𝜺 𝒒𝟒 = {𝒒𝟒 , 𝒒𝟔 , 𝒒𝟕 , 𝒒𝟖 , 𝒒𝟏𝟎 , 𝒒𝟏𝟏 } 𝑪𝑳𝜺 𝒒𝟏𝟎 = {𝑞10 , 𝑞11 }
𝑪𝑳𝜺 𝒒𝟓 = {𝒒𝟓 , 𝒒𝟔 , 𝒒𝟕 , 𝒒𝟖 , 𝒒𝟏𝟎 , 𝒒𝟏𝟏 } 𝑪𝑳𝜺 𝒒𝟏𝟏 = {𝑞11 }
Se genera la siguiente tabla con los siguientes puntos.

Estado ∀ 𝒂𝒏 ∈ ∑ 𝑪𝑳𝝐
𝒒𝟎 𝜑 𝐶𝐿𝜖 𝑞0 , ∑ → 𝑄∗ 𝐶𝐿𝜖 (𝑞0 )
. . .
. . .
. . .
𝒒𝒏 𝜑 𝐶𝐿𝜖 𝑞0 , ∑ → 𝑄∗ 𝐶𝐿𝜖 (𝑞𝑛 )

1. Se calculan las clausuras épsilon de cada 𝒒𝒏 ∈ 𝑸 del AFN-ε.


2. La función 𝝋 toma como argumento las clausuras de épsilon 𝑪𝑳𝝐 𝒒𝒏 y para cada elemento del alfabeto ∑ nos
devuelve un conjunto de estados.
3. Se dibuja el AFN con la tabla generada y se minimiza el número de estados mediante la identificación de los estados
a los que no hay forma de llegar a ellos mediante otros estados, tomando en cuenta que antiguo estado inicial del
autómata puede ser el nuevo estado inicial del AFN.
4. Finalmente, los estados finales serán aquellos que en su clausura épsilon contengan al antiguo estado final.
a ε
ε q2 q4
ε
ε ε ε b ε ε
q6 q7 q8 q9 q10 q11
q0 q1

b ε
ε q3 q5
ε

Estado a b 𝑪𝒍𝒂𝒖𝒔𝒖𝒓𝒂𝜺
𝒒𝟎 𝒒𝟒 𝒒5 𝑪𝑳𝜺 𝒒𝟎 = {𝒒𝟎 , 𝒒𝟏 , 𝒒𝟐 , 𝒒𝟑 }
Estado a b 𝑪𝒍𝒂𝒖𝒔𝒖𝒓𝒂𝜺
𝒒𝟎 𝒒𝟒 𝒒5 𝑪𝑳𝜺 𝒒𝟎 = {𝒒𝟎 , 𝒒𝟏 , 𝒒𝟐 , 𝒒𝟑 }
𝒒𝟏 𝒒𝟒 𝒒5 𝑪𝑳𝜺 𝒒𝟏 = {𝒒𝟎 , 𝒒𝟐 , 𝒒𝟑 }
𝒒𝟐 𝒒4 - 𝑪𝑳𝜺 𝒒𝟐 = {𝒒𝟐 }
𝒒𝟑 - 𝒒5 𝑪𝑳𝜺 𝒒𝟑 = {𝒒𝟑 }
𝒒𝟒 - 𝒒9 𝑪𝑳𝜺 𝒒𝟒 = {𝒒𝟒 , 𝒒𝟔 , 𝒒𝟕 , 𝒒𝟖 , 𝒒𝟏𝟎 , 𝒒𝟏𝟏 }
𝒒𝟓 - 𝒒9 𝑪𝑳𝜺 𝒒𝟓 = {𝒒𝟓 , 𝒒𝟔 , 𝒒𝟕 , 𝒒𝟖 , 𝒒𝟏𝟎 , 𝒒𝟏𝟏 }
𝒒𝟔 - 𝒒9 𝑪𝑳𝜺 𝒒𝟔 = {𝒒𝟔 , 𝒒𝟕 , 𝒒𝟖 , 𝒒𝟏𝟎 , 𝒒𝟏𝟏 }
𝒒𝟕 - 𝒒9 𝑪𝑳𝜺 𝒒𝟕 = {𝑞7 , 𝑞8 , 𝑞10 , 𝑞11 }
𝒒𝟖 - 𝒒9 𝑪𝑳𝜺 𝒒𝟖 = {𝑞8 }
𝒒𝟗 - 𝒒9 𝑪𝑳𝜺 𝒒𝟗 = {𝑞8 , 𝑞9 , 𝑞10 , 𝑞11 }
𝒒𝟏𝟎 - - 𝑪𝑳𝜺 𝒒𝟏𝟎 = {𝑞10 , 𝑞11 }
𝒒𝟏𝟏 - - 𝑪𝑳𝜺 𝒒𝟏𝟏 = {𝑞11 }
a
a
q0 q1 q2 q3 q4

b b
b b
b

q5
q6 q7 q8
b q9

b b b
b

Se dibuja el AFN con la tabla generada y se minimiza el número de estados mediante la identificación de los
estados a los que no hay forma de llegar a ellos mediante otros estados, tomando en cuenta que antiguo
estado inicial del autómata puede ser el nuevo estado inicial del AFN.
a

q0 q4

b
b

q5 q9

b b

Se dibuja el AFN con la tabla generada y se minimiza el número de estados mediante la identificación de los
estados a los que no hay forma de llegar a ellos mediante otros estados, tomando en cuenta que antiguo
estado inicial del autómata puede ser el nuevo estado inicial del AFN.
Para cada AFN, siempre existe un AFD que acepta el mismo lenguaje y estos autómatas son equivalentes
Sea un AFN 𝑴 = {𝜮, 𝑸, 𝒒𝟎 , 𝑭, 𝝋} donde: 𝝋: 𝑸 𝒙 𝚺 = 𝒒𝒏 , 𝒂𝒏 → 𝑸 ∗
Siempre existe un AFD 𝑴′ = {𝜮, 𝑸′ , 𝒄𝟎 , 𝑭′ , 𝝋′} con 𝝋′ : 𝑸′ 𝒙 𝚺 = (𝒄𝒏 , 𝒂𝒏 ) → 𝒄𝒏 ∈ 𝑸′

Se genera una tabla de transiciones con los siguientes puntos:

Estado ∀ 𝒂𝒏 ∈ ∑
𝒄𝟎 𝜑 ′ 𝑐0 , 𝑎𝑛 → 𝑐𝑖
. .
. .
. .
𝒄𝒏 𝜑 ′ 𝑐𝑛 , 𝑎𝑛 → 𝑐𝑖
a
q0 q4
b
a,b
b b q0 q1

q5 q9

b b
q0
a q4

q0 q0 q4 q5

b b q1 q4 Ø q9
q5 Ø q9
q2
q5 q9
q3 q9 Ø q9

b b q4 Ø Ø Ø

q0
a
q1

a,b
a
a
q4
b
a
b
q2 q3

b b
q0
a q1

a,b
a
q4 b
b a a

abb* + bbb* + a + b q2 q3

b b
( a + abb* ) + ( b + bbb* )

a( ε + bb* ) + b( ε + bb* )

( a + b )( ε + bb* ) Aplicando esta propiedad: rr* + ε = r*

( a + b )b*
Se denomina ecuación lineal fundamental en expresiones regulares a la ecuación lineal de una
variable X de la forma:
𝒙 = 𝒓𝒙 + 𝒔

Dada una ecuación fundamental 𝒙 = 𝒓𝒙 + 𝒔, la expresión regular 𝒓∗ 𝒔 es siempre solución de la


ecuación fundamental anterior

∀ estado 𝒒𝒊 ∈ 𝑸 se define una ecuación de la siguiente forma:


𝒒𝒊 = 𝒂𝒋 𝒒𝒋 + 𝒂𝒋+𝟏 𝒒𝒋+𝟏 … + 𝒂𝒏 𝒒𝒏 ∀ 𝒂 ∈ 𝚺

Donde 𝒂𝒋 representa un símbolo que une mediante un arco al estado 𝒒𝒊 con el estado 𝒒𝒋
q0
a q1

𝟏) 𝒒𝟎 = 𝒂𝒒𝟏 + 𝒃𝒒𝟐 b
𝟐) 𝒒𝟏 = 𝒃𝒒𝟑 + 𝜺
b
𝟑) 𝒒𝟐 = 𝒃𝒒𝟑 + 𝜺
q2 q3
𝟒) 𝒒𝟑 = 𝒃𝒒𝟑 + 𝜺 b b
𝒒𝟏 = 𝒒𝟐 = 𝒒𝟑

Aplicando el lema de arden en 4 Sustituyendo 𝒒𝟏 y 𝒒𝟐 en 1)


𝒒𝟑 = 𝒃𝒒𝟑 + 𝜺 = 𝒃 ∗ 𝜺 = 𝒃 ∗ 𝒒𝟎 = 𝒂 𝒃 ∗ + 𝒃(𝒃 ∗)
Sustituyendo 𝒒𝟑 en 2 y 3 Factorizando
𝒒𝟐 = 𝒃 ∗ 𝜺 = 𝒃 ∗ 𝒒𝟎 = (𝒂 + 𝒃) (𝒃 ∗)
𝒒𝟏 = 𝒃 ∗ 𝜺 = 𝒃 ∗
( a + b )b*

Das könnte Ihnen auch gefallen