Polytech Paris Sud - ET4 Année 2018-2019
Informatique Théorique : Minimisation
TD n
◦3
Semaine du 1 octobre
Résiduels
Exercice 1. (♣) Soit X le langage dénoté par l'expression rationnelle(ba+ (a+bb)a∗b)∗ . Calculer directement à partir de cette expression l'ensemble des résiduels du langage X, puis le doter de sa structure d'automate minimal.
Démonstration. X= (ba∪(a∪bb)a∗b)∗et on applique les formules du cours pour calculer les résiduels de X.
a−1X= [a−1(ba∪(a∪bb)a∗b)]X
= [a−1(ba)∪a−1((a∪bb)a∗b)]X
= [(a−1b)a∪(a−1(a∪bb))a∗b]X
= (a−1a∪a−1(bb))a∗bX= (ε∪(a−1b)b)a∗bX=a∗bX.
b−1X = [b−1(ba∪(a∪bb)a∗b)]X
= [b−1(ba)∪b−1((a∪bb)a∗b)]X
= [(b−1b)a∪(b−1(a∪bb))a∗b]X
= [a∪(b−1a∪b−1(bb))a∗b]X = (a∪(b−1b)ba∗b)X= (a∪ba∗b)X.
(aa)−1X =a−1(a−1X) =a−1(a∗bX)
= (a−1a∗)bX∪a−1(bX) = (a−1a)a∗bX∪(a−1b)X=a∗bX.
(ab)−1X=b−1(a−1X) =b−1(a∗bX)
= (b−1a∗)bX∪b−1(bX) = (b−1a)a∗bX∪(b−1b)X =X.
(ba)−1X=a−1(b−1X) =a−1[(a∪ba∗b)X]
= [a−1(a∪ba∗b)]X
= [a−1a∪a−1(ba∗b)]X = [ε∪(a−1b)a∗b]X =X.
(bb)−1X =b−1(b−1X)
=b−1[(a∪ba∗b)X]
= [b−1(a∪ba∗b)]X
= [b−1a∪b−1(ba∗b)]X = (b−1b)a∗bX =a∗bX.
On en déduit l'automate minimal des résiduels :
X
start (a∪ba∗b)X
a∗bX b a
b
a a
b
Exercice 2 (calcul de résiduels). Calculez les automates minimaux des automates sui- vants (par résiduel !) :
1. L1 = (ab)∗a. 2. L2 =a(ba)∗. 3. L3 =b(ab)∗a.
Avez-vous des remarques pertinentes ?
Démonstration. 1. On calcule les résiduels successifs :
ε−1L1=L1
a−1L1=b(ab)∗a+ε=bL1+ε b−1L1=∅
(aa)−1L1=∅ (ab)−1L1=L1
a b
a b
D'où l'automate minimal :
L1
start bL1+ε
∅ a b
a a, b b
2. On recommence :
ε−1L2=L2
a−1L2= (ba)∗ b−1L2=∅
(aa)−1L2=∅ (ab)−1L2=L2
a b
a b
D'où l'automate minimal :
L2
start (ba)∗
∅ a b
a
a, b b
On remarque queL1 etL2 ont le même automate minimal et représentent donc le même langage.
3. On recommence :
ε−1L3=L3
a−1L3=∅ b−1L3= (ab)∗a=L1
(ba)−1L3=ε+L3 (bb)−1L3=∅
(baa)−1L3=∅ (bab)−1L3=L1
a b
a b
a b
D'où l'automate minimal :
L3
start L1
∅
L3+ε b
b
a, b a
a
b a
Minimisation d'automates
Exercice 3. (♣) On considère l'automate :
A
start D E
B C
F G H K
a
a a
b a
b
b a
b b
a b
b a
a b
b a
1. Cet automate est-il déterministe ? Complet ? Accessible ? 2. Le rendre minimal par l'algorithme de Moore.
Démonstration. 1. Oui, ça tombe bien
2. On sépare non-naux et naux, puis on fait une itération et c'est ni ! On trouve :
start AG F
BCDEHK b
a b
a, b a
Exercice 4. (♣) Dans l'exercice 7 du TD1, on a construit un automate déterministe accessible complet qui reconnaît le langage X décrit par l'expression rationnelle (ba+ (a+bb)a∗b)∗ . Un tel automate possible est :
A start
C
B
F E
G D
b a
a a
b b
a
b b
a
b a
b a
Minimiser cet automate par l'algorithme de Moore et montrer que l'automate ainsi obtenu est isomorphe à l'automate des résiduels de X construit dans l'exercice 1.
Démonstration. On obtient directement en une itération :
start AEF B
CDG b a
b
a a
b
Exercice 5. Minimiser par l'algorithme de Moore l'automate construit à la question 4 de l'exercice 1 du TD2, et remis ci-dessous :
A
start C
B
D E
K
I
F
G H J
1
0
0 1
0 1
0 1
1
0 1
0 0,1 0
1 0
1
0 1
1
0
Démonstration. On a deux itérations cette fois (d'abordB séparé des naux, puis Cdes non-naux). On obtient :
A
start B C
DEFGHIJK 1
0 1
0
0
0,1 1
Comparer entre eux expressions rationnelles et automates
Exercice 6. (♣) Parmi les expressions rationnelles et les automates suivants dire lesquels correspondent au même langage.
(ab∗a+b(a+b))∗ (ab+b(a+b))∗
1 start
2 0
4 5
3
b a
b b
a, b a b
a
b b
a
0 start
1 2
3 4 5
a b
b b
a a
b b
b
a a a
Démonstration. On commence par le dernier automate qui est déterministe complet ad- missible. On fait l'algorithme de Moore dessus ce qui nous donne les classes({1},{0,2},{3,4,5}) et l'automate :
0 start
3 1
a, b b
a a b
Le lemme d'Arden nous donne immédiatement le système :
X0 = bX1+aX3+ε X1 = (a+b)X0 X3 = bX3+aX0
Le lemme d'Arden sur la troisième donne X3 = b∗aX0 et on remplace alors tout dans X0 = (b(a+b)+ab∗a)X0+εet avec Arden on retrouve la première expression rationnelle.
L'autre automate n'est ni déterministe ni complet. On commence par le déterminiser (à gauche) puis on renumérote et on complète (à droite) :
1 start
2 0,5
1,4 2,3
b a, b
a
a b a
b b
1 start
2 3 6
4 5
b a, b
a
a b a
b b
a
a, b
Enn on minimise par l'algorithme de Moore. En deux itérations on trouve la partition ({1,4},{3},{6},{2,5} ce qui donne l'automate :
1 start
2 3 6
a, b
b
a
b
a a, b
Comme précédemment on a le système
X1 = bX2+aX3+ε X2 = (a+b)X1
X3 = bX1
. On insère tout dans X1 = (b(a+b) +ab)X1+εet avec Arden on retrouve la seconde expression rationnelle.
De plus les automates minimaux étant diérents ce sont bien des langages diérents.
Automate et barman
Exercice 7. Le jeu du barman aveugle consiste à poser quatre verres en cercle sur un plateau. Les verres peuvent être retournés ou non. Le but du barman est de s'arranger pour que tous les verres soient dans le même sens, mais sans les voir. Le but de son adversaire est qu'il n'y arrive pas. Le jeu se joue par tours. Un tour s'organise comme suit :
Le barman retourne un ou deux verres de son choix. Pour qu'il ne récupère pas d'information en les touchant on lui met des gants de boxe ;
L'adversaire fait faire un nombre quelconque de quarts de tours au plateau. Si le barman place les verres dans le même sens, le jeu s'arrête aussitôt !
On appelle conguration du plateau à un instant donné la position des verres à cet instant.
1. En remarquant que pour le barman, les congurations obtenues par rotation du pla- teau sont équivalentes montrer qu'il y a quatre congurations possibles du plateau et qu'il y a trois actions possibles pour le barman.
2. Représenter les exécutions possibles du jeu par un automate non déterministe. A priori l'état initial peut être n'importe lequel.
3. Déterminiser l'automate.
4. En remarquant qu'obtenir une stratégie gagnante pour le barman revient à trouver une série d'actions qui, quelle que soit la conguration de départ, passe par un état nal, aider le barman à gagner.
Démonstration. 1. Seules quatre congurations sont possibles :
les quatre verres sont tous dans le même sens (congurationHHHH) ;
trois verres sont dans un sens et le quatrième dans l'autre sens (conguration HHHB) ;
deux verres voisins sont dans un sens et les deux autres dans l'autre sens (con- gurationHHBB) ;
deux verres opposés sont dans un sens et les deux autres dans l'autre sens (conguration HBHB).
On désigne par la lettre :
ale fait de changer l'orientation d'un des quatre verres ; b le fait de changer l'orientation de deux verres voisins ; c le fait de changer l'orientation de deux verres opposés.
2. Le jeu peut alors être représenté par l'automate non déterministe suivant :
start HHHH start HHHB
start HHBB start HBHB
b, c
a
a
a a
a
b b
c b
c
3. On note0 l'étatHHHH,1 l'étatHHHB,2 l'étatHHBB et3l'état HBHB :
start 0 start 1
start 2 start 3
b, c
a
a
a a
a
b b
c b
c
La déterminisation de l'automate précédent donne :
0,1,2,3 start
1,2 0,1,2
a, b
c a
c
a
c
0,1,3 bb
a
b
0,1
c a 0,2,3
b
0,2 c 1
b, c aa
a b, c
2 c
a
c
0,3 bb
b
a c 0
4. On constate que la succession de mouvementcbcacbcconduit nécessairement à une position gagnante pour le barman. (NB : ici on veut vraiment aller à l'état0et pas un multi état contenant 0.)
Exercice 8. (♠) Avez-vous ni les exos 7 et 8 du TD2 ? Si oui, vous pouvez rééchir à la généralisation de l'exo8 à la racine cubique, etc...