Articulo de referencia

Lema de bombeo para lenguajes regulares

y ) that can be repeated (or pumped) any number of times to produce a string still in the language.]]"}},"i":0}}]}"> En un lenguaje regular, para cada cadena suficientemente lar...

En un lenguaje regular, para cada cadena suficientemente larga, debe haber una sección intermedia (y{\displaystyle y}) que se puede repetir (o bombear) cualquier número de veces para producir una cadena que aún esté en el idioma.

En la teoría de lenguajes formales , el lema de bombeo para lenguajes regulares describe una propiedad esencial de todos ellos . En términos informales, afirma que cualquier cadena suficientemente larga en un lenguaje regular puede ser bombeada —es decir, se puede repetir una sección central un número arbitrario de veces— para generar una nueva cadena que también pertenece al lenguaje. El lema de bombeo resulta útil para demostrar que un lenguaje específico no es regular, al mostrar que carece de dicha propiedad.

Específicamente, el lema de bombeo dice que para cualquier lenguaje regularL{\displaystyle L}, existe una constantepag{\displaystyle p}de tal manera que cualquier cadenaw{\displaystyle w}enL{\displaystyle L}con una longitud al menospag{\displaystyle p}se puede dividir en tres subcadenasincógnita{\displaystyle x},y{\displaystyle y}yz{\displaystyle z}(w=incógnitayz{\displaystyle w=xyz}, cony{\displaystyle y}siendo no vacías), de tal manera que las cadenasincógnitaz,incógnitayz,incógnitayyz,incógnitayyyz,...{\displaystyle xz,xyz,xyyz,xyyyz,...}también están enL{\displaystyle L}. El proceso de repeticióny{\displaystyle y}cero o más veces se conoce como "bombeo". Además, el lema de bombeo garantiza que la longitud deincógnitay{\displaystyle xy}será como máximopag{\displaystyle p}, dando así una subcadena "pequeña"incógnitay{\displaystyle xy}que tenga la propiedad deseada.

Los lenguajes con un número finito de cadenas satisfacen trivialmente el lema de bombeo al tenerpag{\displaystyle p}igual a la longitud máxima de la cadena enL{\displaystyle L}más uno. Al hacerlo, no hay ninguna cuerda en absoluto enL{\displaystyle L}tener longitud al menospag{\displaystyle p}.

El lema de bombeo fue demostrado por primera vez por Michael Rabin y Dana Scott en 1959, [ 1 ] y redescubierto poco después por Yehoshua Bar-Hillel , Micha A. Perles y Eli Shamir en 1961, como una simplificación de su lema de bombeo para lenguajes libres de contexto . [ 2 ] [ 3 ]

Declaración formal

