Articulo de referencia

Lenguaje regular

En la informática teórica y la teoría del lenguaje formal , un lenguaje regular (también llamado lenguaje racional ) [ 1 ] [ 2 ] es un lenguaje formal que puede definirse median...

En la informática teórica y la teoría del lenguaje formal , un lenguaje regular (también llamado lenguaje racional ) [ 1 ] [ 2 ] es un lenguaje formal que puede definirse mediante una expresión regular , en el sentido estricto de la informática teórica (a diferencia de muchos motores de expresiones regulares modernos, que se han aumentado con características que permiten el reconocimiento de lenguajes no regulares).

Alternativamente, un lenguaje regular puede definirse como un lenguaje reconocido por un autómata finito . La equivalencia entre expresiones regulares y autómatas finitos se conoce como el teorema de Kleene [ 3 ] (en honor al matemático estadounidense Stephen Cole Kleene ). En la jerarquía de Chomsky , los lenguajes regulares son los lenguajes generados por gramáticas de tipo 3 .

Definición formal

La colección de lenguajes regulares sobre un alfabeto Σ se define recursivamente de la siguiente manera:

  • El lenguaje vacío ∅ es un lenguaje regular.
  • Para cada a ∈ Σ ( a pertenece a Σ), el lenguaje unitario { a } es un lenguaje regular.
  • Si A es un lenguaje regular, A * ( estrella de Kleene ) es un lenguaje regular. Por lo tanto, el lenguaje de cadena vacía {ε} también es regular.
  • Si A y B son lenguajes regulares, entonces AB (unión) y AB (concatenación) son lenguajes regulares.
  • Ningún otro idioma por encima de Σ es regular.

Consulte Expresiones regulares §  Teoría del lenguaje formal para la sintaxis y la semántica de las expresiones regulares.

Ejemplos

Todos los lenguajes finitos son regulares; en particular, el lenguaje de cadenas vacías {ε} = ∅* es regular. Otros ejemplos típicos incluyen el lenguaje que consta de todas las cadenas sobre el alfabeto { a , b } que contienen un número par de a , o el lenguaje que consta de todas las cadenas de la forma: varias a seguidas de varias b .

Un ejemplo sencillo de un lenguaje no regular es el conjunto de cadenas { a n b n | n ≥ 0} . [ 4 ] Intuitivamente, no puede ser reconocido con un autómata finito, ya que un autómata finito tiene memoria finita y no puede recordar el número exacto de a. A continuación se presentan técnicas para demostrar este hecho rigurosamente .

Formalismos equivalentes

Un lenguaje regular satisface las siguientes propiedades equivalentes:

  1. es el lenguaje de una expresión regular (según la definición anterior)
  2. es el lenguaje aceptado por un autómata finito no determinista (AFN) [ nota 1 ] [ nota 2 ]
  3. es el lenguaje aceptado por un autómata finito determinista (AFD) [ nota 3 ] [ nota 4 ]
  4. puede ser generado por una gramática regular [ nota 5 ] [ nota 6 ]
  5. es el lenguaje aceptado por un autómata finito alternante
  6. Es el lenguaje aceptado por un autómata finito bidireccional.
  7. Se puede generar mediante una gramática de prefijos.
  8. Puede ser aceptado por una máquina de Turing de solo lectura.
  9. se puede definir en lógica monádica de segundo orden ( teorema de Büchi–Elgot–Trakhtenbrot ) [ 5 ]
  10. es reconocido por algún monoide sintáctico finito M , lo que significa que es la preimagen { w ∈ Σ * | f ( w ) ∈ S } de un subconjunto S de un monoide finito M bajo un homomorfismo de monoide f  : Σ *M del monoide libre en su alfabeto [ nota 7 ]
  11. El número de clases de equivalencia de su congruencia sintáctica es finito. [ nota 8 ] [ nota 9 ] (Este número es igual al número de estados del autómata finito determinista mínimo que acepta L. )

Las propiedades 10 y 11 son enfoques puramente algebraicos para definir lenguajes regulares; se puede formular un conjunto similar de enunciados para un monoide M ⊆ Σ * . En este caso, la equivalencia sobre M conduce al concepto de lenguaje reconocible.

Algunos autores utilizan una de las propiedades anteriores, distinta de "1.", como definición alternativa de lenguajes regulares.

