Étant donné un langage , définissez l'ensemble de longueur de comme l'ensemble de longueurs de mots dans : L L L S ( L ) = { | u |
Quels ensembles d'entiers peuvent être l'ensemble de longueurs d'une langue régulière?
la source
Étant donné un langage , définissez l'ensemble de longueur de comme l'ensemble de longueurs de mots dans : L L L S ( L ) = { | u |
Quels ensembles d'entiers peuvent être l'ensemble de longueurs d'une langue régulière?
Premièrement, une observation qui n'est pas cruciale mais pratique: l'ensemble d'ensembles d'entiers qui sont pour un langage régulier sur un alphabet non vide ne dépend pas du choix de l'alphabet. Pour voir cela, considérons un automate fini qui reconnaît ; les longueurs des mots qui sont dans sont les longueurs des chemins sur l'automate vu comme un graphe sans étiquette de l'état de départ à tout état accepté. En particulier, vous pouvez renommer chaque flèche en et obtenir une langue régulière avec la même longueur définie sur l'alphabet . Inversement, si est une langue régulière sur un alphabet à un élément, il peut être injecté trivialement dans un alphabet plus grand, et le résultat est toujours une langue régulière.
Par conséquent, nous recherchons les ensembles de longueurs possibles pour les mots sur un alphabet singleton. Sur un alphabet singleton, la langue est la longueur définie en unaire: . Ces langues sont appelées langues unaires.
Laissez - un langage régulier, et d' envisager un automate fini déterministe (DFA) qui reconnaît . L'ensemble des longueurs de mots de est l'ensemble des longueurs de chemins dans le DFA vu comme un graphe orienté qui commence à l'état de début et se termine dans l'un des états d'acceptation. Un DFA sur un alphabet à un élément est assez docile (les NFA seraient plus sauvages): c'est soit une liste finie soit une liste circulaire. Si la liste est finie, numérotez les états de à suivant l'ordre de la liste; s'il est circulaire, numérotez les états de à suivant le début de la liste, et à long de la boucle.
Soit l'ensemble des indices des états acceptés jusqu'à , et l'ensemble des indices des états acceptés de à . alors
Inversement, soit et deux entiers et et deux ensembles finis d'entiers tels que et . Alors l'ensemble est un langage régulier: c'est le langage reconnu par le DFA décrit ci-dessus. Une expression régulière qui décrit ce langage est .
Pour résumer en anglais, les ensembles de longueurs des langues régulières sont les ensembles d'entiers qui sont périodiques¹ au-dessus d'une certaine valeur .
¹ Pour conserver une notion bien établie , périodique signifie la fonction caractéristique de l'ensemble (qui est une fonction que nous élevons à une fonction ) est périodique. Périodique au-dessus d'une certaine valeur signifie que la fonction limitée à peut être prolongée en une fonction périodique.
Tout sous-ensemble fini peut être l'ensemble de longueurs d'un langage régulier L , car vous pouvez prendre un alphabet unaire { 0 } et définir L comme { 0 ℓ 1 , … , 0 ℓ n } (cela inclut la langue vide et { ε } ).{ ℓ1, … , ℓn} ⊂ N L { 0 } L { 0ℓ1,…,0ℓn} {ε}
Maintenant pour les ensembles infinis. Je donnerai une brève analyse, bien que la réponse finale ne soit pas assez explicite. Je ne m'étendrai pas à moins que vous ne me le demandiez, car je pense que c'est intuitif et parce que je n'ai pas beaucoup de temps maintenant.
Soit des expressions régulières générant respectivement les langages L 1 et L 2 . Il est (en quelque sorte) facile de voir quer1,r2 L1 L2
Ainsi, les ensembles possibles d'entiers qui peuvent être l'ensemble de longueurs d'un langage régulier sont ceux qui sont des sous-ensembles finis de ou qui peuvent être construits en prenant des sous-ensembles finis S 1 , S 2 de N et en utilisant les formules précédentes un fini nombre de fois.N S1,S2 N
Ici, nous utilisons que les langages réguliers sont construits, par définition, en appliquant les règles de construction d'une expression régulière un nombre fini de fois. Notez que nous pouvons commencer avec n'importe quel sous-ensemble fini de , même si dans les expressions régulières nous commençons avec des mots de longueur 0 et 1 uniquement comme cas de base. Ceci est facilement justifié par le fait que tous les mots (finis) sont des concaténations (finies) des symboles de l'alphabet.N
la source
Selon le lemme de pompage pour les langues régulières, il existe un tel qu'une chaîne x de longueur au moins égale à n puisse s'écrire sous la forme suivante: x = u v w Où les trois conditions suivantes sont réunies: | u v | < n | v | > 0 u v k w ∈ Ln X n
Cela nous donne un test pour les ensembles: un ensemble ne peut pas être l'ensemble de longueur d'un langage normal à moins que tous ses éléments ne puissent être exprimés sous la forme d'un ensemble arbitraire d'entiers non supérieur à un fixe , plus un multiple d'une valeur indéterminée m (la longueur de v ), plus une valeur finie arbitraire.n m v
En d'autres termes, il semble que les ensembles possibles de longueurs de langue pour les langues régulières soient la fermeture par rapport à l'union des ensembles (comme discuté sous EDIT et EDIT2, grâce aux commentateurs) des ensembles décrits comme suit: Pour les ensembles fixes a , b ∈ N et tous les ensembles finis S , par le lemme de pompage pour les langues régulières (merci à Gilles d'avoir signalé une erreur idiote dans ma version originale, par laquelle je définissais l'ensemble N ).
EDIT: Un peu plus de discussion. Certes, tous les ensembles entiers finis sont des ensembles de longueurs. De plus, l'union de deux ensembles de longueurs doit également être un ensemble de longueurs, de même que le complément de tout ensemble de longueurs (d'où l'intersection, donc la différence). La raison en est que les langues régulières sont fermées dans le cadre de ces opérations. Par conséquent, la réponse que je donne ci-dessus est (peut-être) incomplète; en réalité, toute union de tels ensembles est également la longueur d'un langage régulier (notez que j'ai abandonné l'exigence d'intersection, de complément, de différence, etc., car ceux-ci sont couverts par le fait que les langages réguliers sont fermés sous ces propriétés, comme discuté dans EDIT3; je pense que seul l'union est réellement nécessaire, même si les autres ont raison, ce qui pourrait ne pas être le cas).
EDIT3: À la lumière du commentaire de Janoma, oublions les propriétés de fermeture des ensembles de longueurs de langue dont je discute dans le premier EDIT. Étant donné que les langues régulières ont ces propriétés de fermeture et que chaque langue régulière a un DFA, il s'ensuit que le lemme de pompage pour les langues régulières s'applique à toutes les unions, intersections, compléments et différences de langues régulières, et nous allons en rester là. ; pas besoin d'en tenir compte, à l'exception de l'union, qui, selon moi, pourrait encore être nécessaire pour corriger mon original (modifié, grâce à la contribution de Gilles). Donc, ma réponse finale est la suivante: ce que je dis dans la version originale, plus la fermeture des ensembles de longueur de langue par rapport à l'union d'ensemble.
la source