• Aucun résultat trouvé

TDn 2 ◦ InformatiqueThéorique:Automates

N/A
N/A
Protected

Academic year: 2022

Partager "TDn 2 ◦ InformatiqueThéorique:Automates"

Copied!
8
0
0

Texte intégral

(1)

Polytech Paris Sud - ET4 Année 2018-2019

Informatique Théorique : Automates

TD n 2

Semaine du 24 septembre

Les exercices avec un trèe (♣) doivent être faits dans la séance de TD. Les exercices avec un pique (♠) sont plus diciles et ne seront pas traités en priorité dans la séance.

Construction d'automates déterministes

Exercice 1. (♣) On considère dans cet exercice l'alphabetA={0,1}. Pour chacune des questions de1 à4, donner un automate déterministe accessible complet qui reconnaît le langage décrivant :

1. l'ensemble des mots de A dans lesquels tout0 est toujours immédiatement suivi d'un1;

2. l'ensemble des mots de A avec au moins une occurrence du mot0101; 3. l'ensemble des mots de A qui se terminent par0101;

4. l'ensemble des mots de A dans lesquels toute occurrence de0 est immédiatement suivie d'un 1et qui n'ont aucune occurrence de 0101.

Démonstration. 1.

1

start 2 P

1

0

1

0

0,1

2.

(2)

1

start 2 3 4 5

1

0 1 0 1

0,1 0

1

0

3.

1

start 2 3 4 5

1

0 1 0 1

0 1

0

1

0

4. On veut faire l'intersection du langage de la question 1 et le complément de la question 2 (qui s'obtient en inversant état terminaux et non terminaux car on a un automate complet). La construction est la suivante :

start 1 2 3 4 5

1

0 1 0 1

0,1 0

1

0

start 1,1 2,1 3,1 4,1 5,1

1,2 2,2 3,2 4,2 5,2

1,P 2,P 3,P 4,P 5,P

1

0

0

1 0

1

0

1

1

0 1

0

0,1 0

1

0 1 0 1

1

0 start 1

2

P 1

0 1

0

0,1

Exercice 2 (Division par3). (♠)

(3)

1. Construisez un automate déterministe ni qui reconnaît l'ensemble des représen- tations binaires des entiers positifs divisibles par 3, en lisant de la gauche vers la droite.

2. Construisez un automate déterministe ni qui reconnaît l'ensemble des représenta- tions décimales (lues de la gauche vers la droite ou droite vers gauche) des entiers positifs divisibles par3.

Démonstration. 1. Pour gauche vers la droite, pensez que décaler correspond à mul- tiplier par2. Donc décaler et trouver 0 multiplie par2, décaler et lire1 consiste à faire×2 + 1.

0[3]

start 1[3] 2[3]

1 0

1 0

0 1

droite vers gauche ? ?

2. On utilise là encore les congruences modulo 3, le sens de lecture n'a pas d'impor- tance comme10≡1[3]donc seul le chire est important et non la puissance (règle de primaire).

0[3]

start 1[3] 2[3]

1,4,7 1,4,7

1,4,7

2,5,8 2,5,8

2,5,8

0,3,6,9 0,3,6,9 0,3,6,9

Déterminisation d'automates asynchrones

Exercice 3. (♣) Déterminiser et compléter l'automate asynchrone hA, Q, q0, F, δi sui- vant :

A={a, b}

Q={0,1,2,3,4,5}

q0 = 0 F ={4}

δ={(0, ε,1); (0, ε,5); (1, a,2); (1, b,1); (2, b,3); (3, a,4); (5, b,3)}

Démonstration. Etat initial :

(4)

start 0 1 2 3 4

5 ε

ε

a b a

b

b

Après déterminisation etcomplétion :

0,1,5

start 1,3

2 3 4

b

a

b

a b 1

b

a

2,4 a

b P

a

a

b a, b

Exercice 4. Déterminiser l'automate asynchronehA, Q, q0, F, δi suivant : A={a, b}

Q={0,1,2,3,4,5,6,7,8,9,10}

q0 = 0 F ={10}

δ={(0, ε,1); (1, ε,2); (2, a,3); (3, ε,6); (1, ε,4); (4, b,5); (5, ε,6); (0, ε,6); (6, ε,1);

(6, ε,7); (7, a,8); (8, b,9); (9, b,10)}

Démonstration. Etat initial :

start 0 1 2 3 6

4 5

7 8 9 10

ε ε a ε

ε

b

ε ε

ε

ε a b b

(5)