Algunas de las equivalencias anteriores, en particular las de los cuatro primeros formalismos, se denominan teorema de Kleene en los libros de texto. La denominación precisa de cuál (o subconjunto) se utiliza varía entre autores. Un libro de texto denomina a la equivalencia entre expresiones regulares y autómatas finitos no deterministas (AFND) ("1." y "2." arriba) "teorema de Kleene". [ 6 ] Otro libro de texto denomina a la equivalencia entre expresiones regulares y autómatas finitos deterministas (AFD) ("1." y "3." arriba) "teorema de Kleene". [ 7 ] Otros dos libros de texto primero demuestran la equivalencia expresiva entre AFND y AFD ("2." y "3.") y luego enuncian el "teorema de Kleene" como la equivalencia entre expresiones regulares y autómatas finitos (estos últimos, según se dice, describen "lenguajes reconocibles"). [ 2 ] [ 8 ] Un texto orientado lingüísticamente primero equipara las gramáticas regulares ("4." arriba) con los AFD y los AFN, llama a los lenguajes generados por (cualquiera de) estos "regulares", luego introduce expresiones regulares que denomina para describir "lenguajes racionales", y finalmente enuncia el "teorema de Kleene" como la coincidencia de lenguajes regulares y racionales. [ 9 ] Otros autores simplemente definen "expresión racional" y "expresiones regulares" como sinónimos y hacen lo mismo con "lenguajes racionales" y "lenguajes regulares". [ 1 ] [ 2 ]

Aparentemente, el término «regular» tiene su origen en un informe técnico de 1951 donde Kleene introdujo los eventos regulares y acogió explícitamente «cualquier sugerencia sobre un término más descriptivo». [ 10 ] Noam Chomsky , en su artículo fundamental de 1959, utilizó el término «regular» con un significado diferente al principio (refiriéndose a lo que hoy se denomina forma normal de Chomsky ), [ 11 ] pero observó que sus lenguajes de estados finitos eran equivalentes a los eventos regulares de Kleene . [ 12 ]

Propiedades de cierre

Los lenguajes regulares son cerrados bajo diversas operaciones, es decir, si los lenguajes K y L son regulares, también lo es el resultado de las siguientes operaciones:

Propiedades de decidibilidad

Dados dos autómatas finitos deterministas A y B , es decidible si aceptan el mismo lenguaje. [ 17 ] En consecuencia, utilizando las propiedades de cierre anteriores , los siguientes problemas también son decidibles para autómatas finitos deterministas A y B dados arbitrariamente , con lenguajes aceptados L A y L B , respectivamente:

  • Contención: ¿es L AL B  ? [ nota 10 ]
  • Disyunción: ¿es L AL B = {}  ?
  • Vacío: ¿es L A = {}  ?
  • Universalidad: ¿es L A = Σ *  ?
  • Pertenencia: dado a ∈ Σ * , ¿es aL B  ?

Para expresiones regulares, el problema de universalidad es NP-completo incluso para un alfabeto unitario. [ 18 ] Para alfabetos más grandes, ese problema es PSPACE-completo . [ 19 ] Si las expresiones regulares se extienden para permitir también un operador de cuadratura , donde " A2 " denota lo mismo que " AA ", aún se pueden describir solo lenguajes regulares, pero el problema de universalidad tiene una cota inferior de espacio exponencial, [ 20 ] [ 21 ] [ 22 ] y de hecho es completo para espacio exponencial con respecto a la reducción en tiempo polinomial. [ 23 ]

Para un alfabeto finito fijo, la teoría del conjunto de todos los lenguajes —junto con las cadenas, la pertenencia de una cadena a un lenguaje y, para cada carácter, una función para añadir el carácter a una cadena (y ninguna otra operación)— es decidible, y su subestructura elemental mínima consiste precisamente en lenguajes regulares. Para un alfabeto binario, la teoría se denomina S2S . [ 24 ]

Resultados de complejidad

