109 lines
4.2 KiB
Markdown
109 lines
4.2 KiB
Markdown
# BUT2 Théorie des langages
|
|
# TP du vendredi 13 mars 2026 (FI)
|
|
|
|
Ce TP revient en détails sur les notions suivantes.
|
|
|
|
* automate non déterministe
|
|
* mise en pratique de la déterminisation
|
|
* mise en pratique du test de l'équivalence de 2 automates
|
|
|
|
|
|
Vous devez faire ce TP sur papier ou sur votre ordinateur.
|
|
Vous pouvez vous aider de JFLAP.
|
|
|
|
Il faut écrire vos réponses soit sur un papier, soit dans un fichier en Markdown.
|
|
|
|
Votre réponse (scannée ou en markdown) sera intégrée dans un répertoire git qui s'appelle :
|
|
|
|
BUT2_TOMATE_26
|
|
|
|
Il faut partager ce git avec Florent Madelaine et Yves Kasparian.
|
|
|
|
|
|
|
|
## QCM
|
|
|
|
Pour voir si vous êtes à jour dans votre cours.
|
|
Plusieurs bonnes réponses possibles pour une question.
|
|
|
|
|
|
### Question 1.
|
|
|
|
1. Un automate accepte un mot si on peut dans l'automate fabriquer un chemin étiquetté par les lettres du mot de gauche à droite en suivant des transitions de l'automate depuis l'état initial vers un état acceptant.
|
|
|
|
1. Un automate est non déterministe si il existe deux états depuis lequel il existe une transition avec la même lettre.
|
|
|
|
1. Un automate est non déterministe si il existe un état depuis lequel il existe deux transitions avec la même lettre.
|
|
|
|
1. Un automate non déterministe rejette un mot si on peut dans l'automate fabriquer un chemin étiquetté par les lettres du mot de gauche à droite en suivant des transitions de l'automate depuis l'état initial vers un état non-acceptant.
|
|
|
|
1. Il existe plusieurs chemins pour un mot dans un automate non-déterministe
|
|
|
|
1. Il existe plusieurs chemins pour un mot dans un automate déterministe
|
|
|
|
### Question 2.
|
|
|
|
1. Il existe un automate non déterministe qui reconnaît un langage L qui ne peut pas être reconnu par un automate déterministe
|
|
|
|
1. Il existe toujours un automate déterministe qui reconnaît le même langage qu'un automate non déterministe, mais on ne sait pas toujours le construire.
|
|
|
|
1. Il existe toujours un automate déterministe qui reconnaît le même langage qu'un automate non déterministe, et on peut automatiser la construction.
|
|
Dans le pire des cas on va obtenir un automate qui a un nombre d'état qui est $2^n -1$ si l'automate non déterministe de départ a $n$ états.
|
|
|
|
### Question 3.
|
|
|
|
1. On peut tester l'équivalence de 2 automates déterministes en testant avec des mots au hasard de taille 42 et conclure ou non que les automates sont équivalents.
|
|
|
|
1. Si deux automates déterministes ne sont pas équivalents, il existe un mot qui peut servir de contre exemple de longueur au plus $n*m-1$ si $n$ et $m$ sont le nombre d'états respectifs des automates.
|
|
|
|
1. On ne peut pas tester si deux automates non-déterministes sont équivalents, par contre on peut tester si un automate non déterministe est équivalent à un autre automate qui lui est déterministe.
|
|
|
|
|
|
## Mise en oeuvre : déterminisation.
|
|
|
|
On considère l'automate TPAutonate1.jff dans le répertoire 2026.
|
|
|
|
1. Est-ce que cet automate est déterministe?
|
|
1. Est-ce que le mot aa est accepté? pourquoi?
|
|
1. Même question pour le mot aaba.
|
|
1. Pour les 2 mots ci-dessus, écrivez l'arbre de calcul.
|
|
1. Est-ce que vous pouvez déterminisez cet automate?
|
|
|
|
## Mise en oeuvre : déterminisation.
|
|
|
|
On considère l'automate TPAutonate2.jff dans le répertoire 2026.
|
|
|
|
1. Est-ce que cet automate est déterministe?
|
|
1. Est-ce que le mot aa est accepté? pourquoi?
|
|
1. Même question pour le mot aaba.
|
|
1. Pour les 2 mots ci-dessus, écrivez l'arbre de calcul.
|
|
1. Est-ce que vous pouvez déterminisez cet automate?
|
|
|
|
## Mise en oeuvre : équivalence
|
|
|
|
On considère les automates TPAutonate3.jff et TPAutonate4.jff dans le répertoire 2026.
|
|
|
|
1. Est-ce-que ces automates sont déterministes?
|
|
1. Est-ce-que ces automates sont complets?
|
|
1. Est-ce que ces automates sont équivalents?
|
|
|
|
## Mise en oeuvre : équivalence
|
|
|
|
On revisite les automates TPAutonate1.jff et TPAutonate2.jff dans le répertoire 2026.
|
|
|
|
1. Est-ce que ces automates sont équivalents?
|
|
|
|
## Pourquoi?
|
|
|
|
Reprendre le QCM du départ en justifiant chaque réponse.
|
|
|
|
## Pour aller plus loin : Équivalence.
|
|
|
|
On considère 2 programmes en java qui prennent en entrée un entier un int et retourne un booléen.
|
|
Est-ce qu'on peut tester si les deux programmes sont équivalents?
|
|
|
|
Même question pour un programme qui prend en entrée un fichier texte.
|
|
|
|
|
|
|