En faisant le travail actuel pour mon cours de langues formelles et d'automates, je suis resté coincé sur des exercices impliquant des langues unaires (j'espère que c'est le bon terme), c'est-à-dire des langues qui s'appuient sur une seule lettre. Je ne veux pas poser de questions sur les exercices spécifiques, mais plutôt sur une conjecture beaucoup plus générale que j'ai formulée:
Soit et . Ma conjecture est:
Cette question a-t-elle déjà fait l'objet d'un traitement scientifique? Est-ce "évidemment" vrai / faux?
Pour moi, la direction " " est évidemment vraie car on peut simplement construire un DFA avec des états qui parcourt les états après avoir lu les états et accepte ssi il est à l'état numéro .
Réponses:
Linéaire est proche, mais le terme technique que vous recherchez est semi - linéaire: c'est-à-dire une union finie d'ensembles linéaires.
La moitié de la preuve en est un corollaire du théorème de Parikh , qui dit que toute langue sans contexte a une carte de Parikh semi-linéaire (c'est-à-dire l'ensemble des vecteurs contenant les occurrences de chaque lettre de l'alphabet).
Pour une langue unaire, la carte parikh de la langue est la langue elle-même (c'est-à-dire que chaque mot est identifié de manière unique par le nombre de lettres qu'il a), donc chaque langue régulière unaire est semi-linéaire.
L'autre moitié de la preuve montre que vous pouvez construire un langage régulier contenant chaque ensemble semi-linéaire unaire. Cela prend un peu de travail, mais ce n'est pas trop difficile si vous utilisez des expressions régulières:
la source
Vous avez presque raison. Vous devez considérer le fait que vous pourriez avoir plusieurs fonctions linéaires, comme ou vous pourriez avoir des langages finis, comme L = { a k ∣ k = 4 n + 2 ou k = 13 } (dans les deux cas, nous prenons simplement l'union des langues normales, donc les choses fonctionnent comme elles le devraient.)
la source