En la teoría de la complejidad computacional , la clase de complejidad de todos los lenguajes regulares a veces se denomina REGULAR o REG y es igual a DSPACE (O(1)), los problemas de decisión que se pueden resolver en espacio constante (el espacio utilizado es independiente del tamaño de la entrada). REGULARAC 0 , ya que (trivialmente) contiene el problema de paridad de determinar si el número de bits 1 en la entrada es par o impar y este problema no está en AC 0 . [ 25 ] Por otro lado, REGULAR no contiene AC 0 , porque el lenguaje no regular de palíndromos , o el lenguaje no regular{0norte1norte:nortenorte}{\displaystyle \{0^{n}1^{n}:n\in \mathbb {N} \}}Ambos pueden ser reconocidos en AC 0 . [ 26 ]

Si un lenguaje no es regular, requiere una máquina con al menos Ω (log log n ) espacio para reconocerlo (donde n es el tamaño de entrada). [ 27 ] En otras palabras, DSPACE( o (log log n )) es igual a la clase de lenguajes regulares. [ 27 ] En la práctica, la mayoría de los problemas no regulares se estudian en un entorno con al menos espacio logarítmico , ya que esta es la cantidad de espacio necesaria para almacenar un puntero en la cinta de entrada. [ 28 ]

Ubicación en la jerarquía de Chomsky

Lenguaje regular en las clases de la jerarquía de Chomsky

Para ubicar los lenguajes regulares en la jerarquía de Chomsky , se observa que todo lenguaje regular es libre de contexto . Lo contrario no es cierto: por ejemplo, el lenguaje que consiste en todas las cadenas con el mismo número de a que de b es libre de contexto, pero no regular. Para demostrar que un lenguaje no es regular, se suele utilizar el teorema de Myhill-Nerode y el lema de bombeo . Otros enfoques incluyen el uso de las propiedades de cierre de los lenguajes regulares [ 29 ] o la cuantificación de la complejidad de Kolmogorov [ 30 ] .

Entre las subclases importantes de los lenguajes regulares se incluyen:

Número de palabras en un idioma regular

DejarsL(norte){\displaystyle s_{L}(n)}denota el número de palabras de longitudnorte{\displaystyle n}enL{\displaystyle L}La función generadora ordinaria para L es la serie de potencias formal .

SL(z)=norte0sL(norte)znorte .{\displaystyle S_{L}(z)=\sum _ {n\geq 0}s_{L}(n)z^{n}\ .}

La función generadora de un lenguaje L es una función racional si L es regular. [ 33 ] Por lo tanto, para todo lenguaje regularL{\displaystyle L}la secuenciasL(norte)norte0{\displaystyle s_{L}(n)_{n\geq 0}}es recursiva constante ; es decir, existe una constante entera .norte0{\displaystyle n_{0}}constantes complejasλ1,,λk{\displaystyle \lambda _{1},\,\ldots ,\,\lambda _{k}}y polinomios complejospag1(incógnita),,pagk(incógnita){\displaystyle p_{1}(x),\,\ldots ,\,p_{k}(x)}de tal manera que para cadanortenorte0{\displaystyle n\geq n_{0}}el númerosL(norte){\displaystyle s_{L}(n)}de palabras de longitudnorte{\displaystyle n}enL{\displaystyle L}essL(norte)=pag1(norte)λ1norte++pagk(norte)λknorte{\displaystyle s_{L}(n)=p_{1}(n)\lambda _{1}^{n}+\dotsb +p_{k}(n)\lambda _{k}^{n}}. [ 34 ] [ 35 ] [ 36 ] [ 37 ]

Por lo tanto, la irregularidad de ciertos lenguajesL{\displaystyle L'}se puede probar contando las palabras de una longitud determinada en L{\displaystyle L'}. Consideremos, por ejemplo, el lenguaje Dyck de cadenas de paréntesis balanceados. El número de palabras de longitud2norte{\displaystyle 2n} en el idioma de Dyck es igual al número catalándonorte4nortenorte3/2π{\displaystyle C_{n}\sim {\frac {4^{n}}{n^{3/2}{\sqrt {\pi }}}}}, que no es de la formapag(norte)λnorte{\displaystyle p(n)\lambda ^{n}}, siendo testigo de la irregularidad del lenguaje de Dyck. Se debe tener cuidado ya que algunos de los autovaloresλi{\displaystyle \lambda _{i}}podría tener la misma magnitud. Por ejemplo, el número de palabras de longitudnorte{\displaystyle n}en el lenguaje de todas las palabras binarias pares no es de la formapag(norte)λnorte{\displaystyle p(n)\lambda ^{n}}, pero el número de palabras de longitud par o impar son de esta forma; los autovalores correspondientes son2,2{\displaystyle 2,-2}En general, para cada lenguaje regular existe una constanted{\displaystyle d}de tal manera que para todosa{\displaystyle a}, el número de palabras de longituddmetro+a{\displaystyle dm+a}es asintóticamentedoametropagaλametro{\displaystyle C_{a}m^{p_{a}}\lambda _{a}^{m}}. [ 38 ]

