Articulo de referencia

El algoritmo de Kleene

En la informática teórica , en particular en la teoría del lenguaje formal , el algoritmo de Kleene transforma un autómata finito no determinista (AFN) dado en una expresión reg...

En la informática teórica , en particular en la teoría del lenguaje formal , el algoritmo de Kleene transforma un autómata finito no determinista (AFN) dado en una expresión regular . Junto con otros algoritmos de conversión, establece la equivalencia de varios formatos de descripción para lenguajes regulares . Presentaciones alternativas del mismo método incluyen el "método de eliminación" atribuido a Brzozowski y McCluskey , el algoritmo de McNaughton y Yamada [ 1 ] y el uso del lema de Arden .

Descripción del algoritmo

Según Gross y Yellen (2004), [ 2 ] el algoritmo se remonta a Kleene (1956). [ 3 ] Una presentación del algoritmo en el caso de autómatas finitos deterministas (AFD) se da en Hopcroft y Ullman (1979). [ 4 ] La presentación del algoritmo para AFN que sigue a continuación sigue a Gross y Yellen (2004). [ 2 ]

Dado un autómata finito no determinista M = ( Q , Σ, δ, q 0 , F ), con Q = { q 0 ,..., q n } su conjunto de estados , el algoritmo calcula

los conjuntos R k ij de todas las cadenas que llevan M del estado q i al estado q j sin pasar por ningún estado numerado superior a k .

Aquí, "pasar por un estado" significa entrar y salir de él, por lo que tanto i como j pueden ser mayores que k , pero ningún estado intermedio puede serlo. Cada conjunto R k ij está representado por una expresión regular; el algoritmo las calcula paso a paso para k = -1, 0, ..., n . Como no hay ningún estado numerado mayor que n , la expresión regular R n 0j representa el conjunto de todas las cadenas que llevan a M desde su estado inicial q 0 hasta q j . Si F = { q 1 ,..., q f } es el conjunto de estados de aceptación , la expresión regular R n 01 | ... | R n 0f representa el lenguaje aceptado por M.

Las expresiones regulares iniciales, para k = -1, se calculan de la siguiente manera para ij :

R −1 ij = a 1 | ... | a m donde q j ∈ δ( q i , a 1 ), ..., q j ∈ δ( q i , a m )   

y como sigue para i = j :

R −1 ii = a 1 | ... | a m | ε donde q i ∈ δ( q i , a 1 ), ..., q i ∈ δ( q i , a m )   

En otras palabras, R −1 ij menciona todas las letras que etiquetan una transición de i a j , y también incluimos ε en el caso donde i = j .

Después de eso, en cada paso las expresiones R k ij se calculan a partir de las anteriores mediante

R k ij = R k -1 ik ( R k -1 kk ) * R k -1 kj | R k -1 ij

Otra forma de entender el funcionamiento del algoritmo es como un "método de eliminación", donde los estados del 0 al n se eliminan sucesivamente: cuando se elimina el estado k , la expresión regular R k -1 ij , que describe las palabras que etiquetan un camino del estado i > k al estado j > k , se reescribe en R k ij para tener en cuenta la posibilidad de pasar por el estado "eliminado" k .

Por inducción sobre k , se puede demostrar que la longitud [ 5 ] de cada expresión R k ij es como máximo 1/3 ( 4 k + 1 (6 s + 7) - 4) símbolos, donde s denota el número de caracteres en Σ. Por lo tanto, la longitud de la expresión regular que representa el lenguaje aceptado por M es como máximo 1/3 ( 4 n + 1 ( 6 s + 7) f - f - 3) símbolos, donde f denota el número de estados finales. Este crecimiento exponencial es inevitable, porque existen familias de DFA para las cuales cualquier expresión regular equivalente debe ser de tamaño exponencial. [ 6 ]

En la práctica, el tamaño de la expresión regular obtenida al ejecutar el algoritmo puede ser muy diferente dependiendo del orden en que el procedimiento considere los estados, es decir, el orden en que se numeren del 0 al n .

Ejemplo

Ejemplo de autómata finito determinista (AFD) proporcionado al algoritmo de Kleene.

El autómata que se muestra en la imagen se puede describir como M = ( Q , Σ, δ, q 0 , F ) con

  • el conjunto de estados Q = { q 0 , q 1 , q 2 },
  • el alfabeto de entrada Σ = { a , b },
  • la función de transición δ con δ( q 0 , a )= q 0 ,  δ( q 0 , b )= q 1 ,  δ( q 1 , a )= q 2 ,  δ( q 1 , b )= q 1 ,  δ( q 2 , a )= q 1 , y δ( q 2 , b )= q 1 ,
  • el estado inicial q 0 y
  • conjunto de estados de aceptación F = { q 1 }.

El algoritmo de Kleene calcula las expresiones regulares iniciales como

Después de eso, los R k ij se calculan a partir de los R k -1 ij paso a paso para k = 0, 1, 2. Se utilizan igualdades de álgebra de Kleene para simplificar las expresiones regulares tanto como sea posible.

Paso 0
Paso 1
Paso 2

Dado que q 0 es el estado inicial y q 1 es el único estado de aceptación, la expresión regular R 2 01 denota el conjunto de todas las cadenas aceptadas por el autómata.

Véase también

Referencias

  1. McNaughton, R.; Yamada, H. (marzo de 1960). "Expresiones regulares y grafos de estados para autómatas". IRE Transactions on Electronic Computers . EC-9 (1): 39–47 . doi : 10.1109/TEC.1960.5221603 . ISSN 0367-9950 . 
  2. 1 2 Jonathan L. Gross y Jay Yellen, eds. (2004). Manual de teoría de grafos . Matemáticas discretas y sus aplicaciones. CRC Press. ISBN 1-58488-090-2.Aquí: sección 2.1, observación R13 en la página 65.
  3. Kleene, Stephen C. (1956). "Representación de eventos en redes nerviosas y autómatas finitos" (PDF) . Automata Studies, Annals of Math. Studies . 34. Princeton Univ. Press.Aquí: sección 9, págs. 37-40
  4. John E. Hopcroft, Jeffrey D. Ullman (1979). Introducción a la teoría de autómatas, lenguajes y computación . Addison-Wesley. ISBN 0-201-02988-X.Aquí: Sección 3.2.1, páginas 91-96
  5. Más precisamente, el número de símbolos de expresiones regulares, " a i ", "ε", "|", " * ", "·"; sin contar los paréntesis.
  6. Gruber, Hermann; Holzer, Markus (2008). "Autómatas finitos, conectividad de dígrafos y tamaño de expresión regular". En Aceto, Luca; Damgard, Ivan; Goldberg, Leslie Ann; Halldórsson, Magnús M.; Ingólfsdóttir, Anna; Walukiewicz, Igor (eds.). Autómatas, Lenguajes y Programación . Apuntes de conferencias sobre informática. vol. 5126. Springer Berlín Heidelberg. págs. 39– 50. doi : 10.1007/978-3-540-70583-3_4 . ISBN   9783540705833. S2CID 10975422 . Teorema 16.