Déterminisation (conseil : regarder uniquement les transitions qu'on essaie de faire, par exemple b. Voir qu'à partir d'une transitionbon a5si on avait4,9si on avait8,10si on avait9et ensuite prendre lesε-clôtures. On mets en gras ceux qui génèrent parε-clôture les états.)

0,1,2,4,6,7

start 1,2,3,4,6,7,8

1,2,4,5,6,7

1,2,4,5,6,7,9 1,2,4,5,6,7,10 a

b a

a

b a

b

b a

Expression rationnelle associée à un automate

Exercice 5. (♣) Pour chacun des automates déterministes sur l'alphabet{a, b}suivants, déterminer le système d'équations linéaires droites associé, le résoudre par élimination et utilisation du lemme d'Arden et en déduire une expression rationnelle du langage qu'il reconnaît :

1.

1

start 2

a b

a, b

2.

1

start 2

a

b

b

a

Démonstration. On rappelle que

X=eX +f a pour solution (unique siε /∈e) X =ef On ajoute +εaux états terminaux

le langage obtenu se fait à partir de l'état initial

(6)

Les états non co-accessibles ne sont pas pris en compte 1. On a le système

X1 = aX1+bX2

X2 = (a+b)X2+ε d'oùX2 = (a+b). AinsiX1=aX1+b(a+b) =ab(a+b)

2. On a le système

X1 = aX1+bX2

X2 = aX2+bX1 On peut d'abord calculer en passant parX1 ou en passant par X2 :

a. X1 =aX1+ (bX2+ε) =a(bX2+ε).

D'où en réinsérant : X2 =aX2+bX1 = (a+bab)X2+ba = (a+bab)ba. FinalementX1 =a((a+bab)ba+ε).

b. De même X2 =aX2+bX1=abX1 d'oùX1 = (a+bab)X1+ε= (a+bab).

Exercice 6. Pour chacun des automates sur l'alphabet{a, b} ci-dessous construits dans l'exercice6du TD1, dériver, par la même méthode, une expression rationnelle du langage qu'il reconnaît.

1.

1

start 2 3

a b a

b a, b

2.

1

start 2 3

a b a

b a, b

3.

1

start 2 3

4

5 a

b a

b

b a b

a, b

a

4.

start 1 2

a, b

a, b

(7)

Démonstration. On applique la même méthode, on fait attention aux états co-accessibles ! 1. Correspond à {w∈A|w ne contient aucune occurrence de la chaînebb}

Calcul :(a+ba)(ε+b)

2. Correspond à {w∈A|w contient au moins une occurrence de la chaîne bb}

Intuition : (a+ba)bb(a+b).

Calcul :(a+ba)bb(a+b) ou encore :ab(aab)b(a+b).

3. Correspond à {w∈A|w contient exactement une occurrence de la chaîne bb}

Intuition :ab(aab)b(ab)a ou(a+aba)bb(aba+a)ou(ba+a)bb(ab+a). Calcul :ab(aab)b(aab)(ε+aa)

4. Correspond à {w∈A| les nombres deaet de bont même parité dans w}

Calcul :((a+b)2)

Constructions abstraites d'automates

Exercice 7 (Shue). (♠) Pour toute paire de mots(u, v), on appelle mélange de uetv le langageuv déni comme suit :

uv ={u1v1u2v2. . . unvn | n∈N, u=u1. . . un etv=v1. . . vn} où lesui et les vi sont des mots éventuellement vides. Par exemple,

abcd={abcd, acbd, cabd, acdb, cadb, cdab}.

Pour deux langagesL etK leur mélange est le langageLK suivant : LK :={w|w=uv, u∈L, v ∈K}.

1. Donner une expression rationnelle du langage(ab){c}.

2. Montrer que si L, K sont reconnus par deux automates, alors on peut aussi construire un automate qui reconnaît le langage LK.

Indice:

fairedes pairesd'états,

etun automatenon

déterministe

Démonstration. 1. (ab){c}= (ab)c(ab)∪(ab)acb(ab).

2. SoitA1= (Q1, A, I1, F1, E1)un automate reconnaissantLetA2= (Q2, A, I2, F2, E2) un automate reconnaissant K. On dénit l'automate suivant :

A:= (Q1×Q2, A, I1×I2, F1×F2, T), oùT est déni par :

T := {(q1, q2)−→a (q10, q2) | (q1, q2)∈Q1×Q2, a∈A, q1−→a q01∈E1}

∪ {(q1, q2)−→a (q1, q20) | (q1, q2)∈Q1×Q2, a∈A, q2 a

−→q02∈E2}.

Cet automate convient.

(8)

Exercice 8 (Racine). (♠) PourL un langage on dénit :

L:={w|w·w∈L}.

Montrer que si L est reconnu par un automate déterministe complet, alors on peut construire un automate qui reconnaît le langage √

L.

Indice:

ilfaut essayer desuiv re simultanémen tl'action

dec haquegénérateur surc

haqueé tat

Démonstration. Soit A = (Q, A,{q0}, F, E) un automate reconnaissant L. Et on note q0, . . . , qn sesn+ 1états. On dénit alors l'automate :

A0 := (Qn+1, A,{(q0, q1, . . . , qn)}, F0, E0),

où E0 est déni par

E0 ={(p0, . . . , pn)−→a (p00, . . . , p0n) | (p0, . . . , pn)∈Qn+1, a∈A,(p0

a

→p00, . . . , pn

a

→p0n)∈En+1}.

Ses états naux sont de la forme (p0, . . . , pn) où, siiest l'indice deqi tel que p0=qi, on api∈F.

Le langage est bien le bon, en eet un mot u nous amène dans un état nal si q0·u=p0=qi et alorsqi·u=pi∈F donc q0·(uu)∈F.

Autre proposition (par Evangelos) : les états sont Q3. On devine au début qui va être la racine et on suit l'évolution à partir deq0 et de cet état. Ainsi un triplet décrit le chemin depuisq0, le guess initial, le chemin depuis le guess. Le guess ne change pas dans les transitions. Celui-ci est non-déterministe.

Références

Documents relatifs

Calculer le coefficient directeur de cette fonc- tion

Illustrer avec des images découpées, le texte de l'histoire utilisant un vocabulaire spatial Associer chaque image au texte correspondant à la direction surveillée. e place les

[r]

Entoure en rouge les animaux qui se dirigent vers

Les entrées sont configurables en logique positive ou négative par commutateur à 2 positions (Source et Sink) L'alimentation du module se fait en 24V= bornes 17(+) et 18(-). La

[r]

Pour passer de la base 2 à la base 16, il suffit de grouper les chiffres binaires par 4 (c’est pourquoi la base 16 est souvent utilisée pour simplifier l’écriture des

Si l'on relie par une même ligne (nous les avons ajoutées avec des couleurs différentes) les diviseurs qui comportent un nombre donné de facteurs premiers (éventuellement avec