La función zeta de un lenguaje L es [ 33 ]

ζL(z)=exp(norte0sL(norte)znortenorte).{\displaystyle \zeta _{L}(z)=\exp \left({\sum _{n\geq 0}s_{L}(n){\frac {z^{n}}{n}}}\right).}

La función zeta de un lenguaje regular no es racional en general, pero la de un lenguaje cíclico arbitrario sí lo es. [ 39 ] [ 40 ]

Generalizaciones

La noción de lenguaje regular se ha generalizado a palabras infinitas (véase autómatas ω ) y a árboles (véase autómata de árbol ).

El conjunto racional generaliza la noción (de lenguaje regular/racional) a monoides que no son necesariamente libres . Del mismo modo, la noción de un lenguaje reconocible (por un autómata finito) tiene su homólogo como conjunto reconocible sobre un monoide que no es necesariamente libre. Howard Straubing señala en relación con estos hechos que “El término «lenguaje regular» es un tanto desafortunado. Los artículos influenciados por la monografía de Eilenberg [ 41 ] suelen usar el término «lenguaje reconocible», que se refiere al comportamiento de los autómatas, o «lenguaje racional», que se refiere a importantes analogías entre expresiones regulares y series de potencias racionales . (De hecho, Eilenberg define subconjuntos racionales y reconocibles de monoides arbitrarios; las dos nociones no coinciden, en general). Esta terminología, aunque mejor justificada, nunca llegó a popularizarse, y «lenguaje regular» se usa casi universalmente”. [ 42 ]

Las series racionales son otra generalización, esta vez en el contexto de una serie de potencias formal sobre un semianillo . Este enfoque da lugar a expresiones racionales ponderadas y autómatas ponderados . En este contexto algebraico, los lenguajes regulares (que corresponden a expresiones racionales ponderadas booleanas ) se denominan habitualmente lenguajes racionales . [ 43 ] [ 44 ] También en este contexto, el teorema de Kleene encuentra una generalización denominada teorema de Kleene-Schützenberger .

Aprender de los ejemplos

Notas

  1. 1. ⇒ 2. mediante el algoritmo de construcción de Thompson
  2. 2. ⇒ 1. mediante el algoritmo de Kleene o utilizando el lema de Arden
  3. 2. ⇒ 3. mediante la construcción del conjunto potencia
  4. 3. ⇒ 2. puesto que la primera definición es más fuerte que la segunda
  5. 2. ⇒ 4. Véase Hopcroft, Ullman (1979), Teorema 9.2, pág. 219
  6. 4. ⇒ 2. Véase Hopcroft, Ullman (1979), Teorema 9.1, pág. 218
  7. 3. ⇔ 10. por el teorema de Myhill-Nerode
  8. u ~ v se define como: uw L si y solo si vw L para todo w ∈ Σ *
  9. 3. ⇔ 11. Véase la demostración en el artículo sobre monoides sintácticos y la página 160 de Holcombe, WML (1982). Teoría de autómatas algebraicos . Cambridge Studies in Advanced Mathematics. Vol.  1. Cambridge University Press . ISBN 0-521-60492-3. Zbl 0489.68046 . 
  10. Compruebe si L A L B = L A . Decidir esta propiedad es NP-difícil en general; consulte el archivo: RegSubsetNP.pdf para ver una ilustración de la idea de la demostración.

