Les expressions régulières «denses» génèrent


25

Voici une conjecture pour les expressions régulières:

Pour l'expression régulière , laissez la longueurêtre le nombre de symboles qu'il contient, en ignorant les parenthèses et les opérateurs. Par exemple| R | | 0 1 | = | ( 0 1 ) | = 2R|R||01|=|(01)|=2

Conjecture: Si et contient chaque chaîne de longueurou moins, alors .L ( R ) | R | L ( R ) = Σ |R|>1L(R)|R|L(R)=Σ

Autrement dit, si est « dense » jusqu'à longueur de, alors génère en fait tout.R RL(R)RR

Certaines choses qui peuvent être pertinentes:

  1. Seule une petite partie de est nécessaire pour générer toutes les chaînes. Par exemple , en binaire, fonctionnera pour tout .R = ( 0 1 ) S SRR=(01)SS
  2. Il doit y avoir une étoile Kleene dans à un moment donné. S'il n'y en a pas, il lui manquera une chaîne de taille inférieure à.| R |R|R|

Ce serait bien de voir une preuve ou un contre-exemple. Y a-t-il des cas où c'est manifestement faux que j'ai raté? Quelqu'un a-t-il déjà vu cela (ou quelque chose de similaire) auparavant?


sont et comptés comme ou comme ? εsymbolsoperations
Ran G.

@Ran Je les comptais comme symboles.
Lucas Cook

Réponses:


34

Votre conjecture est réfutée par Keith Ellul, Bryan Krawetz, Jeffrey Shallit et Ming-wei Wang dans leur article "Expressions régulières: nouveaux résultats et problèmes ouverts". Bien que le document ne soit pas disponible en ligne, un exposé l' est.

Dans l'article, ils définissent la mesure, qui est le nombre de symboles dans , sans compter ou . Cependant, peut être éliminé de chaque expression ne générant pas la langue vide, et l'expression peut être "nettoyée" de sorte que le nombre de qu'elle contient soit au maximum(Lemme à la page 10 de l'exposé).R ϵ ϵ | a l p h ( R ) ||alph(R)|Rϵϵ|alph(R)|

Dans la page 51, pour chaque ils construisent une expression régulière de taille sur qui génère toutes les chaînes de taille au maximum , mais ne génère pas toutes les chaînes. Notez que "taille" ici est à la fois dans votre sens et le leur, puisque nous utilisons la notation big-O. Ils posent également une question ouverte pour trouver la meilleure dépendance entre les deux paramètres.O ( n ) { 0 , 1 } Ω ( 2 n n )n3O(n){0,1}Ω(2nn)


Résultat très cool, et plutôt surprenant aussi :)
Alex ten Brink

À quoi ressemble cette expression régulière?
svick

@svick: il combine intelligemment l'astuce que avec des étoiles Kleene pour capturer des sous-chaînes communes, à en juger par un survol rapide de la preuve. L'expression est assez monstrueuse :)(a+b)(c+d)=ac+bc+ad+bd
Alex ten Brink

@Yuval Très cool. Merci pour la référence!
Lucas Cook

2
@YuvalFilmus Il semble que l' article soit maintenant disponible en ligne.
Anton Trunov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.