TD 1 : automates finis et langages
Langages et automates finis
Exercice 1
Pour chaque langage ci-dessous sur l'alphabet , donnez un automate fini déterministe qui l'accepte.
Le nombre de est un multiple de 4.

Un nombre pair de et impair de .
Tout symbole est précédé et suivi d'au moins un symbole .
Remarque : dans cet automate, n'est pas accepteur ; si l'on considère que le mot vide appartient au langage (il ne contient aucun ), il faut aussi rendre accepteur.
Exercice 2
Pour chaque langage ci-dessous sur l'alphabet binaire , donnez un automate fini déterministe qui l'accepte.
Les entiers pairs.
Les entiers multiples de 3 (l'état mémorise le reste de la division par 3 du préfixe lu ; lire le bit fait passer de à ).
Exercice 3
Pour chaque langage ci-dessous sur l'alphabet , donnez un automate fini non déterministe qui l'accepte.
Les mots qui se terminent par .
Les mots dont la dernière lettre apparaît précédemment dans le mot.

Les mots dont la dernière lettre n'apparaît pas précédemment dans le mot (pas de schéma dans ces notes).
Exercice 4
Écrire un algorithme qui indique si un automate fini déterministe et complet accepte un mot .
Formellement, soit un mot ( est la -ème lettre du mot) et un automate : on veut décider si est accepté par . Soit l'ensemble des états que l'on peut atteindre en ayant lu . L'algorithme suivant fonctionne aussi pour un automate non déterministe sans transition ; pour un automate déterministe et complet, chaque contient exactement un état.
X_0 = {q_0}
pour i de 1 à k
X_i = ∅
pour tout p dans X_{i-1}
pour tout q tel que (p, ω_i, q) est dans δ
X_i = X_i ∪ {q}
pour tout p dans X_k
si p est dans F
retourner Vrai
retourner Faux
Exercice 5
L'idée est de retirer le statut initial des deux états initiaux et de créer un nouvel état initial qui mène aux deux anciens.
Remarque : si l'objectif est de conserver le langage accepté, les transitions issues du nouvel état doivent être des transitions (ou bien le nouvel état doit reprendre les transitions sortantes des anciens états initiaux). Avec des transitions étiquetées et comme sur le schéma, chaque mot accepté est précédé d'une lettre supplémentaire.

Exercice 6
Démonstration par l'exemple :
Jeu des portes bascules
Les parties gagnantes avec trois billes sont AAB, ABB, BAB et BBB.
Table de transition de l'automate :
| A | B | |
|---|---|---|
| 000a | 100r | 011r |
| 000a | 100r | 011r |
| 001a | 101r | 011r |
| 010r | 110r | 000a |
| 010a | 110r | 001a |
| 100r | 010r | 111r |
| 100a | 010r | 111r |
| 101r | 011r | 100a |
| 101a | 011r | 100a |
| 110r | 000a | 101a |
| 110a | 000a | 101a |
| 111r | 001a | 110a |