Referencias

  1. 1 2 Ruslan Mitkov (2003). The Oxford Handbook of Computational Linguistics . Oxford University Press. p. 754. ISBN  978-0-19-927634-9.
  2. 1 2 3 Mark V. Lawson (2003). Autómatas finitos . CRC Press. págs. 98–103 . ISBN  978-1-58488-255-8.
  3. ^ Sheng Yu (1997). "Idiomas habituales" . En Grzegorz Rozenberg; Arto Salomaa (eds.). Manual de lenguajes formales: volumen 1. Palabra, lenguaje, gramática . Saltador. pag. 41.ISBN  978-3-540-60420-4.
  4. Eilenberg (1974), pág. 16 (Ejemplo II, 2.8) y pág. 25 (Ejemplo II, 5.2).
  5. M. Weyer: Capítulo 12 - Decidibilidad de S1S y S2S, pág. 219, Teorema 12.26. En: Erich Grädel, Wolfgang Thomas, Thomas Wilke (Eds.): Autómatas, lógicas y juegos infinitos: una guía para la investigación actual. Lecture Notes in Computer Science 2500, Springer 2002.
  6. Robert Sedgewick; Kevin Daniel Wayne (2011). Algoritmos . Addison-Wesley Professional. pág. 794. ISBN  978-0-321-57351-3.
  7. Jean-Paul Allouche; Jeffrey Shallit (2003). Automatic Sequences: Theory, Applications, Generalizations . Cambridge University Press. p. 129. ISBN  978-0-521-82332-6.
  8. Kenneth Rosen (2011). Matemáticas discretas y sus aplicaciones, 7.ª edición . McGraw-Hill Science. págs. 873–880 . 
  9. Horst Bunke; Alberto Sanfeliu (enero de 1990). Reconocimiento de patrones sintácticos y estructurales: teoría y aplicaciones . World Scientific. pág. 248. ISBN  978-9971-5-0566-0.
  10. Stephen Cole Kleene (dic. 1951). Representación de eventos en redes nerviosas y autómatas finitos (PDF) (Memorando de investigación). Fuerza Aérea de los EE. UU. / RAND Corporation.Aquí: pág. 46
  11. Noam Chomsky (1959). "Sobre ciertas propiedades formales de las gramáticas" (PDF) . Information and Control . 2 (2): 137– 167. doi : 10.1016/S0019-9958(59)90362-6 .Aquí: Definición 8, pág. 149
  12. Chomsky 1959, nota al pie 10, pág. 150
  13. Salomaa (1981) pág. 28
  14. Salomaa (1981) pág. 27
  15. Fellows, Michael R .; Langston, Michael A. (1991). «Problemas de constructividad en algoritmos de grafos». En Myers, J. Paul Jr.; O'Donnell, Michael J. (eds.). Constructividad en Ciencias de la Computación, Simposio de Verano, San Antonio, Texas, EE. UU., 19-22 de junio, Actas . Lecture Notes in Computer Science. Vol. 613. Springer. pp. 150–158 . doi : 10.1007/BFB0021088 . ISBN   978-3-540-55631-2.
  16. Hopcroft, Ullman (1979), Capítulo 3, Ejercicio 3.4g, pág. 72
  17. Hopcroft, Ullman (1979), Teorema 3.8, pág. 64; véase también Teorema 3.10, pág. 67
  18. Aho, Hopcroft, Ullman (1974), Ejercicio 10.14, pág. 401
  19. Aho, Hopcroft, Ullman (1974), Teorema 10.14, pág. 399
  20. Hopcroft, Ullman (1979), Teorema 13.15, pág. 351
  21. AR Meyer y LJ Stockmeyer (octubre de 1972). El problema de equivalencia para expresiones regulares con elevación al cuadrado requiere espacio exponencial (PDF) . XIII Simposio anual del IEEE sobre conmutación y teoría de autómatas. págs. 125-129 . 
  22. LJ Stockmeyer; AR Meyer (1973). "Problemas de palabras que requieren tiempo exponencial". Actas del 5.º simposio anual sobre teoría de la computación (STOC) (PDF) . ACM. págs. 1–9 . 
  23. Hopcroft, Ullman (1979), Corolario p.353
  24. Weyer, Mark (2002). "Decidibilidad de S1S y S2S" . Autómatas, lógicas y juegos infinitos . Notas de clase en informática. Vol. 2500. Springer. págs. 207–230 . doi : 10.1007/3-540-36387-4_12 . ISBN   978-3-540-00388-5.
  25. Furst, Merrick; Saxe, James B. ; Sipser, Michael (1984). "Paridad, circuitos y la jerarquía de tiempo polinomial". Mathematical Systems Theory . 17 (1): 13– 27. doi : 10.1007/BF01744431 . MR 0738749 . S2CID 14677270 .  
  26. Cook, Stephen; Nguyen, Phuong (2010). Fundamentos lógicos de la complejidad de las pruebas (1.ª ed. publicada ). Ithaca, NY: Association for Symbolic Logic. p. 75. ISBN   978-0-521-51729-4.
  27. 1 2 J. Hartmanis, PL Lewis II y RE Stearns. Jerarquías de cálculos con memoria limitada. Actas del 6.º Simposio Anual del IEEE sobre Teoría de Circuitos de Conmutación y Diseño Lógico , págs. 179-190. 1965.
  28. Sipser (1997) pág. 349
  29. "¿Cómo probar que un lenguaje no es regular?" . cs.stackexchange.com . Consultado el 10 de abril de 2018 .
  30. Hromkovič, Juraj (2004). Informática teórica: Introducción a los autómatas, la computabilidad, la complejidad, la algoritmia, la aleatorización, la comunicación y la criptografía . Springer. pp. 76–77 . ISBN  3-540-14015-8OCLC 53007120 
  31. Un lenguaje finito no debe confundirse con un lenguaje (generalmente infinito) generado por un autómata finito.
  32. Volker Diekert; Paul Gastin (2008). «Lenguajes definibles de primer orden» (PDF) . En Jörg Flum; Erich Grädel; Thomas Wilke (eds.). Lógica y autómatas: historia y perspectivas . Amsterdam University Press. ISBN 978-90-5356-576-6.
  33. 1 2 Honkala, Juha (1989). "Una condición necesaria para la racionalidad de la función zeta de un lenguaje regular" . Theor. Comput. Sci . 66 (3): 341– 347. doi : 10.1016/0304-3975(89)90159-x . Zbl 0675.68034 . 
  34. Flajolet y Sedgweick, sección V.3.1, ecuación (13).
  35. "Número de palabras en el lenguaje regular $(00)^*$" . cs.stackexchange.com . Consultado el 10 de abril de 2018 .
  36. "Demostración de teorema para autómatas finitos deterministas arbitrarios" .
  37. "Número de palabras de una longitud determinada en un lenguaje regular" . cs.stackexchange.com . Consultado el 10 de abril de 2018 .
  38. Flajolet y Sedgewick (2002) Teorema V.3
  39. ^ Berstel, Jean; Reutenauer, Christophe (1990). "Funciones Zeta de lenguajes formales". Trans. Soy. Matemáticas. Soc . 321 (2): 533– 546. CiteSeerX 10.1.1.309.3005 . doi : 10.1090/s0002-9947-1990-0998123-x . Zbl 0797.68092 .  
  40. Berstel y Reutenauer (2011) p.222
  41. Samuel Eilenberg. Autómatas, lenguajes y máquinas . Academic Press.en dos volúmenes "A" (1974, ISBN 9780080873749) y "B" (1976, ISBN 9780080873756), este último con dos capítulos de Bret Tilson.
  42. Straubing, Howard (1994). Autómatas finitos, lógica formal y complejidad de circuitos . Progress in Theoretical Computer Science. Basilea: Birkhäuser. pág . 8. ISBN  3-7643-3719-2. Zbl 0816.68086 . 
  43. Berstel y Reutenauer (2011) p.47
  44. Sakarovitch, Jacques (2009). Elementos de la teoría de autómatas . Traducido del francés por Reuben Thomas. Cambridge: Cambridge University Press . pág. 86. ISBN  978-0-521-84425-3. Zbl 1188.68177 . 

Lecturas adicionales

  • Kleene, SC : Representación de eventos en redes nerviosas y autómatas finitos. En: Shannon, CE, McCarthy, J. (eds.) Automata Studies, pp.  3–41. Princeton University Press, Princeton (1956); es una versión ligeramente modificada de su informe de 1951 para la RAND Corporation del mismo título, RM704 .
  • Sakarovitch, J (1987). "El teorema de Kleene revisitado". Tendencias, técnicas y problemas en informática teórica . Notas de clase en informática. Vol.  1987. pp. 39–50 . doi : 10.1007/3540185356_29 . ISBN  978-3-540-18535-2.