Las expresiones regulares "densas" generan

25

Aquí hay una conjetura para expresiones regulares:

Para la expresión regular , deje que la longitudser el número de símbolos que contiene, ignorando paréntesis y operadores. Ej.| R | El | 0 1 | = | ( 0 1 ) | = 2R|R||01|=|(01)|=2

Conjetura: Si y contiene cada cadena de longitudo menos, entonces .|R|>1L(R)|R|L(R)=Σ

Es decir, si es 'densa' hasta longitud 's, entonces realmente genera todo.L(R)RR

Algunas cosas que pueden ser relevantes:

  1. Solo se necesita una pequeña parte de para generar todas las cadenas. Por ejemplo, en binario, funcionará para cualquier .RR=(01)SS
  2. Tiene que haber una estrella de Kleene en R en algún momento. Si no lo hay, perderá una cadena de tamaño menor que.|R|

Sería bueno ver una prueba o contraejemplo. ¿Hay algún caso en el que obviamente esté mal que me haya perdido? ¿Alguien ha visto esto (o algo similar) antes?

Lucas Cook
fuente
¿Se cuentan y como o como ? εsymbolsoperations
Ran G.
@Ran, los estaba contando como símbolos.
Lucas Cook,

Respuestas:

34

Keith Ellul, Bryan Krawetz, Jeffrey Shallit y Ming-wei Wang refutan su conjetura en su artículo "Expresiones regulares: nuevos resultados y problemas abiertos". Si bien el documento no está disponible en línea, un charla .

En el documento, definen la medida , que es el número de símbolos en R , sin contar ϵ o . Sin embargo, puede eliminarse de cada expresión que no genere el lenguaje vacío, y la expresión puede "limpiarse" para que el número de ϵ que contiene sea como máximo | a l p h ( R ) ||alph(R)|Rϵϵ|alph(R)|(Lema en la página 10 de la charla).

En la página 51, por cada construyen una expresión regular de tamaño O ( n ) sobre { 0 , 1 } que genera todas las cadenas de tamaño como máximo Ω ( 2 n n ) , pero no genera todas las cadenas. Tenga en cuenta que "tamaño" aquí es tanto en su sentido como en el de ellos, ya que estamos usando la notación big-O. También plantean una pregunta abierta para encontrar la mejor dependencia entre los dos parámetros.n3O(n){0,1}Ω(2nn)

Yuval Filmus
fuente
Muy buen resultado, y bastante sorprendente también :)
Alex ten Brink
¿Cómo se ve esa expresión regular?
svick
@svick: combina ingeniosamente el truco que con estrellas de Kleene para capturar subcadenas comunes, a juzgar por una rápida ojeada de la prueba. La expresión es bastante monstruosa :)(una+si)(do+re)=unado+sido+unare+sire
Alex ten Brink
@Yuval Muy guay. Gracias por la referencia!
Lucas Cook
2
@YuvalFilmus Parece que el documento está disponible en línea ahora.
Anton Trunov