From 5bfe437e9e7087fc3ddaf2cbdf49cbef51fe9b31 Mon Sep 17 00:00:00 2001
From: "David A. Madore" <david+git@madore.org>
Date: Wed, 30 Nov 2016 16:49:22 +0100
Subject: Re-read exercise sheet.

---
 exercices1.tex | 48 +++++++++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 23 deletions(-)

(limited to 'exercices1.tex')

diff --git a/exercices1.tex b/exercices1.tex
index f3a7115..d51e3b7 100644
--- a/exercices1.tex
+++ b/exercices1.tex
@@ -104,16 +104,15 @@ expression rationnelle qui le dénote, et montrer qu'il est
 reconnaissable en exhibant directement un automate fini qui le
 reconnaît.
 
-(2) On définit la \emph{valeur numérique} d'un mot sur $\Sigma$
-(=: mot binaire) $x_{n-1}\cdots x_0$ comme $\sum_{i=0}^{n-1} x_i 2^i$
-(où $x_i$ vaut $0$ ou $1$ et est numéroté de $0$ pour le chiffre le
-plus à droite à $n-1$ pour le plus à gauche) ; la valeur numérique du
-mot vide $\varepsilon$ est $0$.
+(2) On définit la \emph{valeur numérique} d'un mot binaire
+$x_{n-1}\cdots x_0$ comme $\sum_{i=0}^{n-1} x_i 2^i$ (où $x_i$ vaut
+$0$ ou $1$ et est numéroté de $0$ pour le chiffre le plus à droite
+à $n-1$ pour le plus à gauche) ; la valeur numérique du mot
+vide $\varepsilon$ est $0$.
 
-Parmi les langages suivants, certains sont rationnels, d'autres ne le
-sont pas.  Dire lesquels sont rationnels et justifier brièvement
-pourquoi (on ne demande pas de justifier pourquoi ceux qui ne sont pas
-rationnels ne le sont pas) :
+Parmi les langages suivants, certains sont rationnels.  Dire lesquels
+et justifier brièvement pourquoi ils le sont (on ne demande pas de
+justifier pourquoi ceux qui ne sont pas rationnels ne le sont pas) :
 
 (a) le langage $L_a$ des mots binaires dont la valeur numérique est
 paire,
@@ -133,8 +132,8 @@ nombre premier,
 une puissance de $2$,
 
 \begin{corrige}
-(1) On peut écrire $L_n = L_r$, langage dénoté par l'expression
-  rationnelle $r := 0|1(0|1){*}$.  Ce langage est reconnu, par
+(1) On peut écrire $L_n = L_{0|1(0|1){*}}$, langage dénoté par
+  l'expression rationnelle $0|1(0|1){*}$.  Ce langage est reconnu, par
   exemple, par le DFAI suivant :
 \begin{center}
 %%% begin ex1p1 %%%
@@ -158,7 +157,8 @@ mots binaires qui soit sont le mot vide soit finissent par $0$ : il
 est dénoté par l'expression rationnelle
 $\underline{\varepsilon}|(0|1){*}0$.\spaceout (b) On a $L_b = L_a \cap
 L_n$ et on a vu que $L_a$ et $L_n$ sont rationnels, donc $L_b$ l'est
-aussi.
+aussi (on peut aussi exhiber une expression rationnelle qui le
+dénote : $0|1(0|1){*}0$).
 
 (c) Ajouter un $0$ ou un $1$ à la fin d'un mot binaire de valeur
 numérique $n$ le transforme en un mot de valeur numérique $2n+x$
@@ -206,8 +206,8 @@ veut reconnaître les multiples de $3$.)
 (d) Le langage $L_d$ n'est pas rationnel (on pourrait le démontrer à
 l'aide du lemme de pompage, mais ce n'est pas très facile).
 
-(e) Le langage $L_e$ est rationnel car il s'agit du langage des dénoté
-par l'expression rationnelle $10{*}$.
+(e) Le langage $L_e$ est rationnel car il s'agit du langage dénoté par
+l'expression rationnelle $10{*}$.
 \end{corrige}
 
 
@@ -289,7 +289,7 @@ en (0).
 
 (1) L'automate ayant des ε-transitions, il ne peut pas être
   déterministe : on a affaire à un εNFA.  Avant de le déterminiser, on
-  élimine ses ε-transitions : la ε-fermeture de $0$ est $\{1,4\}$,
+  élimine ses ε-transitions : la ε-fermeture de $0$ est $\{0,1,4\}$,
   celle de $3$ est $\{3,7\}$ et celle de $6$ est $\{6,7\}$ ; on est
   amené au NFA suivant :
 \begin{center}
@@ -316,10 +316,12 @@ en (0).
 
 %%% end ex1p2b %%%
 \end{center}
-(Les états $1$ et $4$ étant inaccessibles, ils ont été retirés.)
+(Les états $1$ et $4$ étant inaccessibles, ils ont été retirés.  Il ne
+faut pas oublier que $3$ et $6$ sont finaux puisqu'il sont l'état
+final $7$ dans leur ε-fermeture.)
 
-On peut maintenant procéder à la minimisation.  Pour abréger les noms
-des états, on note, par exemple, $023$ pour $\{0,2,3\}$.  En
+On peut maintenant procéder à la déterminisation.  Pour abréger les
+noms des états, on note, par exemple, $023$ pour $\{0,2,3\}$.  En
 construisant de proche en proche, on obtient le DFA suivant :
 \begin{center}
 \scalebox{0.8}{%PLEASE!  There HAS to be a better way to do this!
@@ -389,9 +391,9 @@ construisant de proche en proche, on obtient le DFA suivant :
 }
 \end{center}
 (À titre d'exemple, la transition étiquetée $b$ partant de l'état
-$023$ conduit à l'état $057$ car les transitions étiquetées $b$ dans
-le NFA précédent et partant des états parmi $\{0,2,3\}$ sont $0\to 0$,
-$0\to 5$, $3\to 7$ et $7\to 7$.  Tous les états contenant l'un des
+$0237$ conduit à l'état $057$ car les transitions étiquetées $b$ dans
+le NFA précédent et partant des états parmi $\{0,2,3,7\}$ sont $0\to
+0$, $0\to 5$, $3\to 7$ et $7\to 7$.  Tous les états contenant l'un des
 symboles $3,6,7$ sont finaux.)
 
 (2) On a affaire à un DFA dont tous les états sont accessibles, on
@@ -400,8 +402,8 @@ partition sépare les états finaux, soit $023, 0237, 027, 056, 0567,
 057$ des non-finaux, soit $0, 02, 05$.  L'étape suivante distingue
 $02$ parce que sa $a$-transition conduit à une classe différente que
 celles de $0$ et $05$, et $05$ parce que sa $b$-transition conduit à
-une classe différente de $0$ et $02$.  Finalement, on arrive à un
-automate à quatre états :
+une classe différente de $0$ et $02$.  Les étapes suivantes ne
+changent rien.  Finalement, on arrive à un automate à quatre états :
 \begin{center}
 %%% begin ex1p2d %%%
 
-- 
cgit v1.2.3

