¿Por qué las expresiones regulares se definen con unión, concatenación y operaciones en estrella?


11

Una expresión regular se define de forma recursiva como

  1. para algunos a Σ es una expresión regular,aaΣ
  2. es una expresión regular,ε
  3. es una expresión regular,
  4. donde R 1 y R 2 son expresiones regulares es una expresión regular,(R1R2)R1R2
  5. donde R 1 y R 2 son expresiones regulares es una expresión regular,(R1R2)R1R2
  6. donde R 1 es una expresión regular es una expresión regular.(R1)R1

Esta definición está tomada de la página 64 de

Sipser, Michael. Introducción a la teoría de la computación, 3ra edición. Cengage Learning, 2012.

Ahora tengo las siguientes preguntas.

  • ¿Por qué no contiene la definición de los intersection, complemento reverselas operaciones?
  • Si cambiamos el 4º elemento a , ¿obtenemos una definición equivalente, es decir, para cada idioma regular, hay una expresión regular modificada y viceversa?R1R2
  • Sé que esta definición es completa y bien definida, pero ¿por qué se prefiere a otras definiciones equivalentes, bien definidas y completas?

2
Limítese a una pregunta por publicación.
Raphael

Respuestas:


16

1) Si también permitimos la intersección y el complemento, las expresiones resultantes a veces se denominan expresiones regulares extendidas; Como los lenguajes regulares se cierran bajo operaciones booleanas, no ganan nada. Es solo azúcar sintáctico. Una conclusión similar es válida para la operación inversa. Parte de la razón por la cual, en primera instancia, no se mencionan todas las demás operaciones es el objetivo de mantener la definición lo más simple posible, de modo que las pruebas (inductivas) no tengan que ocuparse en muchos casos. Otra causa podría ser que si permitimos ciertas operaciones, pero otras no, en algunos casos resultan en clases de lenguaje muy distintas (subregulares), por ejemplo, si consideramos la expresión regular extendida sin el operador estrella, entonces obtenemos una subclase adecuada de las regulares. , los llamados lenguajes sin estrellas o aperiódicos, consulte wikipedia: lenguaje sin estrellas .

L={a,b}{a}{b}

L()={ε}=L(X¯{ε}

xxXL(ab)={ab}L={a,b}L=L(R)X={a,b}ab

{a,b}LabL.
RL(R1),L(R2)L=L(R1R2)=L(R1)L(R2){a,b}L{a,b}L(Ri),i=1,2abL(R1)L(R2){a,b}L(R1R2)=L(R1)L(R2)a=aε=εaaL(R1)εL(R2)bL(R1)abL(R1)ab=abεL(R1)L(R2)bL(R2)abL(R2)L(R2)L(R1)L(R2)a,bL(R1)aL(R1)nbL(R2)mn,m>0n=m=1abL(R1)n>1aL(R1)m=1m>1bL(R1)abL(R1)L(R1)

a=uwu=aw=a1=|a|=|uw|=|u|+|w||u|=0|w|=1|u|=1|w|=0u=εa=w


2
{a,b}{a,b}{a,b}=(ab)

Sí, a veces es un poco complicado ver qué se puede expresar y qué no, ya que con una combinación inteligente de estrella y otras puedes llegar bastante lejos.
StefanH

10

El informe técnico que introdujo lenguajes regulares, expresiones regulares y autómatas finitos hace su pregunta en la página 70:

EFEFEF

EEFE

La respuesta ocupa varias páginas. Primero, se observa que la respuesta debe buscarse en si los idiomas resultantes forman una clase interesante y cómo se comparan con los idiomas descritos por otros medios. En la página 72, se observa que la negación y la conjunción son redundantes: no agregan ningún poder expresivo. En la página 80 y más, se demuestra que los idiomas regulares son exactamente los idiomas reconocidos por las máquinas de estados finitos.

En otras palabras: la respuesta de Stefan puede considerarse concluyente con seguridad, como ya se dio en el informe que introdujo por primera vez estos conceptos.


Gracias por el enlace. Siempre les explico a mis alumnos que las operaciones son abstracciones naturales de la secuencia de elección (como if-then-else) (instrucciones que se siguen una a la otra) y la iteración (como while-do). ¿Pero aparentemente eso no es mencionado por Kleene?
Hendrik Jan

Solo soy un chico que buscó el artículo de Kleene y se sorprendió de que todo en mi respuesta ya estuviera allí. No se nada mas. Así que supongo que la respuesta es leer el artículo y quizás buscar cualquier cosa que Kleene haya escrito sobre esto antes.
reinierpost

4

A partir de esta selección de operadores (unión, concatenación y estrella) se puede construir un NFA con un tamaño lineal al tamaño de la expresión. Por otro lado, si agrega intersección y complementación, el tamaño del autómata equivalente puede explotar de manera no elemental, lo que generalmente no es deseable.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.