0% ont trouvé ce document utile (0 vote)
42 vues11 pages

Td4 Corrige

Transféré par

Michel YARO
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues11 pages

Td4 Corrige

Transféré par

Michel YARO
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Solution - TD Feuille 4 - Clôture des langages reconnaissables,

expressions régulières

Licence 3 - Université de Bordeaux

Solution de l’exercice 1 :
1. On a :
— L1 ∪ L2 = {aa, baa, ab, aba, bbb, a}.
— L1 ∩ L2 = {ab}.
— L1 •L2 = {aabbb, aaa, aaab, baabbb, baaa, baaab, abbbb, aba, abab, ababbb, abaa, abaab}.
— L1 \ L2 = {aa, baa, aba}.
— (L2 )2 = L2 • L2 = {bbbbbb, bbba, bbbab, abbb, aa, aab, abbbb, aba, abab}.
— L∗2 = (bbb + a + ab)∗ .
— (a + b)∗ \ L1 =  + a + b + ba + bb + bab + bba + bbb + aaa + aab + abb + (a + b)4 (a + b)∗
2. On donne un automate équivalent sans -transitions :

a b
6 7 8
a b b a
b
a 1 2 b
a
b b b a

3 a 4 a 5

1
3. On construit un automate pour L(A1 ) ∪ L(A2 ) :

a 2

1 b b
a
3

10 a
a b 20 b
a
30

Figure 1 – Automate pour L(A1 ) ∪ L(A2 )

On calcule l’automate produit pour L(A1 ) ∩ L(A2 ) :

b a
(3, 3) (2, 1) (1, 3)
a a
a b
(1, 1) (2, 2) (3, 2)
b

Figure 2 – Automate pour L(A1 ) ∩ L(A2 )

Pour L(A1 ) • L(A2 ), on commence par faire une version avec -transitions :


a 2 10 a

1 b b a b 20 b
a  a
3  30

Figure 3 – Automate pour L(A1 ) • L(A2 ) (avec -transitions)

2
On élimine ensuite les -transitions :

a
a
a 2 10 a
b
1 b b a b 20 b
a a a
3 30
b
a

Figure 4 – Automate pour L(A1 ) • L(A2 ) (sans -transitions)

On fait de même pour (L(A2 ))2 , on commence par faire une version avec -transitions :

1 a b  10 a
a b 2 a b 20 b
a  a
3 30

Figure 5 – Automate pour (L(A2 ))2 (avec -transitions)

On élimine ensuite les -transitions :

1 a b a 10 a
a b 2 a b 20 b
a b a
3 30

Figure 6 – Automate pour (L(A2 ))2 (sans -transitions)

3
On fait de même pour (L(A2 ))∗ , on commence par faire une version avec -transitions :

 1 a
b

0  a b 2 4
a
3

Figure 7 – Automate pour (L(A2 ))∗ (avec -transitions)

On élimine ensuite les -transitions (et l’état 4 qui devient inaccessible) :

a 1 a a, b
0 b a b 2
a
3

Figure 8 – Automate pour (L(A2 ))∗ (sans -transitions)

Pour L(A1 ) \ L(A2 ), on doit construire un automate pour le complémentaire de A2 puis


en faire l’intersection avec A1 . On commence par déterminiser et compléter A2 :

{1}
b
a

a
a

a b
b {2} {3} P uits
b b
a b
{2, 3} {1, 3}
b

a
a

{1, 2}

Figure 9 – Automate déterministe complet pour L(A2 )

4
On en déduit un automate pour (a + b)∗ \ L(A2 ) :

b
a
a

a
a b
b 2 3 6
b b
a b
4 5

a
7
a

Figure 10 – Automate (déterministe complet) pour (a + b)∗ \ L(A2 )

Il nous reste maintenant à faire l’intersection avec A1 pour avoir L(A1 ) \ L(A2 )

a a a a
(2, 7) (3, 2) (1, 3) (2, 1) (3, 6)

