★ À maîtriser
📌 Σ∗ est l’ensemble de tous les mots sur Σ, tandis que Σ+ = Σ∗ \ {ε} est l’ensemble des mots non vides sur Σ.
Compléments
Alphabet → mot → langage
★ À maîtriser
📌 La concaténation vérifie et ε · w1 = w1 · ε = w1, donc ε est son élément neutre.
📌 La concaténation est associative, car w1 · (w2 · w3) = (w1 · w2) · w3, mais elle n’est pas commutative, car w1 · w2 peut différer de w2 · w1.
Compléments
Préfixe au début, suffixe à la fin, facteur n’importe où
★ À maîtriser
📐 Formule — La séparation vérifie , la symétrie vérifie et l’inégalité triangulaire vérifie .
Compléments
Insertion ou suppression → transformation minimale → distance
★ À maîtriser
Compléments
Le langage des nombres premiers est décidable, notamment par un algorithme comme le crible d’Ératosthène.
Le langage vide et le langage Σ∗ sont décidables respectivement par les algorithmes qui répondent toujours faux et toujours vrai.
Le langage des programmes qui s’arrêtent en moins de dix secondes sur une entrée donnée est décidable en compilant puis en exécutant le programme avec une limite de dix secondes.
Arrêt en temps borné décidable, arrêt sans borne indécidable
📌 Les opérations sur les langages vérifient A∁∁ = A, A ∪ A∁ = Σ∗, (A ∪ B)∁ = A∁ ∩ B∁ et (A ∩ B)∁ = A∁ ∪ B∁.
📌 Pour k ∈ N, L0 = {ε} et Lk est l’ensemble des mots obtenus en concaténant k mots de L, qui peuvent être différents, donc Lk ≠ {uk | u ∈ L}.
Concaténation répétée → puissances → étoile de Kleene
📌 Dans une expression régulière, e? = e + ε représente l’optionnel, e+ = ee∗ au moins une occurrence, et en représente exactement n occurrences de e.
📌 La syntaxe inductive de RegΣ contient les atomes ∅, ε et chaque lettre a ∈ Σ, puis les expressions e1 + e2, e1e2 et e1∗ lorsque e1 et e2 sont déjà des expressions régulières.
Atomes → alternation, concaténation ou étoile → langage rationnel
📐 Formule — Les cas de base vérifient , et, pour toute lettre a ∈ Σ, .
📐 Formule — La concaténation, l’union et l’étoile vérifient respectivement , et .
Bases ∅, ε, lettres, puis concaténation, union et étoile
★ À maîtriser
📌 L’union, la concaténation et l’étoile de langages rationnels sont rationnelles, tandis que cette définition syntaxique ne permet pas d’affirmer directement la clôture par intersection et complément.
📌 Tout langage rationnel est décidable ; par conséquent, un langage indécidable tel que H n’est pas rationnel.
Compléments
Tout langage fini {w₁,…,wₙ} est rationnel, car il est décrit par l’expression régulière w₁+…+wₙ.
Le langage vide ∅ et le langage Σ* de tous les mots sont rationnels ; si Σ={a₁,…,aₙ}, alors Σ* est décrit par (a₁+…+aₙ)*.
Rationnel = décrit par une expression ; indécidable ≠ rationnel
📌 Un mot peut être refusé parce qu’un chemin existe sans aboutir à un état acceptant, ou parce qu’aucun chemin ne porte ce mot.
Chemin initial étiqueté par le mot → état final → acceptation
★ À maîtriser
📌 Dans un NFA, un mot est accepté dès qu’il possède au moins un chemin acceptant, même si d’autres chemins étiquetés par le même mot sont rejetants.
Compléments
📌 Si un automate est déterministe, alors chaque mot w∈Σ* possède au plus un chemin étiqueté par w.
📌 Un automate complet possède au moins un chemin étiqueté pour chaque mot de Σ*, tandis qu’un automate déterministe possède au plus un tel chemin.
DFA : au plus un chemin ; NFA : un seul chemin acceptant suffit
★ À maîtriser
📌 Le théorème de Kleene affirme que pour toute expression régulière e∈RegΣ, il existe un ε-NFA A sur Σ tel que L(e)=L(A).
📌 Pour toute expression e, si n est le nombre d’occurrences de ε, ∅, +, *, et des lettres de Σ dans e, hors parenthèses, l’automate de Thompson possède exactement 2n états.
Compléments
Thompson construit ; la fermeture ε puis la suppression simplifient
★ À maîtriser
📌 Pour chaque état q et chaque état p appartenant à ε_A^forward(q), toute transition p x→_A r étiquetée par une lettre x de l’alphabet donne une transition q x→ r dans l’automate sans transitions ε.
📌 Si un état acceptant r appartient à ε_A^forward(p), alors p doit également être déclaré acceptant dans l’automate sans transitions ε.
Compléments
Fermeture epsilon, nouvelles transitions, états finaux
📌 Un état est utile s’il est à la fois accessible et co-accessible ; il est inutile dans le cas contraire.
📌 La suppression des états inutiles produit un automate élagué équivalent à l’automate initial.
Accessible depuis l’initial, co-accessible vers le final
📌 L’état initial du DFA est étiqueté par I, l’ensemble des états initiaux du NFA.
📐 Formule — Pour un ensemble S et une lettre a, le successeur du DFA est l’ensemble des états atteignables par a depuis au moins un état de S.
📌 Un état du DFA est acceptant si son étiquette contient au moins un état acceptant du NFA.
La construction pratique remplit une table avec l’ensemble initial, calcule ses successeurs pour chaque lettre, ajoute chaque ensemble inédit comme nouvelle ligne, répète jusqu’à épuisement des ensembles, puis rend acceptants les ensembles contenant un état final du NFA.
Un DFA équivalent complet à un NFA possédant n états peut avoir jusqu’à états, car l’ensemble des sous-ensembles d’un ensemble de n états contient éléments.
Chaque état du DFA est une boîte contenant plusieurs états possibles du NFA
★ À maîtriser
📌 Tout langage rationnel est décidable, car il est reconnu par un DFA et l’exécution de ce DFA sur un mot termine après un nombre linéaire d’opérations en la taille du mot.
📌 Le langage L={aⁿbⁿ | n∈N} est décidable mais non rationnel.
Compléments
📐 Formule — Pour un mot de L={aⁿbⁿ | n∈N}, le nombre de a et le nombre de b sont égaux, soit .
Mot trop long → état répété → boucle pompable
★ À maîtriser
Pour montrer que le langage L = {a^n b^n | n ∈ N} n’est pas rationnel, le lemme de l’étoile est appliqué en distinguant les trois positions possibles du facteur pompé dans un mot de L.
Un langage rationnel est reconnu par un algorithme utilisant une quantité constante de mémoire indépendante de la taille de l’entrée.
L’algorithme qui décide L = {a^n b^n | n ∈ N} lit d’abord les a en incrémentant un compteur, lit ensuite les b en le décrémentant, puis accepte exactement si toute l’entrée a été parcourue et si le compteur vaut zéro.
Pour reconnaître les entiers divisibles par 3, un automate lit les chiffres de gauche à droite et mémorise le reste modulo 3 de leur somme.
Pour reconnaître les mots ayant un nombre pair de a et un nombre impair de b, un automate mémorise séparément les deux parités au moyen de quatre états.
Compléments
Dans un automate fini déterministe, chaque état représente une configuration possible de la mémoire limitée de l’algorithme.
Les expressions rationnelles ne peuvent pas reconnaître les parenthèses correctement appariées.
La reconnaissance des entiers divisibles par 3 nécessite trois états, correspondant aux restes 0, 1 et 2 modulo 3 de la somme des chiffres.
Compteur non borné → langage non rationnel
★ À maîtriser
La minimisation consiste à regrouper les états indistinguables en classes d’équivalence puis à fusionner les états d’une même classe.
Le théorème de Myhill-Nerode affirme que tout langage rationnel possède un unique automate déterministe minimal, dont le nombre d’états est égal au nombre de classes d’indistinguishabilité.
Compléments
📌 Si p1 et p2 sont indistinguables et que leurs transitions sur une lettre a mènent respectivement à q1 et q2, alors q1 et q2 sont aussi indistinguables.
Indistinguables se fusionnent, distinguables restent séparés
★ À maîtriser
📌 Dans la table de Moore, il y a conflit lorsque deux états d’une même classe ont, pour une même lettre, des successeurs appartenant à des classes différentes.
Une fois la table stabilisée, chaque classe devient un état du nouvel automate, la classe contenant l’état initial devient initiale et toute classe contenant un état acceptant devient acceptante.
L’algorithme de Brzozowski–McCluskey transforme un automate en expression rationnelle en ajoutant si nécessaire un état initial et un état acceptant uniques, puis en supprimant progressivement les arêtes et les états jusqu’à obtenir une seule arête entre ces deux états.
📌 Lorsqu’un état q est supprimé, chaque chemin entrant dans q est combiné avec chaque chemin sortant de q, en tenant compte de la boucle éventuelle sur q.
Tout automate fini déterministe, non déterministe ou avec transitions ε reconnaît le même langage qu’une expression rationnelle appropriée. — Brzozowski–McCluskey
Les opérations qui préservent la rationalité sont:
📌 Dans le produit synchronisé A1 × A2, l’état initial est (i1, i2), et un état (f1, f2) est acceptant si et seulement si f1 et f2 sont acceptants dans leurs automates respectifs.
Pour décider si un langage rationnel est vide, on effectue une recherche en profondeur depuis l’état initial et on vérifie si un état acceptant est atteignable.
Pour tester l’égalité de deux langages rationnels, on construit des DFA complets, leurs compléments et les deux produits synchronisés correspondant aux différences dans chaque sens, puis on vérifie que ces deux produits sont vides.
Compléments
📐 Formule — Si A1 possède n1 états et A2 possède n2 états, alors le produit synchronisé A1 × A2 possède au plus états.
Initialiser, comparer, scinder, itérer, construire
| Objet | Opération | Résultat |
|---|---|---|
| Mots | Concaténation | Juxtaposition de deux mots |
| Langages | Concaténation | Ensemble des concaténations d’un mot de chaque langage |
| Langages | Étoile de Kleene | Concaténations d’un nombre fini de mots |
| Propriété | Condition | Conséquence |
|---|---|---|
| DFA | Au plus une arête par lettre et état | Au plus un chemin par mot |
| NFA | Plusieurs arêtes ou chemins possibles | Un seul chemin acceptant suffit |
| Automate complet | Au moins une arête par lettre et état | Au moins un chemin par mot |
Teste tes connaissances sur Théorie des langages rationnels avec 65 questions à choix multiples et corrections détaillées.
1. Comment définit-on un langage en théorie des langages ?
2. Quelle propriété caractérise un alphabet ?
Mémorisez les concepts clés de Théorie des langages rationnels avec 87 flashcards interactives.
Qu'est-ce qu'un langage en informatique formelle ?
Un ensemble de suites d’objets élémentaires avec une signification.
Qu'est-ce qu'un alphabet en théorie des langages ?
Un ensemble fini de symboles appelés lettres.
Qu'est-ce qu'un mot sur un alphabet Σ ?
Une suite finie, éventuellement vide, de lettres de Σ.
Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.
Générateur de fiches