From ca644c1d85015e1c4bce66d42db4922edd8729b0 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Tue, 21 Jan 2020 20:28:06 +0100 Subject: Re-read test and answers. --- controle-20200123.tex | 150 +++++++++++++++++++++++++++++--------------------- 1 file changed, 87 insertions(+), 63 deletions(-) diff --git a/controle-20200123.tex b/controle-20200123.tex index 374f3d3..00792d7 100644 --- a/controle-20200123.tex +++ b/controle-20200123.tex @@ -106,7 +106,7 @@ Durée : 1h30 Barème \emph{indicatif} : 2+(7+6)+5. \ifcorrige -Ce corrigé comporte 8 pages (page de garde incluse) +Ce corrigé comporte 9 pages (page de garde incluse) \else Cet énoncé comporte 3 pages (page de garde incluse) \fi @@ -128,7 +128,7 @@ Git: \input{vcline.tex} \exercice -Soit $\mathscr{A}$ l'automate suivant sur l'alphabet $\Sigma := +Soit $\mathscr{A}$ l'automate fini suivant sur l'alphabet $\Sigma := \{a,b,c\}$ : \begin{center} @@ -170,7 +170,7 @@ $\varepsilon\;|\;(\varepsilon|a)\,(c|ba){*}\,(\varepsilon|b)$ (il se trouve que le premier terme est inutile et que cette expression rationnelle est équivalente à simplement $(\varepsilon|a)\,(c|ba){*}\,(\varepsilon|b)$, mais la -méthode d'élimination conduit à ce qui a été dit). +méthode d'élimination proprement menée conduit à ce qui a été dit). Si on élimine d'abord l'état $2$, on aboutit à l'automate suivant : \begin{center} @@ -198,12 +198,16 @@ d'élimination. \exercice\label{exercise-on-unary-languages} -Dans cet exercice, on pose $\Sigma := \{a\}$ (alphabet à une seule lettre). +Dans cet exercice, on pose $\Sigma := \{a\}$ (alphabet à une seule +lettre), de sorte que $\Sigma^* = \{a^n : n\in\mathbb{N}\}$ ; on va +appliquer les automates finis à un problème arithmétique. \medskip \textbf{Première partie : étude d'un cas particulier.} +\nobreak + Dans cette partie, on considère l'expression rationnelle $r$ suivante : $(aaa|aaaaa){*}$ (sur l'alphabet $\Sigma$). On appelle $L := L(r)$ le langage qu'elle dénote et $M := \Sigma^* \setminus L$ son @@ -255,12 +259,11 @@ vient d'écrire. \end{corrige} (2) Déterminiser l'automate $\mathscr{A}_1$. On appellera -$\mathscr{A}_2$ l'automate (déterministe complet) en question. - -(On obtient un automate $\mathscr{A}_2$ ayant $14$ états. On -n'hésitera pas à introduire des notations simplificatrices si on le -juge utile ; il pourra être judicieux de réfléchir au préalable à une -façon de nommer les états de $\mathscr{A}_1$ qui rend la construction +$\mathscr{A}_2$ l'automate (déterministe complet) en question. (On +obtient un automate $\mathscr{A}_2$ ayant $14$ états. On n'hésitera +pas à introduire des notations allégées si on le juge utile ; il +pourra être judicieux de réfléchir au préalable à une façon de nommer +les états de $\mathscr{A}_1$ qui rend la construction de $\mathscr{A}_2$ plus facile à mener sans se tromper.) Pour simplifier les questions suivantes (ainsi que le travail du @@ -272,8 +275,8 @@ mot $a^i$ par l'automate soit numéroté $i$. On travaille sur des ensembles d'états en suivant l'algorithme de déterminisation : partant de l'ensemble $\{0\}$ des états initiaux de l'automate $\mathscr{A}_1$, il n'y a à chaque fois qu'une seule -transition à construire, ce qui construit successivement les états -suivants (colonne du milieu de la table) : +transition (étiquetée par $a$) à considérer, ce qui construit +successivement les états suivants (colonne du milieu de la table) : \begin{center} \begin{tabular}{c|l|c} $0$&$\{0\}$&F\\\hline @@ -303,10 +306,13 @@ de $\mathscr{A}_1$). L'unique transition de l'automate (évidemment dernière ligne qui boucle sur elle-même. Les états finaux sont ceux qui contiennent un des états finaux de $\mathscr{A}_1$, c'est-à-dire $0$ ou $3$ ou $5'$ (ou encore, les lignes qui précèdent une ligne -avec $1,1'$). On peut bien sûr tracer graphiquement l'automate comme +avec $1,1'$), on les a marqués par un F dans la colonne de droite de +la table ci-dessus. + +On peut bien sûr préférer tracer graphiquement l'automate comme d'habitude : c'est juste une ligne de $14$ états, toutes les transitions étant étiquetées $a$, menant de chaque état vers le -suivant, sauf du dernier sur lui-même, avec certains états finaux +suivant, sauf du dernier sur lui-même, certains états étant finaux comme on vient de le dire. On renumérote alors les états comme selon la colonne de gauche de la @@ -314,15 +320,13 @@ table, c'est-à-dire en suivant l'ordre des lignes. La transition étiquetée $a$ mène alors de l'état $i$ vers l'état $i+1$ sauf pour $i=13$ où elle mène vers lui-même. L'ensemble des états finaux est $F = \{0,3,5,6,8,9,10,11,12,13\}$ comme indiqué par la table. - -(Dans la notation introduite à la question (6) ci-dessous, l'automate +(Dans la notation introduite à la question (6) plus bas, l'automate $\mathscr{A}_2$ est décrit par $j_2 = 14$, $j_1 = 13$ et $F = \{0,3,5,6,8,9,10,11,12,13\}$.) \end{corrige} (3) Minimiser l'automate $\mathscr{A}_2$. On appellera $\mathscr{A}_3$ l'automate canonique ainsi obtenu. - (On obtient un automate ayant $9$ états.) \begin{corrige} @@ -358,11 +362,11 @@ transitions étant étiquetées $a$, menant de chaque état vers le suivant, sauf du dernier sur lui-même, les états finaux étant ceux numérotés $0,3,5,6,8$ si on numérote les états de $0$ à $8$ dans l'ordre des transitions. (Dans la notation introduite à la -question (6) ci-dessous, l'automate $\mathscr{A}_3$ est décrit par +question (6) plus bas, l'automate $\mathscr{A}_3$ est décrit par $j_2 = 9$, $j_1 = 8$ et $F = \{0,3,5,6,8\}$.) \end{corrige} -(4) Construire un automate déterministe complet $\mathscr{A}_4$ +(4) Construire un automate fini déterministe complet $\mathscr{A}_4$ reconnaissant le langage $M := \Sigma^*\setminus L$ complémentaire de $L$. Ce langage $M$ est fini : énumérer exhaustivement les mots qu'il contient. @@ -377,7 +381,7 @@ juste une ligne de $9$ états, toutes les transitions étant étiquetées $a$, menant de chaque état vers le suivant, sauf du dernier sur lui-même, les états finaux étant ceux numérotés $1,2,4,7$ si on numérote les états de $0$ à $8$ dans l'ordre des transitions. (Dans -la notation introduite à la question (6) ci-dessous, l'automate +la notation introduite à la question (6) plus bas, l'automate $\mathscr{A}_3$ est décrit par $j_2 = 9$, $j_1 = 8$ et $F = \{1,2,4,7\}$.) @@ -395,46 +399,63 @@ $m,m'\in\mathbb{N}$. Si $n = 3m+5m'$ alors le mot $a^n = (aaa)^m(aaaaa)^{m'}$ appartient à $L$, c'est-à-dire qu'il vérifie $r$ puisqu'il est manifestement concaténation de mots de la forme $aaa$ ou $aaaaa$. Réciproquement, -la longueur d'un mot de $L$, c'est-à-dire vérifiant $r$, donc +si le mot $a^n$ appartient à $L$, c'est-à-dire vérifie $r$, i.e., concaténation de mots de la forme $aaa$ et de la forme $aaaaa$, disons -$m$ de l'un et $m'$ de l'autre (en tout) a pour longueur $n := 3m+5m'$ -et sur l'alphabet $\{a\}$ le seul mot de cette longueur est le -mot $a^n$. Bref, les mots de $L$ sont exactement les $a^n$ avec $n$ -de la forme $3m+5m'$ ; et les mots qui ne sont pas dans $L$ (i.e., -sont dans $M$) sont exactement les $a^n$ avec $n$ ne pouvant pas -s'écrire de la forme $3m+5m'$ : on a vu que ce sont $a$, $aa$, $aaaa = -a^4$ et $aaaaaaa = a^7$. Ainsi, les quatre entiers naturels ne -pouvant pas s'écrire sous la forme $3m+5m'$ avec $m,m'\in\mathbb{N}$ -sont : $1$, $2$, $4$ et $7$. +$m$ de l'un et $m'$ de l'autre (en tout), il a pour longueur $n = +3m+5m'$. Bref, les mots de $L$ sont exactement les $a^n$ avec $n$ de +la forme $3m+5m'$ ; et les mots qui ne sont pas dans $L$ (i.e., sont +dans $M$) sont exactement les $a^n$ avec $n$ ne pouvant pas s'écrire +de la forme $3m+5m'$ : on a vu que ce sont $a$, $aa$, $aaaa = a^4$ et +$aaaaaaa = a^7$. Ainsi, les quatre entiers naturels ne pouvant pas +s'écrire sous la forme $3m+5m'$ avec $m,m'\in\mathbb{N}$ sont : $1$, +$2$, $4$ et $7$. \end{corrige} \medbreak \textbf{Seconde partie : considérations générales.} -(6) Expliquer rapidement pourquoi un automate déterministe complet -sans état inaccessible $\mathscr{A}$ sur $\Sigma$ prend nécessairement -la forme suivante : si on note $j_2$ son nombre d'états, on peut -numéroter ses états de $0$ à $j_2-1$, avec $0$ l'état initial, et de -façon qu'il y ait une unique transition étiquetée $a$ de l'état $i$ -vers l'état $i+1$ pour chaque $0\leq i