Articulo de referencia

Estrella Kleene

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

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 alfabetoV{\displaystyle V}, definir

V0={ε}{\displaystyle V^{0}=\{\varepsilon \}}(el conjunto consta únicamente de la cadena vacía),
V1=V,{\displaystyle V^{1}=V,}

y definir recursivamente el conjunto

Vi+1={wv:wVi y vV}{\displaystyle V^{i+1}=\{wv:w\in V^{i}{\text{ y }}v\in V\}}para cadai>0,{\displaystyle i>0,}

dóndewv{\displaystyle wv}denota la cadena obtenida al agregar el único carácterv{\displaystyle v}hasta el final dew{\displaystyle w}. Aquí,Vi{\displaystyle V^{i}}puede entenderse como el conjunto de todas las cadenas de longitud exactamentei{\displaystyle i}, con personajes deV{\displaystyle V}.

La definición de estrella Kleene enV{\displaystyle V}es [ 1 ]

V=i0Vi=V0V1V2V3V4.{\displaystyle V^{*}=\bigcup _{i\geq 0}V^{i}=V^{0}\cup V^{1}\cup V^{2}\cup V^{3}\cup V^{4}\cup \cdots .}

De un idioma

Dado un idiomaL{\displaystyle L}(cualquier conjunto finito o infinito de cadenas), definir

L0={ε}{\displaystyle L^{0}=\{\varepsilon \}}(el lenguaje que consiste únicamente en la cadena vacía),
L1=L,{\displaystyle L^{1}=L,}

y definir recursivamente el conjunto

Li+1={wv:wLi y vL}{\displaystyle L^{i+1}=\{wv:w\in L^{i}{\text{ y }}v\in L\}}para cadai>0,{\displaystyle i>0,}

dóndewv{\displaystyle wv}denota la cadena obtenida al concatenarw{\displaystyle w}yv{\displaystyle v}. Aquí,Li{\displaystyle L^{i}}puede entenderse como el conjunto de todas las cadenas que se pueden obtener concatenando exactamentei{\displaystyle i}cadenas deL{\displaystyle L}, permitiendo repeticiones.

La definición de estrella Kleene enL{\displaystyle L}es [ 2 ]

L=i0Li=L0L1L2L3L4.{\displaystyle L^{*}=\bigcup _{i\geq 0}L^{i}=L^{0}\cup L^{1}\cup L^{2}\cup L^{3}\cup L^{4}\cup \cdots .}

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 laV0{\displaystyle V^{0}}oL0{\displaystyle L^{0}}término en las uniones anteriores. En otras palabras, el Kleene más enV{\displaystyle V}es

V+=i1Vi=V1V2V3,{\displaystyle V^{+}=\bigcup _{i\geq 1}V^{i}=V^{1}\cup V^{2}\cup V^{3}\cup \cdots,}

o

V+=VV.{\displaystyle V^{+}=V^{*}V.}[ nota 2 ]

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

  • SiV{\displaystyle V}es cualquier conjunto finito o infinito numerable de caracteres, entoncesV{\displaystyle V^{*}}es un conjunto infinitamente numerable. [ 1 ] Como resultado, cada lenguaje formal sobre un alfabeto finito o infinitamente numerableΣ{\displaystyle \Sigma }es numerable, ya que es un subconjunto del conjunto infinito numerable.Σ{\displaystyle \Sigma ^{*}}.
  • (L)=L{\displaystyle (L^{*})^{*}=L^{*}}, lo que significa que el operador estrella de Kleene es un operador unario idempotente , como(L)i=L{\displaystyle (L^{*})^{i}=L^{*}}por cadai1{\displaystyle i\geq 1}.
  • V={ε}{\displaystyle V^{*}=\{\varepsilon \}}, siV{\displaystyle V}es el conjunto vacío ∅. Para la versión del operador estrella de Kleene en lenguajes,L={ε}{\displaystyle L^{*}=\{\varepsilon \}}cuandoL{\displaystyle L}es o bien el conjunto vacío ∅ o bien el conjunto unitario{ε}{\displaystyle \{\varepsilon \}}.

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 SM . 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 , yS * , entonces xyS * .

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

  1. 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 .
  2. 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

  1. ^ Nayuki Minase (10 de mayo de 2011) . «Conjuntos contables y estrella Kleene» . Proyecto Nayuki . Consultado el 11 de enero de 2012 .
  2. 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 comoi=0Li{\textstyle \bigcup _{i=0}^{\infty }L^{i}}.
  3. 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

Obtenido de " https://en.wikipedia.org/w/index.php?title=Kleene_star&oldid=1351437353#Kleene_plus "