(1, 5) b b b b b b (1, 6)
b a a b a
a (3, 4) (2, 2) (1, 1) (3, 3) (2, 6)

Figure 11 – Automate pour L(A1 ) \ L(A2 )

Solution de l’exercice 2 :
On prouve la clôture par intersection. Soit L1 , L2 deux langages réguliers, on montre que
L1 ∩ L2 est aussi régulier. Puisque L1 , L2 sont réguliers on dispose de A1 = (Q1 , I1 , F1 , δ1 )
et A1 = (Q2 , I2 , F2 , δ2 ) des automates qui acceptent respectivement L1 et L2 . On construit à
partir de A1 et A2 , un nouvel automate B qui accepte L1 ∩ L2 .
B = (Q, I, F, δ) est l’automate produit défini comme suit : Q = Q1 × Q2 , I = I1 × I2 , F =
F1 × F2 et δ = {((q1 , q2 ), a) → (r1 , r2 ) | (q1 , a) → r1 ∈ δ1 et (q2 , a) → r2 ∈ δ2 }. Il reste à
montrer que B accepte bien L1 ∩ L2 . On prouve la double inclusion (i.e. L1 ∩ L2 ⊆ L(B) et
L(B ⊆ L1 ∩ L2 )).
Soit w = a1 · · · an un mot. Par définition de B : w ∈ L(B) si et seulement si il existe une
séquence d’états de Q : (q10 , q20 ), (q11 , q21 ), . . . , (q1n , q2n ) telle que :
— (q10 , q20 ) ∈ I
— (q1n , q2n ) ∈ F
— Pour tout i < n, ((q1i , q2i ), ai+1 ) → (q1i+1 , q2i+1 ) ∈ δ.
En utilisant les définitions de I, F, δ on obtient que cette propriété est équivalente à l’exis-
tence de de deux séquences : q10 , q11 , . . . , q1n sur Q1 et q20 , q21 , . . . , , q2n sur Q2 telles que :
— q10 ∈ I1 et q20 ∈ I2
— q1n ∈ F1 et q2n ∈ F2
— Pour tout i < n, (q1i , ai+1 ) → q1i+1 ∈ δ1 et (q2i , ai+1 ) → q2i+1 ∈ δ2 .

5
Autrement dit w ∈ L(B) si et seulement si w ∈ L(A1 ) et w ∈ L(A2 ), on en déduit
L(B) = L1 ∩ L2

Solution de l’exercice 3 :
Équations : Figure 4
On utilise ici la méthode par résolution d’équations avec le lemme d’Arden. Il est important
ici de faire une remarque : il existe deux ’versions’ symétriques du lemme suivant la forme de
l’équation que l’on considère :

Si X = KX + L et  6∈ K Si X = XK + L et  6∈ K
alors alors
X = K ∗L X = LK ∗
Suivant la version qu’on utilise la méthode pour générer les équations est légérement dif-
férente. On utilise ici la version de droite (on utilisera la version de gauche pour la figure 2)
On considère L1 , L2 , L3 , L4 les langages définis comme suit : w ∈ Li si et seulement si il
existe un calcul de l’automate sur w partant de l’état intial et arrivant dans l’état i (attention
si on utilisait l’autre version du lemme la définition serait différente). Il découle des transitions
qu’on a les équations suivantes :

L1 = 
L2 = L1 a
L3 = L2 b + L3 (a + b)
L4 = L1 b + L2 a + L4 a
En substituant L1 par sa valeur on obtient :

L1 = 
L2 = a
L3 = L2 b + L3 (a + b)
L4 = b + L2 a + L4 a
En substituant L2 par sa valeur on obtient :

L1 = 
L2 = a
L3 = ab + L3 (a + b)
L4 = b + aa + L4 a
Enfin en appliquant le lemme d’Arden (version de droite) aux deux dernières équations on
obtient :

