Clausura de un lenguaje regular
Tenemos un lenguaje regular L. Demostraremos que la clausura de Kleene del lenguaje L es de nuevo un lenguaje regular.
Qué es la clausura de un lenguaje
La clausura (de Kleene) del lenguaje L se denota L∗. Contiene todas las palabras que se pueden formar concatenando una cantidad finita de palabras del lenguaje L. La clausura puede definirse como:
donde ∘ denota la operación de concatenación. La clausura contiene también la palabra vacía, es decir, ϵ.
Procedimiento formal
Procederemos de forma muy parecida al caso de la concatenación de lenguajes. Solo que, en lugar de conectar dos autómatas distintos, conectaremos un autómata consigo mismo: desde los estados finales del autómata trazaremos transiciones ε hacia su estado inicial. Sin embargo, la clausura debe contener también la palabra vacía. ¿Cómo conseguirlo? Podríamos convertir el estado inicial en final. Entonces ese autómata aceptaría la palabra vacía, pero podría aceptar también alguna otra palabra que no debe. Por eso, en su lugar creamos un nuevo estado inicial y desde él trazamos una transición ε hacia el estado inicial original.
Tenemos un lenguaje regular L1 y un autómata que acepta este lenguaje:
Construimos un autómata no determinista A = ⟨Q, Σ, δ, qs, F⟩ que cumple:
- Q = Q1 ∪ {qs}
- Σ= Σ1
- F = F1 ∪ {qs}
La función de transición δ la definimos así:
Ejemplo
Tomemos este autómata A1, que acepta las palabras 00 o 11:
La clausura del lenguaje L(A1) es, pues, el lenguaje de todas las palabras formadas por parejas 00 y 11, por ejemplo 0000, 110011, 11110000, etc. El autómata que aceptara esta clausura lo construiríamos creando un nuevo estado inicial qs con una transición ε hacia el antiguo estado inicial q0 y añadiendo transiciones ε desde los estados q3 y q4 hacia el estado q0:
Podemos comprobar que este autómata acepta realmente las palabras 0000, 110011, 11110000, pero no acepta, por ejemplo, la palabra 1010.
Fuentes
Capítulos: Propiedades de cierre de los lenguajes regulares, Unión de lenguajes regulares, Intersección de lenguajes regulares, Diferencia de lenguajes regulares, Complemento de un lenguaje regular, Concatenación de lenguajes regulares, Clausura de un lenguaje regular