L'étoile Kleene d'une langue unaire infinie donne toujours une langue régulière


8

Laisser L={an∣n≥0}, où a0=ϵ et an=an−1a pour tous n≥1.

Donc L se compose de séquences de a de toutes les longueurs, y compris une séquence de longueur 0. LaisserL2 être un sous-ensemble infini de L. Je dois montrer qu'il existe toujours un DFA à reconnaîtreL2∗.

Si L2 est un sous-ensemble fini, il est très évident que L2 serait un DFA et donc par la fermeture de Kleene L2∗serait reconnu par un DFA. Mais je ne peux pas l'obtenir pour un sous-ensemble infiniL2 peut ne pas être exprimé en DFA lorsque, par exemple, les longueurs de chaîne sont premières.

Réponses:


8

Supposons qu'il y ait deux mots dans la langue dont les longueurs sont relativement premières. Que ces longueurs soientx et y. Nous savons (voir ceci ) qu'en ajoutant ces nombres les uns aux autres à plusieurs reprises, nous pouvons obtenir n'importe quel nombre supérieur à(x−1)(y−1)−1. Donc six et y sont 13 et 7, nous pouvons écrire n'importe quel nombre supérieur à 72 comme une combinaison linéaire de 7 et 13. Ce que cela signifie pour nous:L2∗ se compose d'une langue arbitraire finie (régulière, comme toutes les langues finies), en union avec la langue {w∈a∗∣|a|>(x−1)(y−1)−1}. Cette langue est régulière car c'est la langue de tous les mots avec un ensemble fini de mots supprimés. DepuisL2∗ est une union de langues régulières, elle doit aussi être régulière.

Si tous les mots L2∗ ont des longueurs qui partagent un plus grand facteur commun (appelez ce facteur commun m), puis répétez l'argument ci-dessus, mais au lieu d'utiliser des longueurs de chaîne, utilisez des longueurs de chaîne divisées par m. Dans ce cas,L2∗ sera la concaténation d'une langue finie arbitraire (régulière) et la langue {w∈(am)∗∣|w|>m2[(x/m−1)(y/m−1)−1]}, également régulier (puisque $ (a ^ m) ^ * est régulier et nous en supprimons un nombre fini de mots).

Par exemple, supposons que tous les mots de L avoir un GCF de 2, et la langue contient les mots a4 et unedix. On am=2, X/m=4/2=2, et y/m=dix/2=5, qui sont relativement premiers. Par conséquent, nous savons que nous pouvons obtenir n'importe quel mot dont la longueur est multiple dem si la longueur est supérieure à m2[(X/m-1)(y/m-1)-1]=22[(2-1)(5-1)-1]=(4)(3)=12 en concaténant une4 et unedix.

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.