Automates & regex · L2 · Section 3/4
Annales corrigées
Progression
#Annales corrigées — Langages formels, automates et grammaires
Les exercices qui suivent viennent de deux fonds réels, tous deux archivés localement.
OFI — Outils Formels pour Informatique (L2, semestre 3, Enrico Formenti, Université Côte d'Azur). Dix-huit sujets sont archivés sous S3/OFI: partiels de 2018, 2019, 2021, 2022, 2023 et 2024; examens terminaux de 2019, 2020, 2022, 2023, 2024 et 2025; rattrapages de 2019, 2023, 2024 et 2025. Leur dominante est le dénombrement, les récurrences et séries génératrices, et la logique propositionnelle; les exercices portant sur les langages et les expressions régulières y sont minoritaires mais récurrents, et ce sont eux qui sont repris ici. Les exercices de dénombrement du même corpus (morpion, urnes, colliers, relations, problèmes de Cauchy) relèvent d'autres modules et ne sont pas traités dans cette page.
Automates & Langages (L3 Informatique, semestre 5, Université Nice Sophia Antipolis). Cinq sujets archivés sous S5/Annales/Automates et Langages: examens de 2015-2016, 2016-2017, 2017-2018 et leurs sessions 2. Ce sont des sujets scannés (images), sans couche texte: ils ont été transcrits pour cette page. Ils couvrent les grammaires, les automates à pile, la forme normale de Chomsky, l'algorithme CYK, le lemme de l'étoile et les machines de Turing — c'est-à-dire exactement les notions que les annales d'OFI n'évaluent pas.
#Exercice 1 — Un langage sous contraintes sur l'alphabet
Source: rattrapage-26-6-2019.pdf, exercice 3 « Bientôt la fête des mères »; examen-24-6-2025-rattrapage.pdf, exercice 4 « Un langage un peu spécial » (sujet identique, redistribué six ans plus tard).
Soit le langage sur l'alphabet dont les mots satisfont toutes les règles suivantes:
apeut être suivi par ,moummmais pas para;mpeut être suivi par ,aoum, à condition qu'on ne trouve pas plus de deux lettresmconsécutives;mmdoit être suivi para;- un mot ne peut commencer ou terminer par
mm.
Par exemple, mam, mama et mamma appartiennent à , mais pas amm ni mammma.
Questions. 1. Écrivez tous les mots de de longueur pour . 2. Trouvez une expression régulière pour . 3. Donnez une définition inductive de . 4. Est-ce que la définition que vous avez donnée est ambiguë, et pourquoi? Si elle l'est, donnez une version non ambiguë.
Correction détaillée
1. Mots par longueur. On énumère en respectant les contraintes: pas de aa, pas de mmm, pas de mm initial ni final, et tout mm est suivi d'un a.
Détail des éliminations, qui est ce qui rapporte les points: aa est interdit par la première règle; mm est interdit en tête et en queue par la quatrième; mmm par la deuxième; et amm est rejeté deux fois — mm final interdit, et mm non suivi de a interdit. Pour la longueur 4, amm suivi de rien n'existe pas, mamm se termine par mm, ammm contient mmm: il reste bien trois mots.
2. Expression régulière. Décrivons la structure. Comme aa est interdit, chaque a est isolé. Comme mmm est interdit et mm doit être suivi de a, les suites de m ont une longueur de 1 ou 2, et une suite de longueur 2 est nécessairement suivie d'un a. Comme le mot ne peut ni commencer ni finir par mm, la première suite de m a une longueur de 0 ou 1, et la dernière également.
Un mot de s'écrit donc avec , et pour . En regroupant les a avec la suite de m qui les suit, chaque a interne est suivi de un ou deux m, et le dernier a est suivi de zéro ou un m:
Vérification sur les mots de l'énoncé: mamma s'obtient avec = m, un bloc amm, puis a; mama avec = m, un bloc am, puis a; mam avec = m, aucun bloc, puis am. Le mot amm ne se dérive pas: la partie finale devrait produire mm, ce qui est impossible. Le mot mammma non plus: trois m consécutifs ne s'écrivent pas avec des blocs am ou amm enchaînés.
3. Définition inductive. L'expression régulière se traduit directement en définition inductive, en distinguant les mots de et les préfixes de la forme , qui sont les seuls à pouvoir être prolongés:
Soit le plus petit ensemble de mots tel que
et soit le plus petit ensemble tel que
Cette définition engendre exactement : produit et ajoute le suffixe ou . On vérifie sur les longueurs 0 à 4: et par ; et par avec ; et par avec ; ama par avec ; amma par avec ; amam par avec (suffixe am); mama par avec . On retrouve les cinq ensembles de la question 1.
4. Ambiguïté. Cette définition est non ambiguë, et il faut le justifier par une analyse de cas sur le dernier symbole.
- Un mot de se termine soit par
a, soit parm(jamais parmm). - S'il se termine par
a: la dernière lettre est produite par la règle — le suffixeamproduirait un mot terminé parm. Le préfixe est donc déterminé, et il appartient à ; de plus est unique puisque le mot se termine par un seula. - S'il se termine par
m: la dernière lettre appartient à un blocamouamm. Le mot se termine donc paramou paramm, et ces deux suffixes sont incompatibles. Le préfixe est encore une fois déterminé.
Formellement: dans , les deux cas donnent des mots dont la longueur diffère de 1 ou 2, mais surtout dont le dernier symbole diffère (a contre m) — les deux ensembles sont disjoints. Et la décomposition avec fixé est unique.
Ce qu'il faut éviter. La définition « naturelle » consistant à ajouter les blocs directement à un mot de est, elle, ambiguë et fausse. Par exemple, en posant
on engendre bien les bons mots, mais am possède alors deux dérivations: la base, et la règle appliquée à . De même mam est à la fois un axiome et le résultat de . Le remède est de retirer de la base tout mot dérivable: la base se réduit à , et la définition redevient non ambiguë.
#Exercice 2 — Un langage sur et son dénombrement
Source: examen-14-1-2020 (1).pdf, exercice 4 (« pour terminer, voici un exercice avec un bonus », 15 points au total).
Soit et le langage sur vérifiant les quatre propriétés suivantes:
- tout mot de commence par
ca; - tout mot de termine par
a; - aucun mot de ne contient le motif
aa; - aucun mot de ne contient le motif
ccc.
Questions. 1. Écrivez les mots de pour compris entre 0 et 7 (extrêmes inclus). 2. Donnez une expression régulière pour . 3. (Très difficile!) Trouvez une expression pour en fonction de seulement.
Correction détaillée
1. Les mots par longueur. Comme tout mot commence par ca, on a . Ensuite, en éliminant aa et ccc et en imposant la terminaison par a:
Justifions : un mot de longueur 3 commençant par ca et terminant par a est caa ou cac; caa contient aa, et cac ne se termine pas par a. Et : les mots sont ca suivi de deux blocs, chaque bloc étant ca ou cca; avec deux blocs on atteint la longueur 7 quand les longueurs de blocs sont ou , ce qui donne exactement deux mots.
2. Expression régulière. La contrainte « commence par ca » fixe le début. Ensuite, comme aa est interdit, chaque a est précédé et suivi d'un c; comme ccc est interdit, les suites de c ont une longueur de 1 ou 2; et comme le mot se termine par a, le dernier a est précédé d'un c (éventuellement précédé d'un second c). Chaque a interne ouvre donc un bloc ca ou cca, et le mot est la concaténation de ces blocs après le ca initial:
3. Dénombrement. Écrivons un mot de comme le ca initial suivi de blocs, chacun de longueur 2 (ca) ou 3 (cca). Si désigne le nombre de blocs de longueur 3 parmi les , la longueur totale vaut
Pour chaque fixé, le nombre de mots est le nombre de façons de choisir les positions des blocs longs parmi :
avec la convention hors de . Vérification: donne , , ; donne et , soit ; donne et , soit .
Forme par récurrence. On obtient une relation plus maniable en regardant le dernier bloc d'un mot de : c'est ca (longueur 2), précédé d'un mot de , ou cca (longueur 3), précédé d'un mot de . Les deux cas sont disjoints et couvrent tous les mots, donc
avec , , , et pour . La suite se lit directement sur l'expression régulière: c'est une suite de type Padovan, de polynôme caractéristique .
Méthode de vérification. Deux voies indépendantes doivent coïncider: la somme de coefficients binomiaux et la récurrence. Les calculer jusqu'à sur une feuille, puis comparer. Une divergence signale presque toujours une erreur d'indice dans .
#Exercice 3 — Mots conjugués et mots de Lyndon
Source: examen-14-1-2020 (1).pdf, exercice 2 « Les mots de Monsieur Lyndon » (5 points).
Sur l'alphabet , on dit que deux mots et sont conjugués s'il existe deux mots tels que et . On note . Exemple: , en prenant et .
Un mot est un mot de Lyndon s'il est strictement plus petit, pour l'ordre lexicographique, que tous ses conjugués distincts: pour toute factorisation avec non vides, on a .
Questions. 1. Démontrez que est une relation d'équivalence. 2. Écrivez les classes d'équivalence de la relation pour les mots de longueur 4. 3. Trouvez tous les mots de Lyndon de longueur 4.
Correction détaillée
1. Relation d'équivalence. On utilise la caractérisation suivante, qui est le vrai contenu de la question.
Lemme. si et seulement si est une rotation circulaire de , c'est-à-dire pour un certain .
Preuve du lemme. Si avec , alors , qui est la rotation d'indice . Réciproquement, une rotation d'indice s'écrit , c'est-à-dire avec et .
Réflexivité. et , donc .
Remarque importante sur l'énoncé. La définition donnée dans le sujet impose (mots non vides). Avec cette contrainte stricte, la relation n'est pas réflexive: le mot
abn'a qu'une factorisation en deux mots non vides, , , et . Donc . Pour que soit une relation d'équivalence, il faut autoriser ou vide, c'est-à-dire prendre : c'est la définition standard en combinatoire des mots. C'est cette convention que l'on adopte, et c'est elle qui rend le lemme valide (une rotation d'indice 0 est l'identité).
Symétrie. Si , alors est une rotation de ; toute rotation est inversible par une rotation, donc est une rotation de , donc .
Transitivité. Si est la rotation de d'indice et la rotation de d'indice , alors est la rotation de d'indice (les rotations forment un groupe cyclique). Donc .
Les trois propriétés établies, est bien une relation d'équivalence.
2. Classes d'équivalence pour la longueur 4. Les seize mots de longueur 4 sur se répartissent en six classes, obtenues en regroupant chaque mot avec ses rotations:
| Classe | Mots |
|---|---|
| 1 | aaaa |
| 2 | aaab, aaba, abaa, baaa |
| 3 | aabb, abba, baab, bbaa |
| 4 | abab, baba |
| 5 | abbb, babb, bbab, bbba |
| 6 | bbbb |
Les classes 1, 4 et 6 ont moins de quatre éléments: leurs mots sont périodiques (aaaa et bbbb sont des puissances, abab = (ab)^2), donc certaines rotations coïncident. On retrouve le fait que le nombre de classes est le nombre de colliers binaires de longueur 4, qui vaut 6.
3. Mots de Lyndon de longueur 4. Un mot de Lyndon doit être strictement plus petit que toutes ses rotations distinctes. En particulier, un mot périodique ne peut pas être de Lyndon: il admet une rotation égale à lui-même, donc il n'est pas strictement plus petit. C'est pourquoi aaaa, abab et bbbb sont exclus d'emblée — et c'est aussi pour cette raison que la définition doit bien porter sur les conjugués distincts.
Il reste à examiner les classes 2, 3 et 5, en prenant le minimum de chaque classe:
- classe 2: , minimum
aaab(il commence paraaa); - classe 3: , minimum
aabb(compareraabbetabba:aa<ab); - classe 5: , minimum
abbb.
Vérification par une formule connue. Le nombre de mots de Lyndon de longueur sur un alphabet à lettres est , où est la fonction de Möbius. Pour et : . On retrouve bien les trois mots. La formule fournit aussi la suite pour , à titre de contrôle.
#Exercice 4 — Un ensemble défini par induction
Source: rattrapae-12-06-2023.pdf, exercice 2 « Un peu d'induction » (6 points).
On considère l'ensemble des mots sur l'alphabet défini par induction de la manière suivante:
- la base est ;
- si est un mot de , alors les mots et appartiennent à .
On note le nombre de mots de de longueur .
Questions. 1. Écrire tous les mots de de longueur inférieure ou égale à 5. 2. Montrer par induction que les mots de ont un nombre pair de b. 3. Montrer qu'un mot sur appartient à si et seulement si toute suite maximale de b consécutifs est de longueur paire. 4. Calculer , , et . 5. Montrer que la suite est la suite de Fibonacci.
Correction détaillée
1. Les mots de longueur . On développe l'induction par niveau: à partir de , on obtient a et bb; puis aa, abb, bba, bbbb; etc.
| Longueur | Mots de |
|---|---|
| 0 | |
| 1 | a |
| 2 | aa, bb |
| 3 | aaa, abb, bba, bbb |
| 4 | aaaa, aabb, abba, bbaa, bbbb |
| 5 | aaaaa, aaabb, aabba, abbaa, abbbb, bbaaa, bbabb, bbbba |
Les nombres apparaissent déjà: c'est la suite de Fibonacci, ce que confirmera la question 5.
2. Nombre pair de b, par induction. Notons le nombre de b de .
Base. , qui est pair.
Hérédité. Soit avec pair. Alors est pair, et est pair. Comme est le plus petit ensemble satisfaisant ces règles, tout mot de a un nombre pair de b.
3. Caractérisation. Rappelons qu'une suite maximale de b est une suite de b consécutifs qui n'est bornée ni à gauche ni à droite par un b (autrement dit, c'est un « bloc » de b entre deux a, ou en début ou fin de mot).
Sens direct. Démontrons par induction que, pour tout , tout bloc de b de est de longueur paire.
- Base: n'a aucun bloc, la propriété est vacuously vraie.
- Hérédité: soit dont tous les blocs de
bsont pairs.- Pour : ajouter un
aà la fin termine le dernier bloc debde (qui était pair, et le reste) et n'en crée aucun nouveau. Les blocs de sont donc les blocs de , tous pairs. - Pour : ajouter
bballonge le dernier bloc debde de 2 — donc la parité est préservée — ou, si se terminait paraou était vide, crée un nouveau bloc de longueur exactement 2, qui est pair.
- Pour : ajouter un
Sens réciproque. Soit un mot dont tous les blocs de b sont de longueur paire. Montrons par induction sur que .
- Si se termine par
a, posons . Les blocs debde sont ceux de (leafinal n'appartient à aucun bloc deb), donc pairs; par hypothèse d'induction , et la règle donne . - Si se termine par
b, alors son dernier bloc debest de longueur paire, donc au moins 2, et . Les blocs debde sont ceux de , à l'exception du dernier qui a perdu 2 (donc reste pair), ou qui a disparu si sa longueur était exactement 2. Donc vérifie la propriété, et par induction ; la règle donne .
4. Valeurs. (le mot ), (a), (aa, bb), (aaa, abb, bba — noter que bbb a un bloc de b de longueur 3, donc impaire; il a été engendré par bba puis... non: bbb s'obtient par ε → bb → bbb? la règle n'ajoute que a ou bb, donc bbb n'est pas engendrable; il apparaît dans le tableau par erreur de lecture — le mot de longueur 3 terminé par bb est bien abb, et bbb est impossible).
5. Récurrence de Fibonacci. Démontrons que pour .
Soit de longueur . Par construction, est obtenu à partir d'un mot de par l'une des deux règles: avec , ou avec . Ces deux cas sont exhaustifs et disjoints, car ils se distinguent par le dernier symbole de (un mot ne peut pas se terminer simultanément par a et par bb). De plus, dans chaque cas, le préfixe est uniquement déterminé par (c'est privé de son dernier symbole, ou de ses deux derniers).
Les mots de se partitionnent donc en:
- les mots se terminant par
a, en bijection avec ; - les mots se terminant par
bb, en bijection avec .
D'où . Avec , la suite est : c'est la suite de Fibonacci, décalée d'un rang par rapport à la convention vue en cours. On peut aussi la lire directement sur la structure: un mot de est une suite de blocs a (longueur 1) et bb (longueur 2), donc compte les compositions de en parts de 1 et de 2 — c'est la définition combinatoire classique des nombres de Fibonacci.
#Exercice 5 — D'une grammaire régulière à l'automate, au langage et au complémentaire
Source: S5/Annales/Automates et Langages/Annale_2016-2017.pdf, exercice 1 (4 points).
Soit la grammaire
Questions. 1. Transformez en un automate fini tel que ; dessinez-le. 2. Indiquez en français quel est le langage . 3. Déduisez de visu à partir de l'automate une expression régulière décrivant . 4. Indiquez en français quel est le langage , le complémentaire de .
Correction détaillée
1. De la grammaire à l'automate. La grammaire est linéaire à droite: chaque production est de la forme ou ou . La traduction est mécanique:
- les non-terminaux deviennent les états; est l'état initial;
- une production devient une transition ;
- un non-terminal ayant une production devient acceptant.
Ici, , , et ont une production ; n'en a pas. D'où l'automate (non déterministe, à cause de et ):
| État | sur 0 | sur 1 | acceptant |
|---|---|---|---|
| , | , | oui | |
| oui | |||
| — | oui | ||
| non | |||
| oui |
2. Le langage, en français. L'automate se lit en quatre pièces:
- et forment un sous-automate dont les seules transitions sont , , . Tout
0fait passer en , d'où il faut lire un1pour revenir en : et reconnaissent les mots sans deux0consécutifs, étant atteint après un mot qui ne finit pas par0et après un mot qui finit par0. - et forment un sous-automate où , , , : chaque
1change d'état, les0ne changent rien. est acceptant, donc reconnaît les mots ayant un nombre pair de1, et ceux qui en ont un nombre impair. - est initial et acceptant (à cause de ).
- Les transitions sortant de combinent les deux: ou , ou .
En français: est l'union de quatre familles de mots — ceux qui commencent par 0 suivi d'un mot sans deux 0 consécutifs, ceux qui commencent par 1 suivi d'un mot sans 0 consécutifs, ceux qui commencent par 0 suivi d'un mot à nombre impair de 1, et ceux qui commencent par 1 suivi d'un mot à nombre pair de 1. Plus .
Sous forme condensée, avec = « mots sans deux 0 consécutifs » et = « mots à nombre pair de 1 »:
3. Expression régulière, déduite de l'automate. On élimine les états un par un, en partant des sous-automates les plus simples.
- Sous-automate : et . En substituant, , dont la solution est
qui est bien l'ensemble des mots sans
00. - Sous-automate : et , soit : les mots ayant un nombre pair de
1. Et . - Enfin , soit, après substitution et simplification (, , et ):
Le troisième terme est l'ensemble des mots qui commencent par un 0 facultatif, puis un 1, puis une suite de blocs 1 ou 01, puis un 0 facultatif — c'est la partie « et » de la description française. Le quatrième terme est l'ensemble des mots à nombre impair de 1 (le 1 central plus un nombre pair de 1 de part et d'autre), c'est-à-dire la partie .
4. Le complémentaire, en français. Tout mot sur s'écrit de façon unique sous la forme (mot ne contenant aucun 1) ou avec et quelconque. En reprenant la description de :
- appartient à si et seulement si (le mot ) ou (le mot
0). Donc pour . - avec appartient à si et seulement si n'a pas deux
0consécutifs ou a un nombre pair de1. - avec appartient à si et seulement si a un nombre pair de
1.
Donc, en français: le complémentaire de est l'ensemble des mots qui, soit commencent par au moins deux 0 consécutifs, soit contiennent deux 0 consécutifs tout en ayant un nombre impair de 1. Formellement, en écrivant pour « sans deux 0 consécutifs » et pour « nombre impair de 1 »:
Le point à justifier est l'équivalence : un mot a un nombre pair de 1 ou est sans 00; le nier, c'est dire qu'il a un nombre impair de 1 et qu'il contient 00.
#Exercice 6 — Un langage hors contexte et son automate à pile
Source: S5/Annales/Automates et Langages/Annale_2016-2017.pdf, exercice 2 (4 points).
Soit la grammaire d'axiome sur :
Questions. 1. Quel est le langage hors contexte engendré par ? 2. Trouvez un automate à pile reconnaissant . 3. Votre automate est-il déterministe? Commentez.
Correction détaillée
1. Le langage. Notons , , les nombres d'occurrences de chaque symbole, et posons .
Tout mot de vérifie . On le montre par induction sur la dérivation.
- Base: le mot
0a . - Règle : si alors .
- Règles , , pour : . Comme et , la somme vaut au moins , donc .
Réciproquement, tout mot vérifiant est engendré par . C'est le point non trivial, et il se prouve par induction forte sur . Soit avec .
- Si , alors . Si , on utilise après avoir engendré ... ce cas demande une récurrence plus fine; on le traite en remarquant que vérifie , et que les mots de valeur nulle sont eux-mêmes engendrables à partir de deux sous-mots de valeur strictement positive.
- Si commence par , écrivons ; on cherche un découpage tel que et , ce qui permet d'appliquer . Un tel découpage existe: en parcourant de gauche à droite et en calculant les sommes partielles de la suite (pour
0) et (pour1et2), le mot se découpe en « montagnes » élémentaires; chacune a une valeur strictement positive, et la première commence par un symbole de ou est un0isolé.
Conclusion:
On peut vérifier le dénombrement à titre de contrôle: le nombre de mots de longueur vérifiant cette inégalité coïncide avec le nombre de mots engendrés par la grammaire pour (). Cette coïncidence n'est pas une preuve, mais elle détecte immédiatement une erreur de conjecture.
2. Automate à pile. Le plus simple est de construire l'automate à un état déduit de la grammaire, en acceptant par pile vide. Soit avec et
où désigne le renversement de (de sorte que le premier symbole de se retrouve au sommet de la pile). Par exemple (production ), (production ), et (productions , ), , etc.
Une description plus lisible, en français, met en évidence l'idée: l'automate empile un jeton par 0 lu et dépile un jeton par 1 ou 2 lu, puis accepte si la pile n'est jamais passée sous zéro et se termine non vide. Le compteur est exactement le contenu de la pile. Cette version est celle qu'on obtient naturellement en partant du langage plutôt que de la grammaire, et elle est plus facile à rendre déterministe.
3. Déterminisme. L'automate déduit de la grammaire n'est pas déterministe, et pour deux raisons distinctes:
- La grammaire est ambiguë: le mot
100admet au moins deux arbres — avec à droite, et avec... plus généralement,1et les deux0peuvent être répartis de plusieurs façons entre les trois occurrences de . Une grammaire ambiguë ne peut pas donner un automate à pile déterministe par la construction directe. - Même sans ambiguïté de la grammaire, la construction « on devine la production à appliquer » est intrinsèquement non déterministe: elle effectue des choix sans consommer d'entrée.
En revanche, le langage est, lui, reconnaissable par un automate à pile déterministe: c'est un langage à un compteur. Un automate à pile déterministe lit le mot de gauche à droite, incrémente un compteur sur 0, le décrémente sur 1 ou 2, rejette si le compteur devient négatif, et accepte à la fin si le compteur est strictement positif. Il n'y a aucune décision à prendre en cours de lecture.
Cette distinction est le point important de la question: non-déterminisme de la grammaire et non-déterminisme du langage sont deux notions différentes. Il existe des langages hors contexte qui ne sont reconnus par aucun automate à pile déterministe, mais ce n'est pas le cas ici.
#Exercice 7 — Forme normale de Chomsky et algorithme CYK
Source: S5/Annales/Automates et Langages/Annale_2016-2017.pdf, exercice 3 (5 points); Annale_2017-2018.pdf, exercice 3 (5 points).
Partie A (2016-2017). Soit : axiome , , ,
- La grammaire est propre: mettez-la sous forme normale de Chomsky. 2. Analysez le mot
000122par l'algorithme CYK. 3. Quels facteurs de000122, y compris le mot lui-même, appartiennent à ? 4. Quel est le langage engendré?
Partie B (2017-2018). Même travail pour la grammaire d'axiome sur ,
et le mot 001010.
Correction détaillée
#Partie A — grammaire sur
A.1 — forme normale de Chomsky. On introduit un non-terminal par terminal (, , ), puis on binarise les membres droits de longueur 3 en introduisant des non-terminaux auxiliaires:
Toutes les productions sont bien de la forme ou . Le non-terminal associé à est ce qui permet d'engendrer : produit un 1, puis produit la suite des 1 restants suivie du même nombre de 2, et le 2 final est ajouté par .
A.2 — table CYK pour 000122. On note l'ensemble des non-terminaux qui engendrent le facteur .
| 1 | 2 | 3 | 4 | 5 | 6 | |
|---|---|---|---|---|---|---|
1 (0) | — | — | — | |||
2 (0) | — | — | — | |||
3 (0) | — | — | ||||
4 (1) | ||||||
5 (2) | — | |||||
6 (2) |
Lecture des cases non triviales:
- : le facteur
012s'obtient par ? Non —012a trois symboles. En fait vient de avec engendrant0(position 3) et engendrant12... ce découpage ne convient pas; la case correcte est (obtenue par avec1et2), et par avec0en position 3 et122en positions 4 à 6. - par .
- : le facteur
0122est engendré.
A.3 — la case est vide, donc 000122 . Le seul facteur de 000122 appartenant à est 0122 (positions 3 à 6). En effet, les facteurs candidats devraient être de la forme (voir ci-dessous), et 0122 est le seul qui convienne: 02 n'est pas un facteur contigu, 012 exigerait deux 2, 00122 exigerait trois 2.
A.4 — le langage. engendre (récurrence immédiate sur et ). Les trois productions de donnent alors
La forme correspond à répété puis , qui donne . On vérifie sur 0122: , , d'où — c'est bien le mot. Et 000122 = exigerait , il manque deux 2: le mot n'est pas dans le langage, ce que CYK confirme.
#Partie B — grammaire sur
B.1 — forme normale de Chomsky.
Chaque règle ternaire est binarisée en fixant le découpage: 1SS devient avec ; S1S devient avec ; SS1 devient . Comme les trois règles produisent des langages différents, il faut trois auxiliaires distincts ou trois combinaisons distinctes — c'est ici que se joue la correction.
B.2 — table CYK pour 001010. Le mot est 0 0 1 0 1 0. La table (seules les cases non vides sont données) contient:
| 1 | 2 | 3 | 4 | 5 | 6 | |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | — | — | ||||
| 3 | — | |||||
| 4 | — | |||||
| 5 | ||||||
| 6 |
La case contient : 001010 . Les facteurs appartenant au langage sont 0, 00, 001, 010, 0010, 00101, 01010 et le mot entier 001010.
B.3 — le langage. En posant , les trois règles , , ont la même valeur , et la base 0 vaut . Par induction, tout mot engendré vérifie . La réciproque se démontre par induction forte sur la longueur, en découpant le mot en « montagnes » de valeur strictement positive. D'où
Contrôle par dénombrement: le nombre de mots de longueur engendrés vaut pour , exactement le nombre de mots de longueur ayant plus de 0 que de 1. On vérifie sur 001010: , , donc et le mot appartient au langage — conforme à CYK.
Remarque sur les trois règles. Les productions , et sont redondantes en puissance d'expression: chacune place le 1 à une position différente parmi les trois sous-mots, mais et suffisent à engendrer le même langage. En revanche, les conserver facilite l'analyse CYK et reflète la façon dont on découvre naturellement le langage.
#Exercice 8 — Deux preuves par le lemme de l'étoile
Source: S5/Annales/Automates et Langages/Annale_2016-2017.pdf, exercice 4 (4 points); Annale_2017-2018.pdf, exercice 4 (4 points).
Partie A. On note la représentation binaire de l'entier et on s'intéresse à Démontrez à l'aide du théorème de l'étoile que n'est pas rationnel.
Partie B. Démontrez à l'aide du lemme de l'étoile pour les langages algébriques que n'est pas algébrique.
Correction détaillée
#Partie A — le langage
Énoncé du théorème. Si est rationnel, il existe un entier (la longueur de pompage) tel que tout mot avec se décompose en avec , , et pour tout .
Étape préliminaire (elle rapporte la majorité des points). Caractérisons les mots de de la forme (des 1 puis des 0). Un mot de s'écrit pour un certain découpage; deux cas se présentent selon la position du découpage.
- Si le découpage tombe dans le bloc des
1, c'est-à-dire et : alors et , donc . On en déduit et , soit . - Si le découpage tombe dans le bloc des
0, alors commence par0ou est vide — impossible, une représentation binaire ne commence jamais par0et .
Donc
Preuve. Supposons rationnel, de longueur de pompage . Choisissons
qui appartient bien à (avec ) et vérifie . Par le théorème, avec et . Comme et que commence par symboles 1, le mot est entièrement composé de 1; donc avec .
Pompons vers le bas (): . Ce mot est de la forme avec et . D'après la caractérisation, exige , c'est-à-dire , soit . Contradiction avec .
Donc n'est pas rationnel.
Ce qu'il faut rédiger. Trois éléments sont indispensables: la caractérisation préalable des mots ; le choix explicite du mot témoin avec vérification de ; la vérification que le mot pompé viole la caractérisation. Une preuve qui saute l'étape de caractérisation ne peut pas conclure, car rien n'interdit a priori que soit un autre mot de .
#Partie B — le langage
Énoncé du lemme pour les langages algébriques. Si est algébrique (hors contexte), il existe tel que tout avec s'écrive avec , , et pour tout .
Preuve. Supposons algébrique, de longueur de pompage . Choisissons tel que et prenons
Comme , le lemme donne avec et . Pompons vers le haut (): le mot a pour longueur et l'on encadre, puisque :
Le mot pompé a donc une longueur strictement comprise entre et . Or les seules longueurs possibles pour un mot de sont les puissances de 3. Contradiction.
Donc n'est pas algébrique.
Différence avec la partie A. Le lemme algébrique pompe deux facteurs ( et ) simultanément, et la borne porte sur et non sur : c'est ce qui permet de conclure avec une seule pompe, là où le lemme rationnel aurait demandé un argument plus fin. La structure de la preuve est néanmoins la même: choisir un mot témoin dont la longueur est « rigide », montrer que toute pompe la fait sortir de l'ensemble des longueurs admissibles.
#Exercice 9 — La grammaire des expressions régulières et son automate à pile
Source: S5/Annales/Automates et Langages/Annale_2017-2018.pdf, exercice 1 (3 points).
Soit la grammaire non contextuelle: axiome , , ,
Questions. 1. Quel est le langage engendré par cette grammaire? 2. Trouvez un automate à pile reconnaissant , en précisant son mode de reconnaissance.
Correction détaillée
1. Le langage. Les terminaux sont exactement les constituants d'une expression régulière sur l'alphabet : deux atomes « vides » ( et ), deux symboles, deux opérateurs binaires ( pour l'union, pour la concaténation) et un opérateur unaire postfixé (). La forme des productions impose que tout opérateur binaire soit entouré de parenthèses (, ) et que l'étoile s'applique à un entier.
c'est-à-dire des mots construits à partir de , , , par applications successives de , et . Par exemple: 0, (0+1), (0+1)*, ((0.1)*+(1+0)), etc.
Deux remarques utiles. D'une part, n'est pas ambigu a priori: les parenthèses imposées par la grammaire rendent la dérivation unique (c'est précisément le rôle des parenthèses dans une notation infixe). D'autre part, n'est pas un langage rationnel — il contient les expressions bien parenthésées, dont la structure d'imbrication n'est pas bornée — ce qui justifie l'usage d'un automate à pile.
2. Automate à pile. On applique la construction descendante du cours, valable pour une grammaire sous forme quelconque (pas seulement en forme normale de Greibach). L'automate devine la production à appliquer et remplace le non-terminal au sommet de la pile par le renversement du membre droit choisi; il consomme un symbole d'entrée lorsque le sommet de la pile est un terminal identique.
Mode de reconnaissance: par pile vide, avec un seul état. Les transitions, regroupées par type:
| Type | Transition | Origine |
|---|---|---|
| atome | ||
| atome | ||
| atome | , | , |
| choix | , | , |
| choix | ||
| lecture | pour tout | lecture d'un terminal |
Deux points d'explication. Premièrement, l'écriture signifie: on empile le renversement de la chaîne (S+S), c'est-à-dire )S+S(, de sorte que le ( se retrouve au sommet — c'est lui qui sera lu en premier. Deuxièmement, les trois transitions marquées « choix » ne consomment aucun symbole d'entrée: ce sont des ε-transitions, et c'est ce qui rend l'automate non déterministe. Un automate à pile à un seul état est donc toujours possible, mais pas toujours déterministe.
Pourquoi un seul état suffit. Le contenu de la pile encode à lui seul toute l'information nécessaire: le sommet dit ce qu'on attend, le reste est la pile des attentes différées. C'est le pendant exact, pour les langages algébriques, de la construction par sous-ensembles pour les langages rationnels: au lieu de mémoriser un état, on mémorise une pile d'états attendus.
#Exercice 10 — Le bit de parité: automate fini et machine de Turing
Source: S5/Annales/Automates et Langages/Annale_2017-2018.pdf, exercice 2 (4 points).
Le bit de parité d'un mot binaire est le nombre de 1 de ce mot, modulo 2.
Partie 1. Soit l'ensemble des mots binaires non vides augmentés de leur bit de parité. Ce langage étant rationnel, trouvez un automate fini qui le reconnaît.
Partie 2. Construisez une machine de Turing à un seul ruban semi-infini qui écrit le bit de parité à la fin d'un mot binaire non vide donné en entrée.
Correction détaillée
#Partie 1 — l'automate fini
Caractérisation. Soit un mot non vide. Écrivons avec le dernier symbole, et posons = nombre de 1 de modulo 2. Alors si et seulement si est le bit de parité de , c'est-à-dire
(où est le ou exclusif). Autrement dit:
La condition vient de ce que doit être non vide. Elle est régulière (il suffit de mémoriser « 0, 1 ou au moins 2 symboles lus »).
Automate. Les états sont donc des couples (parité, nombre de symboles lus). Les états accessibles sont cinq:
| État | Signification | sur 0 | sur 1 | acceptant |
|---|---|---|---|---|
| rien lu | non | |||
| 1 symbole lu, impair | non | |||
| 1 symbole lu, pair | non | |||
| symboles, impair | non | |||
| symboles, pair | oui |
L'état est l'unique état acceptant. Vérification sur les mots de l'énoncé: 00 → ... la table donne 0 depuis vers (impair), or 00 a zéro 1, donc parité paire. Reprenons: est faux — lire 0 ne change pas la parité, donc depuis (parité paire, 0 lu), lire 0 mène à (parité paire, 1 lu) = ; lire 1 mène à (parité impaire, 1 lu) = . La table correcte est donc:
| État | sur 0 | sur 1 | acceptant |
|---|---|---|---|
| non | |||
| non | |||
| non | |||
| oui | |||
| non |
Contrôle: 00 → accepté; 11 → accepté; 000 → accepté; 011 → accepté; 101 → accepté; 110 → accepté; 01 → , rejeté (parité impaire) ✓; 10 → , rejeté ✓; 0 → , rejeté (un seul symbole) ✓; 1 → , rejeté ✓.
Minimalité. Les cinq états sont deux à deux distinguables: et par la longueur restante (0 les sépare), et par le mot vide (seul accepte), et par le mot vide également. L'automate est donc minimal.
#Partie 2 — la machine de Turing
Spécification. Ruban semi-infini (la tête ne franchit jamais la cellule 0 vers la gauche), alphabet de travail où est le blanc, alphabets d'entrée et de sortie . La machine parcourt le mot de gauche à droite en mémorisant la parité, s'arrête sur la première cellule blanche, y écrit le bit de parité et s'arrête.
| État courant | Symbole lu | Symbole écrit | Déplacement | État suivant |
|---|---|---|---|---|
0 | 0 | → | ||
1 | 1 | → | ||
0 | 0 | → | ||
1 | 1 | → | ||
0 | 0 | → | ||
1 | 1 | → | ||
0 | — | |||
1 | — |
L'état ne sert qu'à garantir que le mot d'entrée est non vide: si la machine rencontre immédiatement un blanc, aucune transition n'est définie et elle rejette. Les états et mémorisent la parité du préfixe lu; les règles internes réécrivent chaque symbole sur lui-même, de sorte que le mot d'entrée est laissé intact. À la fin, l'état écrit 0 et écrit 1 — c'est exactement le bit de parité.
Exemple d'exécution sur 011. lit 0, écrit 0, va à droite, passe en ; lit 1, écrit 1, va à droite, passe en ; lit 1, écrit 1, va à droite, passe en ; lit , écrit 0, s'arrête. Ruban final: 0110. Vérification: 011 a deux 1, parité paire, donc le bit ajouté est 0 ✓.
Point de rédaction. Il faut préciser le mode de reconnaissance (ici: arrêt dans un état final, la machine étant une transductrice qui produit un mot), et vérifier que la tête ne recule jamais: toutes les transitions vont vers la droite ou restent sur place, donc le ruban semi-infini suffit.
#Exercice 11 — Questions de synthèse
Source: S5/Annales/Automates et Langages/Annale_2016-2017.pdf, exercice 5 (3 points); Annale_2017-2018.pdf, exercice 5 (4 points).
Questions. 1. Un langage reconnu par un automate à pile est-il reconnu par un automate à pile à un seul état? 2. Tous les langages hors contexte sont-ils reconnus par un automate à pile déterministe? 3. Citez des opérations pour lesquelles la classe des langages rationnels est close (six au maximum). 4. L'ensemble des langages engendrés par une grammaire sur l'alphabet est-il dénombrable? 5. L'ensemble des expressions régulières sur un alphabet donné est-il dénombrable? Pourquoi? 6. La fonction du Castor Affairé est-elle récursivement énumérable? 7. Spécifiez la fonction de transition de l'automate cellulaire élémentaire n° 54, en donnant l'image de chacun des huit triplets binaires.
Correction détaillée
1. Automate à pile à un seul état. Oui. Tout langage hors contexte est engendré par une grammaire ; on peut toujours supposer en forme normale de Greibach (toutes les productions avec terminal). La construction descendante donne alors un automate à pile à un seul état acceptant par pile vide: la pile contient la suite des attentes, et le sommet détermine la production à appliquer. Le prix à payer est le non-déterminisme: l'automate à un état devine la production.
2. Déterminisme des automates à pile. Non. Il existe des langages hors contexte qu'aucun automate à pile déterministe ne reconnaît. L'exemple canonique est l'ensemble des palindromes sur de longueur paire, ou encore le langage , dont on démontre par un argument de pompage qu'il n'est pas déterministe. Les langages reconnus par un automate à pile déterministe forment une sous-classe stricte des langages algébriques.
3. Clôture des langages rationnels. La classe des langages rationnels est close par:
- union (): réunion des automates, avec un nouvel état initial et des ε-transitions;
- intersection (): produit cartésien des automates, états acceptants = couples d'états acceptants;
- complémentaire (): déterminiser puis échanger états acceptants et non acceptants;
- concaténation (): ε-transitions des états acceptants de vers l'état initial de ;
- étoile de Kleene (): nouvelle boucle depuis les états acceptants;
- image par un morphisme et image inverse par un morphisme: substitution lettre à lettre.
On peut ajouter la différence (), le miroir (renverser toutes les transitions) et l'homomorphisme inverse. En revanche, la classe n'est pas close par intersection infinie ni par passage au complémentaire dans le cadre des langages algébriques: l'intersection de deux langages algébriques n'est pas toujours algébrique, ce qui est l'occasion de souligner que « close par union, intersection et complémentaire » est un privilège des langages rationnels.
4. Dénombrabilité des langages engendrés. Oui. L'alphabet est fini, donc l'ensemble des grammaires sur cet alphabet est une réunion dénombrable d'ensembles finis (grammaires de taille , pour ): il est dénombrable. Chaque grammaire engendre un langage, donc l'application « grammaire langage engendré » part d'un ensemble dénombrable. Son image est donc au plus dénombrable; comme elle est infinie (les langages pour sont deux à deux distincts et engendrables), elle est dénombrablement infinie.
Corollaire important. L'ensemble des langages sur (toutes parties de ) n'est, lui, pas dénombrable: est dénombrable, donc l'ensemble de ses parties a la puissance du continu. Il existe donc beaucoup plus de langages que de grammaires: la plupart des langages ne sont engendrés par aucune grammaire, et il en va de même pour les langages rationnels.
5. Dénombrabilité des expressions régulières. Oui, par le même argument. Une expression régulière sur est un mot fini sur l'alphabet fini ; l'ensemble des mots finis sur un alphabet fini est dénombrable (énumération par longueur croissante, chaque niveau étant fini). Comme il y a une infinité d'expressions régulières deux à deux distinctes, cet ensemble est dénombrablement infini.
6. La fonction du Castor Affairé. Non. Rappelons la définition: est le nombre maximal de 1 écrits sur le ruban par une machine de Turing à états qui s'arrête, partant d'un ruban vide. Cette fonction est totale (définie pour tout ) et croît plus vite que toute fonction calculable: si elle était calculable, on déciderait le problème de l'arrêt en simulant toutes les machines à états pendant étapes.
Plus précisément, la fonction n'est pas récursivement énumérable: si son graphe était récursivement énumérable, alors, étant totale, ce graphe serait récursif (une fonction totale dont le graphe est récursivement énumérable est récursive), donc serait calculable — contradiction. On peut ajouter que l'ensemble des machines qui s'arrêtent est, lui, récursivement énumérable mais non récursif: c'est la distinction exacte entre « semi-décidable » et « décidable ».
7. L'automate cellulaire élémentaire n° 54. Un automate cellulaire élémentaire a deux états et une dimension 1; sa règle est déterminée par les valeurs de l'image d'un triplet (voisin gauche, cellule, voisin droit). Le numéro de la règle, écrit en binaire sur 8 bits, donne ces images dans l'ordre des triplets décroissants .
D'où la fonction de transition de la règle 54:
| Triplet | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
|---|---|---|---|---|---|---|---|---|
| Image | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
On vérifie la conversion: , soit les bits de poids — qui correspondent bien aux triplets , , , . La règle 54 est connue pour engendrer des motifs triangulaires fractals et pour être universelle pour le calcul.
#Tableau de correspondance
| Exercice | Source | Notions évaluées |
|---|---|---|
| 1 | OFI 2019 rattrapage / 2025 rattrapage | définition inductive, ambiguïté, expression régulière |
| 2 | OFI 2020 examen | expression régulière, dénombrement, récurrence |
| 3 | OFI 2020 examen | conjugaison, relation d'équivalence, mots de Lyndon |
| 4 | OFI 2023 rattrapage | induction, caractérisation, Fibonacci |
| 5 | AL 2016-2017 | grammaire régulière → AFN, langage, complémentaire |
| 6 | AL 2016-2017 | langage hors contexte, automate à pile, déterminisme |
| 7 | AL 2016-2017 et 2017-2018 | forme normale de Chomsky, algorithme CYK |
| 8 | AL 2016-2017 et 2017-2018 | lemme de l'étoile (rationnel et algébrique) |
| 9 | AL 2017-2018 | grammaire des expressions régulières, automate à pile |
| 10 | AL 2017-2018 | automate fini, machine de Turing |
| 11 | AL 2016-2017 et 2017-2018 | clôture, dénombrabilité, calculabilité, automates cellulaires |