DejarL{\displaystyle L}sea ​​un lenguaje regular. Entonces existe un número enteropag1{\displaystyle p\geq 1}dependiendo únicamente deL{\displaystyle L}de tal manera que cada cuerdaw{\displaystyle w}enL{\displaystyle L}de longitud al menospag{\displaystyle p}(pag{\displaystyle p}se denomina "longitud de bombeo" [ 4 ] y se puede escribir comow=incógnitayz{\displaystyle w=xyz}(es decir,w{\displaystyle w}puede dividirse en tres subcadenas), que satisfacen las siguientes condiciones:

  1. |y|1{\displaystyle |y|\geq 1}
  2. |incógnitay|pag{\displaystyle |xy|\leq p}
  3. (norte0)(incógnitaynortezL){\displaystyle (\forall n\geq 0)(xy^{n}z\in L)}

y{\displaystyle y}es la subcadena que se puede bombear (eliminar o repetir cualquier número de veces, y la cadena resultante siempre está enL{\displaystyle L}). (1) significa el bucley{\displaystyle y}para ser bombeado debe tener una longitud de al menos uno, es decir, no una cadena vacía; (2) significa que el bucle debe ocurrir dentro del primeropag{\displaystyle p}personajes.|incógnita|{\displaystyle |x|}debe ser más pequeño quepag{\displaystyle p}(conclusión de (1) y (2)), pero aparte de eso, no hay ninguna restricción enincógnita{\displaystyle x}yz{\displaystyle z}.

En pocas palabras, para cualquier lenguaje regularL{\displaystyle L}cualquier cadena suficientemente largaw{\displaystyle w}(enL{\displaystyle L}) se puede dividir en 3 partes, es decirw=incógnitayz{\displaystyle w=xyz}, de tal manera que todas las cadenasincógnitaynortez{\displaystyle xy^{n}z}paranorte0{\displaystyle n\geq 0}también están enL{\displaystyle L}.

A continuación se presenta una expresión formal del lema de bombeo.

LΣ,regular(L)pag1,wL,|w|pagincógnita,y,zΣ,(w=incógnitayz)(|y|1)(|incógnitay|pag)(norte0,incógnitaynortezL){\displaystyle {\begin{array}{l}\forall L\subseteq \Sigma ^{*},{\mbox{regular}}(L)\implies \\\quad \exists p\geq 1,\forall w\in L,|w|\geq p\implies \\\qquad \exists x,y,z\in \Sigma ^{*},(w=xyz)\land (|y|\geq 1)\land (|xy|\leq p)\land (\forall n\geq 0,xy^{n}z\in L)\end{array}}}

Uso del lema para demostrar la no regularidad.

El lema de bombeo se usa a menudo para demostrar que un lenguaje en particular no es regular: una prueba por contradicción puede consistir en mostrar una cadena (de la longitud requerida) en el lenguaje que carece de la propiedad descrita en el lema de bombeo.

Ejemplo: El idiomaL={anortebnorte:norte0}{\displaystyle L=\{a^{n}b^{n}:n\geq 0\}}sobre el alfabetoΣ={a,b}{\displaystyle \Sigma =\{a,b\}}Se puede demostrar que no es regular de la siguiente manera:

  1. Supongamos que alguna constantepag1{\displaystyle p\geq 1}existe según lo exige el lema.
  2. Dejarw{\displaystyle w}enL{\displaystyle L}ser dado porw=apagbpag{\displaystyle w=a^{p}b^{p}}, que es una cadena más larga quepag{\displaystyle p}.
  3. Según el lema de bombeo, debe existir una descomposición.w=incógnitayz{\displaystyle w=xyz}con|incógnitay|pag{\displaystyle |xy|\leq p}y|y|1{\displaystyle |y|\geq 1}de tal manera queincógnitayiz{\displaystyle xy^{i}z}enL{\displaystyle L}por cadai0{\displaystyle i\geq 0}.
  4. Desde|incógnitay|pag{\displaystyle |xy|\leq p}, la cadenay{\displaystyle y}solo consta de instancias dea{\displaystyle a}.
  5. Porque|y|1{\displaystyle |y|\geq 1}, contiene al menos una instancia de la letraa{\displaystyle a}.
  6. Bombeoy{\displaystyle y}darincógnitay2z{\displaystyle xy^{2}z}da una palabra con más instancias de la letraa{\displaystyle a}que la cartab{\displaystyle b}, ya que algunos casos dea{\displaystyle a}pero ninguno deb{\displaystyle b}se añadieron.
  7. Por lo tanto,incógnitay2z{\displaystyle xy^{2}z}no está enL{\displaystyle L}lo cual contradice el lema de bombeo.
  8. Por lo tanto,L{\displaystyle L}no puede ser regular.

La prueba de que el lenguaje de paréntesis balanceados (es decir, anidados correctamente) no es regular sigue la misma idea. Dadopag{\displaystyle p}, hay una serie de paréntesis equilibrados que comienza con más depag{\displaystyle p}paréntesis izquierdos, de modo quey{\displaystyle y}consistirá enteramente en paréntesis izquierdos. Al repetiry{\displaystyle y}Se puede producir una cadena que no contenga el mismo número de paréntesis izquierdos y derechos, por lo que no se pueden equilibrar.

Demostración del lema de bombeo

Idea de prueba: Siempre que una cadena suficientemente larga xyz sea reconocida por un autómata finito , debe haber alcanzado algún estado (qs=qt{\displaystyle q_{s}=q_{t}}) dos veces. Por lo tanto, después de repetir ("bombear") la parte centraly{\displaystyle y}arbitrariamente a menudo ( xyyz , xyyyz , ...) la cadena seguirá siendo reconocida.

Para cada lenguaje regular existe un autómata de estados finitos (AEF) que acepta dicho lenguaje. Se cuenta el número de estados en dicho AEF y ese conteo se utiliza como la longitud de bombeo.pag{\displaystyle p}. Para una cadena de longitud al menospag{\displaystyle p}, dejarq0{\displaystyle q_{0}}sea ​​el estado inicial y deje queq1,...,qpag{\displaystyle q_{1},...,q_{p}}ser la secuencia del siguientepag{\displaystyle p}estados visitados a medida que se emite la cadena. Porque el FSA solo tienepag{\displaystyle p}estados, dentro de esta secuencia depag+1{\displaystyle p+1}De los estados visitados, debe haber al menos un estado que se repita. Escribeqs{\displaystyle q_{s}}para tal estado. Las transiciones que llevan a la máquina desde el primer encuentro del estadoqs{\displaystyle q_{s}}al segundo encuentro de estadoqs{\displaystyle q_{s}}coincide con alguna cadena. Esta cadena se llamay{\displaystyle y}en el lema, y ​​dado que la máquina coincidirá con una cadena sin lay{\displaystyle y}porción, o con la cuerday{\displaystyle y}Si se repite cualquier número de veces, se cumplen las condiciones del lema.

Por ejemplo, la siguiente imagen muestra un FSA.

El FSA acepta la cadena: abcd . Dado que esta cadena tiene una longitud al menos igual al número de estados, que es cuatro (por lo que el número total de estados por los que pasa la máquina para escanear abcd sería 5), ​​el principio del palomar indica que debe haber al menos un estado repetido entre el estado inicial y los siguientes cuatro estados visitados. En este ejemplo, soloq1{\displaystyle q_{1}}es un estado repetido. Dado que la subcadena bc lleva a la máquina a través de transiciones que comienzan en el estadoq1{\displaystyle q_{1}}y terminar en el estadoq1{\displaystyle q_{1}}, esa porción podría repetirse y el FSA aún aceptaría, dando la cadena abcbcd . Alternativamente, la porción bc podría eliminarse y el FSA aún aceptaría, dando la cadena ad . En términos del lema de bombeo, la cadena abcd se divide en unaincógnita{\displaystyle x}porción a , unay{\displaystyle y}porción bc y az{\displaystyle z}porción d .

Como comentario adicional, el problema de comprobar si una cadena dada puede ser aceptada por un autómata finito no determinista dado sin visitar ningún estado repetidamente, es NP-difícil .

Versión general del lema de bombeo para lenguajes regulares

Si un idiomaL{\displaystyle L}es regular, entonces existe un númeropag1{\displaystyle p\geq 1}(la longitud de bombeo) de tal manera que cada cuerdawv{\displaystyle uwv}enL{\displaystyle L}con|w|pag{\displaystyle |w|\geq p}puede escribirse en la forma

wv=incógnitayzv{\displaystyle uwv=uxyzv}

con cuerdasincógnita{\displaystyle x},y{\displaystyle y}yz{\displaystyle z}de tal manera que|incógnitay|pag{\displaystyle |xy|\leq p},|y|1{\displaystyle |y|\geq 1}y

incógnitayizv{\displaystyle uxy^{i}zv}está enL{\displaystyle L}para cada enteroi0{\displaystyle i\geq 0}. [ 5 ]

A partir de esto, la versión estándar anterior sigue un caso especial, con ambos{\displaystyle u}yv{\displaystyle v}siendo la cadena vacía.

Dado que la versión general impone requisitos más estrictos al lenguaje, puede utilizarse para demostrar la no regularidad de muchos más lenguajes.

Invalidez del lema recíproco

Si bien el lema del bombeo afirma que todos los lenguajes regulares satisfacen las condiciones descritas anteriormente, lo contrario no es cierto: un lenguaje que satisface estas condiciones aún puede ser no regular. En otras palabras, tanto la versión original como la general del lema del bombeo proporcionan una condición necesaria , pero no suficiente, para que un lenguaje sea regular.

Por ejemplo, considere el siguiente lenguaje:

L={vwincógnitay:,y{0,1,2,3};v,w,incógnita{0,1,2,3}(v=wv=incógnitaincógnita=w)} {w:w{0,1,2,3}precisamente 17 de los personajes en w son 3}{\displaystyle {\begin{matrix}L&=&\{uvwxy:u,y\in \{0,1,2,3\}^{*};v,w,x\in \{0,1,2,3\}\land (v=w\lor v=x\lor x=w)\}\\&&\cup \ \{w:w\in \{0,1,2,3\}^{*}\land {\text{precisely }}{\tfrac {1}{7}}{\text{ of the characters in }}w{\text{ are 3's}}\}\end{matrix}}}.

En otras palabras,L{\displaystyle L}contiene todas las cadenas sobre el alfabeto{0,1,2,3}{\displaystyle \{0,1,2,3\}}con una subcadena de longitud 3 que incluye un carácter duplicado, así como todas las cadenas sobre este alfabeto donde precisamente 1/7 de los caracteres de la cadena son 3. Este lenguaje no es regular pero aún puede ser "bombeado" conpag=5{\displaystyle p=5}Supongamos que una cadena s tiene una longitud de al menos 5. Entonces, dado que el alfabeto solo tiene cuatro caracteres, al menos dos de los primeros cinco caracteres de la cadena deben ser duplicados. Están separados por como máximo tres caracteres.

  • Si los caracteres duplicados están separados por 0 o 1 caracteres, inserte uno de los otros dos caracteres de la cadena, lo que no afectará a la subcadena que contiene los duplicados.
  • Si los caracteres duplicados están separados por 2 o 3 caracteres, se eliminan 2 de los caracteres que los separan. Al eliminar o aumentar los caracteres, se crea una subcadena de tamaño 3 que contiene 2 caracteres duplicados.
  • La segunda condición deL{\displaystyle L}garantiza queL{\displaystyle L}no es regular: Considere la cadena(013)3metro(012)i{\displaystyle (013)^{3m}(012)^{i}}Esta cadena está enL{\displaystyle L}exactamente cuandoi=4metro{\displaystyle i=4m}y por lo tantoL{\displaystyle L}no es regular según el teorema de Myhill-Nerode .

El teorema de Myhill-Nerode proporciona una prueba que caracteriza con precisión los lenguajes regulares. El método típico para demostrar que un lenguaje es regular consiste en construir una máquina de estados finitos o una expresión regular para dicho lenguaje.

Véase también

Notas

  1. Rabin, Michael ; Scott, Dana (abril de 1959). «Autómatas finitos y sus problemas de decisión» (PDF) . IBM Journal of Research and Development . 3 (2): 114–125 . doi : 10.1147/rd.32.0114 . Archivado del original el 14 de diciembre de 2010.Aquí: Lema 8, pág. 119
  2. ^ Bar-Hillel, Y .; Perles, M.; Shamir, E. (1961), "Sobre las propiedades formales de las gramáticas de estructura de frases simples", Zeitschrift für Phonetik, Sprachwissenschaft und Kommunikationsforschung , 14 (2): 143– 172
  3. John E. Hopcroft; Rajeev Motwani; Jeffrey D. Ullman (2003). Introducción a la teoría de autómatas, lenguajes y computación . Addison Wesley.Aquí: Sección 4.6, pág. 166
  4. Berstel, Jean; Lauve, Aaron; Reutenauer, Christophe; Saliola, Franco V. (2009). Combinatoria de palabras. Palabras de Christoffel y repeticiones en palabras . Serie de monografías CRM. Vol. 27. Providence, RI: American Mathematical Society . pág. 86. ISBN   978-0-8218-4480-9. Zbl 1161.68043 . 
  5. Savitch, Walter (1982). Máquinas abstractas y gramáticas . Little, Brown. pág . 49. ISBN  978-0-316-77161-0.

Referencias