En la teoría del lenguaje formal , la estrella de Kleene (o el operador de Kleene o el cierre de Kleene ) se refiere a dos operaciones unarias relacionadas , que pueden aplicarse tanto a un alfabeto de símbolos como a un lenguaje formal , un conjunto de cadenas (secuencias finitas de símbolos).
El operador estrella de Kleene sobre un alfabeto V genera el conjunto V* de todas las cadenas de longitud finita sobre V , [ nota 1 ] es decir, secuencias finitas cuyos elementos pertenecen a V ; en matemáticas, se conoce más comúnmente como la construcción de monoide libre . El operador estrella de Kleene sobre un lenguaje L genera otro lenguaje L* , el conjunto de todas las cadenas que se pueden obtener como una concatenación de cero o más elementos de L. En ambos casos, se permiten repeticiones.
Los operadores estrella de Kleene reciben su nombre del matemático estadounidense Stephen Cole Kleene , quien los introdujo por primera vez y los utilizó ampliamente para caracterizar autómatas para expresiones regulares .
De un alfabeto
Dado un alfabeto, definir
- (el conjunto consta únicamente de la cadena vacía),
y definir recursivamente el conjunto
- para cada
dóndedenota la cadena obtenida al agregar el único carácterhasta el final de. Aquí,puede entenderse como el conjunto de todas las cadenas de longitud exactamente, con personajes de.
La definición de estrella Kleene enes [ 1 ]
De un idioma
Dado un idioma(cualquier conjunto finito o infinito de cadenas), definir
- (el lenguaje que consiste únicamente en la cadena vacía),
y definir recursivamente el conjunto
- para cada
dóndedenota la cadena obtenida al concatenary. Aquí,puede entenderse como el conjunto de todas las cadenas que se pueden obtener concatenando exactamentecadenas de, permitiendo repeticiones.
La definición de estrella Kleene enes [ 2 ]
Kleene plus
En algunos estudios formales de lenguaje (por ejemplo, la teoría AFL ) , se utiliza una variación de la operación estrella de Kleene llamada Kleene plus . El Kleene plus omite laotérmino en las uniones anteriores. En otras palabras, el Kleene más enes
o
Ejemplos
Ejemplo de la estrella de Kleene aplicada a un conjunto de cadenas:
- {"ab","c"} * = { ε, "ab", "c", "abab", "abc", "cab", "cc", "ababab", "ababc", "abcab", "abcc", "cabab", "cabc", "ccab", "ccc", ...}.
Ejemplo de la estrella de Kleene aplicada a un conjunto de cadenas sin la propiedad de prefijo :
- {"a","ab","b"} * = { ε, "a", "ab", "b", "aa", "aab", "aba", "abab", "abb", "ba", "bab", "bb", ...}; En este ejemplo, la cadena "aab" se puede obtener de dos maneras diferentes. El algoritmo de Sardinas-Patterson se puede usar para comprobar, para un V dado , si algún miembro de V * se puede obtener de más de una manera.
Ejemplo de Kleene y Kleene plus aplicados a un conjunto de caracteres (siguiendo la convención del lenguaje de programación C, donde un carácter se denota con comillas simples y una cadena con comillas dobles):
- {'a', 'b', 'c'} * = { ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc", "aaa", "aab", ...}.
- {'a', 'b', 'c'} + = { "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc", "aaa", "aab", ...}.
Propiedades
- Sies cualquier conjunto finito o infinito numerable de caracteres, entonceses un conjunto infinitamente numerable. [ 1 ] Como resultado, cada lenguaje formal sobre un alfabeto finito o infinitamente numerablees numerable, ya que es un subconjunto del conjunto infinito numerable..
- , lo que significa que el operador estrella de Kleene es un operador unario idempotente , comopor cada.
- , sies el conjunto vacío ∅. Para la versión del operador estrella de Kleene en lenguajes,cuandoes o bien el conjunto vacío ∅ o bien el conjunto unitario.
Generalización
Las cadenas forman un monoide con la concatenación como operación binaria y ε como elemento identidad. Además de las cadenas, la estrella de Kleene se define para cualquier monoide. Más precisamente, sea ( M , ⋅) un monoide y S ⊆ M . Entonces S * es el submonoide más pequeño de M que contiene a S ; es decir, S * contiene el elemento neutro de M , el conjunto S , y es tal que si x , y ∈ S * , entonces x ⋅ y ∈ S * .
Además, la estrella de Kleene se generaliza al incluir la operación * (y la unión) en la propia estructura algebraica mediante la noción de semianillo estrella completo . [ 3 ]
Véase también
Notas
- ↑ Se le llama "cadenas" por razones históricas, ya que Kleene lo inventó en el contexto de la teoría de autómatas, pero la idea se ha generalizado de tal manera que cada símbolo en una cadena no es necesariamente un solo carácter .
- ↑ Esta ecuación se cumple porque cada miembro de V + puede generarse seleccionando primero un miembro de V* y luego seleccionando un miembro de V para agregarlo. Este proceso de dos pasos no genera ε, ya que en el segundo paso nunca se selecciona un ε.
Referencias
- ^ Nayuki Minase (10 de mayo de 2011) . «Conjuntos contables y estrella Kleene» . Proyecto Nayuki . Consultado el 11 de enero de 2012 .
- ↑ Fletcher, Peter; Hoyle, Hughes; Patty, C. Wayne (1991). Fundamentos de matemáticas discretas . Brooks/Cole. pág. 656. ISBN 0534923739.
El cierre de Kleene L * de L se define como.
- ↑ Droste, M.; Kuich, W. (2009). «Capítulo 1: Semianillos y series de potencias formales». Manual de autómatas ponderados . Monografías en informática teórica. Springer. pág. 9. doi : 10.1007 /978-3-642-01492-5_1 . ISBN 978-3-642-01491-8.
Lecturas adicionales
- Lenguajes formales
- Gramática
- Procesamiento del lenguaje natural