L1 = 
L2 = a
L3 = ab(a + b)∗
L4 = (b + aa)a∗

Équations : Figure 5
On utilise cette fois la version de gauche du lemme d’Arden.

6
On considère L1 , L2 , L3 , L4 les langages définis comme suit : w ∈ Li si et seulement si il
existe un calcul de l’automate sur w partant de l’état i et arrivant dans un état final (attention
si on utilisait l’autre version du lemme la définition serait différente). Il découle des transitions
qu’on a les équations suivantes :

L1 = aL1 + bL4 + 
L2 = aL1 + aL3 + 
L3 = bL1
L4 = bL2
En substituant L3 et L4 on obtient :

L1 = aL1 + bbL2 + 
L2 = aL1 + abL1 + 
L3 = bL1
L4 = bL2
En substituant L2 on obtient :

L1 = (a + bba + bbab)L1 + bb + 
L2 = aL1 + abL1 + 
L3 = bL1
L4 = bL2
Enfin en appliquant le lemme d’Arden (version de gauche) à la première équation on
obtient : L1 = (a + bba + bbab)∗ (bb + ).

Brzozowski et McCluskey : Figure 5


On commence par compléter l’automate avec un unique état final et un unique état intial
puis on élimine les états un par un en les remplaçant par des transitions généralisées :

a  0

b 1 b

5 4 a 3

b 2 a


On supprime 3 :

7
a  0

b 1

5 4 a + ab

b 2


On supprime 4 :

a  0

1

5 bb a + ab

2


On supprime 2 :

0
 + bb 
1

5 a + bba + bbab

Enfin, on supprime 1 :

bb) 0
∗ ( +
ba b)
+b
bba
(a +
5

Solution de l’exercice 4 :
1. aa(a + ab)∗ b. Après renommage, on obtient : a1 a2 (a3 + a4 b5 )∗ b6 .

8
a3

a3 3 b6
a1 a2

a3
a4

a4
0 1 2 b6 6
b5
4 5
a4
b6

En reprenant l’alphabet initial on obtient :


a

a 3 b
a a

a
0 1 2 a b 6
b
4 5
a
b

2. (a + ab)∗ ( + ab). Après renommage, on obtient : (a1 + a2 b3 )∗ ( + a4 b5 ).


a1

a1 1 a4
b5
a1

a2
a2

0 a4 4 5
b3
2 3
a2
a4

En reprenant l’alphabet initial on obtient :


a

a 1 a
b
a

0 a a 4 5
b
2 3
a
a

3. aab∗ (ab)∗ +ab∗ +a∗ bba. Après renommage, on obtient : a1 a2 b∗3 (a4 b5 )∗ +a6 b∗7 +a∗8 b9 b10 a11 .

9
b3 a4
a2 b3 a4 b5
1 2 3 4 5
b7 a4

a1
a6 b7
0 6 7
a8

a8
b9 b10 a11
8 9 10 11
b9

En reprenant l’alphabet initial on obtient :


b a
a b a b
1 2 3 4 5
b a
a

a b
0 6 7
a
a

b b a
8 9 10 11
b

4. a((ab)∗ cb∗ )∗ + a(ababacb∗ )∗ a∗ . Après renommage, on obtient :


a1 ((a2 b3 )∗ c4 b∗5 )∗ + a6 (a7 b8 a9 b10 a11 c12 b∗13 )∗ a∗14 .
c4
a2 c4 b5
a2 b3 c4 b5
1 2 3 4 5
a2 c4
a1

a2 a7
0
a6

a7 b1 a14
3
a7 a9 b10 a11 b13 a14
6 7 8 9 10 11 c 12 13 14
b8 12
a14

a14

En reprenant l’alphabet initial on obtient :

10
c
a c b
a b c b
1 2 3 4 5
a c
a

a
0 a

a a
a

b
a a b a b a
6 7 8 9 10 11 c 12 13 14
b
a

11

Vous aimerez peut-être aussi