Title: Limites des automates dterministes
1Limites des automates déterministes
- Objectifs spécifiques
- Décrire le langage accepté par un automate fini
déterministe donné. - Construire un automate fini déterministe
acceptant un langage donné. - Démontrer quun langage donné nest pas régulier.
2Langages réguliers
- La notion dautomate peut être reliée à celle de
langage et cest ce que nous allons faire. - Un automate accepte un langage bien précis.
3Définition
- Soit M un automate fini déterministe qui a pour
alphabet ?. L(M) est lensemble de toutes les
séquences de symboles reconnues par lautomate M.
Nous dirons que L(M) est le langage reconnu(ou
accepté) par lautomate fini M.
4Exemple
- Soit A lautomate fini déterministe suivant.
Les séquences acceptées ont un ou plusieurs b,
suivis dun seul a, suivi de zéro ou plusieurs b.
Donc, L(A) bmabnm?N?n ?N.
5Exercices
- Dire en mots et au moyen dune expression
ensembliste le langage reconnu par lautomate.
R L(M) a2, b, aba, abbb,abba
6R L(M) stu s ? 0,1-? ? t ? ,- ?
u ? 0,1.
73)
R L(M) ?
8Exercices
- Soit l alphabet ? b, h, i, o, u. Construire
un automate fini déterministe qui accepte le
langage demandé.
1) hibou, hi, bou, hou
92) (ho)n n ?N
10Définition
- Un langage est dit régulier sil existe un
automate fini déterministe qui le reconnaît. - On dit quun automate fini M reconnaît un langage
L ssi il accepte tous les mots de ce langage et
seulement les mots de ce langage i.e. L(M) L. - Une façon de montrer quun langage est régulier
est de construire un automate qui reconnaît ce
langage. Il existe dautres méthodes que nous
verrons plus tard.
11Exercice
- Montrer que ? est régulier.
- R Supposons que ? a1, , an.Il existe un
automate fini déterministe qui reconnaît ?
Ou encore (A, a1, a2, , an , ((A,
a1),A),, ((A, an),A),A,A) Ces trois
représentations décrivent le même automate.
12Problème
- Montrez comment on peut transformer un automate
fini déterministe M(S, ?, ?, ?,F) pour qu il
accepte ? - L(M). Cet exercice démontre que le
complément dun langage régulier (relativement à
?) est régulier.
13Solution
- Puisque M est déterministe, une séquence dentrée
conduit M à un état et un seul. La
transformation à faire est de rendre finaux les
états qui ne létaient pas et de rendre non
finaux ceux qui létaient. Les séquences qui
étaient auparavant acceptées sont maintenant
rejetées et celles qui étaient rejetées sont
acceptées.
14Exercice
- Soit ? a, b. Énumérer tous les automates
finis déterministes sur ? qui ont 1 ou 2 états.
Considérer que les états sont étiquetés, e.g. S
1 et S 1, 2. - R I) Automates à un état il ny en a que deux,
soient
15- Automates à deux états
- Il faut déterminer tous les automates finis,
déterministes (S, ?, ?, ?,F) tels que S1,2 et
?a,b. - Commençons par déterminer ?
- ? (S? ?) ? S
- S? ? 2 ?2 4. S2. Pour chaque élément de
(S? ?), il y a deux possibilités dimages par ?.
Donc, le nombre total de possibilités pour ? est
24 16.
16- ? ? S. Donc, nous avons deux possibilités pour ?.
- F ? S. Donc, F pourrait être nimporte quel
élément de ?(S) ?,1,2,1,2. Nous avons 4
possibilités. - Donc le nombre total des automates à deux états
correspond à 16 ? 2 ? 4 128. - Le nombre total dautomates à un ou deux états
pour un langage de deux éléments est 2128130
automates différents.
17- Dire combien il y a dautomates finis
déterministes à n états étiquetés sur un alphabet
? tel que ? k. - Il faut déterminer tous les automates finis,
déterministes (S, ?, ?, ?,F) tels que S n et
?k. - Commençons par déterminer le nombre des ?
possibles - ? (S? ?) ? S
- S? ? n?k nk. Sn. Pour chaque élément de
(S? ?), il y a n possibilités dimages par ?.
Donc, le nombre total de possibilités pour ? est
nnk .
18- ? ? S. Donc, nous avons n possibilités pour ?.
- F ? S. Donc, F pourrait être nimporte quel
élément de ?(S). ?(S)2n. Nous avons donc 2n
possibilités. - Donc le nombre total des automates à n états
correspond à nnk ? n ? 2n nnk1 ?2n.
19Théorème
- Pour tout alphabet ?, il existe un langage
quaucun automate fini déterministe ne peut
reconnaître.
20Démonstration
- Nous considérons seulement les automates dont
lalphabet est ?, car lajout dun arc avec un
symbole x ? ? ne peut pas affecter la
reconnaissance dune séquence w ? ? . - Dénotons A? lensemble des automates finis
déterministes sur lalphabet ?. Daprès
lexercice précédent, cet ensemble est
dénombrable. A? ? N
21- Nous avons déjà vu que l ensemble des langages
sur ? est non dénombrable. N lt ?(?). - Donc, puisque A? ? N, A? lt ?(?).
- Lensemble des langages est plus grand que celui
des automates.
22- La preuve précédente montre quil existe un
langage qui ne peut être reconnu par un automate
fini déterministe, mais nous navons pas encore
vu dexemple dun tel langage. - La section suivante donne un exemple de cette
sorte.
23Langages non réguliers
- Aucun automate fini déterministe ne peut
déterminer si les parenthèses dune expression
arithmétique sont correctement équilibrées. - Par exemple
- a (b ? c ? ( a - d)
- a )b ? c ? ( a d
a (b ? c ? ( a - d) g)
24- Pour dire si les parenthèses sont équilibrées, il
faut compter le nombre de parenthèses gauche g et
le nombre de parenthèses droites d en lisant de
gauche à droite. - Lors de la lecture, on doit avoir g ? d.
- À la fin de la lecture, il faut avoir g d.
- Un automate fini ne peut faire ce calcul si on
lui donne une expression trop longue.Nous
verrons pourquoi bientôt.
25- Nous allons montrer quun automate fini ne peut
pas reconnaître le langage (n )n n ?N sur
l alphabet (, ). - Ce langage est plus simple que celui des
expressions arithmétiques parenthésées car ces
dernières peuvent contenir des parenthèses
gauches mêlées à des parenthèses droites, e.g.
(10-(23) ?(11)).
26- Considérons lautomate non ambigu suivant
Cet automate reconnaît le langage
?,(),(()),((())),(((()))). Cependant, il
rejette les séquences (n )n pour n gt 4, et il y
a une infinité de ces séquences. Pour tenter
daccepter ces séquences avec un automate ayant
un nombre détats fini, on ne peut pas éviter
dajouter des boucles.
27- Nous avons maintenant cet automate
Cet automate rejette (5 )5 et (9 )9 mais il
accepte toutes les séquences de la forme (3m1
)3m1. Cet automate accepte donc certaines
séquences de la forme (n )n pour un n
arbitrairement grand. Cependant, il accepte aussi
les séquences (5 )2 et (6 )3 à cause de la
boucle du haut.
28- On peut décrire lacceptation dune séquence en
donnant la liste des états traversés et en
plaçant entre ces états les symboles lus lors des
transitions. - Par exemple, lacceptation de (()) est décrite
par 1 ( 2 ( 3 ) 7 ) 10.
29- Lacceptation dune séquence de la forme (3m1)4
se visualise donc comme suit - 1 (2 (3 (4 (5 (3 (4 (5 (3 (4 (5 (3(4... 4 (5 )9
)12 )14 )15.
30- Pour comprendre le théorème qui suit, il faut
bien saisir ce quon entend par arbitrairement
grand. - Un sous-ensemble non vide de N contient des
nombres arbitrairement grands sil ne contient
pas de nombre maximal cest donc un ensemble
infini. - Par exemple, lensemble des nombres pairs
contient des entiers arbitrairement grands.
31Théorème
- Si un langage régulier L contient des séquences
de symboles de la forme xnyn pour des n ? N
arbitrairement grands, alors il doit aussi
contenir une séquence de la forme xmyn où n ? m.
32Démonstration
- Soit M (S, ?, ?, ?, F) un automate fini
déterministe tel que L(M) L. On sait, quun tel
automate existe car L est un langage régulier. - L(M) contient des séquences de la forme xnyn
pour n arbitrairement grand. - ? ?Signification de arbitrairement grand. ?
- ?k?NkgtS? xkyk ? L(M)
- ? ? Il y a plus de symboles dans xk
que détats dans M. Lors de la lecture de xk
, M doit donc passer au moins deux fois par
un certain état si. ?
33- ?k?N ?si?S xkyk ? L(M) ? M passe au moins
deux fois par si en lisant xk. - ? ?Il y a donc une boucle qui part de si et
qui y revient. Supposons que jgt0 soit la
longueur de cette boucle.? - ?k?N ?j?N xkyk ? L(M) ? M traverse une boucle
de longueur j lors de la lecture de xk . - ? ?Une boucle peut être traversée un nombre
quelconque de fois. M peut la parcourir
une fois de plus. ? -
34- ?k?N ?j?N xkyk ? L(M) ? xkjyk ? L(M)
- ? ?Doù le résultat annoncé. ?
- L(M) contient une séquence de la forme xmyn
avec n ? m. -
35Résumé
- Nous venons dexhiber un exemple de langages
quaucun automate fini déterministe ne peut
reconnaître - (n)n, xnyn pour n arbitrairement grand.
- Cela montre les limites des automates finis
déterministes et des langages réguliers. -
36Exemple
- Nous avons déjà vu quil était difficile de
reconnaître des séquences de la forme (n )n sans
aussi accepter des séquences qui ne sont pas de
cette forme. Voici un nouvel exemple de cette
difficulté.
37- Lautomate fini non ambigu suivant accepte les
séquences de lensemble a3n2b3n2
n ?N , par exemple aabb et aaaaabbbbb, mais il
accepte aussi les séquence de la forme
a3m2b3n2où m, n ?N et m ? n (donc 3m2 ?
3n2). Ainsi, aaaaabb est acceptée.
38Langages non réguliers
- Preuve quun langage L est non régulier
- Pour prouver quun langage est non régulier, on
fait une preuve par contradiction. - On suppose quil existe un automate fini
déterministe M tel que L(M) L. - On prend une séquence w suffisamment longue
(ayant un nombre de symboles supérieur au nombre
détats de M). - On démontre que pour que M reconnaisse w il faut
quil possède une boucle.
39Théorème de pompage
- Si L est un langage régulier, il existe un entier
p gt 0 appelé longueur de pompage, tel que tout
mot w de L tel que w p peut être décomposé
comme w xyz avec - xy p
- y gt 0
- Pour tout i 0 on a xyiz ?L.
40Démonstration
- Soit M (S, ?, ?, ?, F) un automate fini
déterministe tel que L(M) L. On sait, quun tel
automate existe car L est un langage régulier.
Posons p S, le nombre détats. - Soit w un mot de L tel que w p. En lisant les
p premiers symboles du mot w, lautomate doit
donc passer par un certain état si deux fois. - Cet état est atteint une première fois après la
lecture du préfixe x de w. - Il est atteint une seconde fois après la lecture
de la suite y. - Le mot y correspond à une boucle autour de si que
lon peut répéter à volonté ou même enlever. - À partir de si, le reste du mot z nous mène à un
état acceptant. - ? Lautomate accepte tous les mots de la forme
xyiz, i 0.
41Comment appliquer ce théorème
- Pour montrer quun langage L nest pas régulier,
on peut montrer quil ne satisfait pas les
conditions du théorème. - Supposons un jeu contre un adversaire qui veut
nous convaincre que le langage L est régulier.
42- Adversaire oui L est régulier, sa longueur de
pompage est p. - Nous trouver un mot w ? L, avec w p que
ladversaire ne pourra pas pomper. - Adversaire décomposition de w xyz, tel que
xy p et y gt 0. Ladversaire prétend que
pour tout i 0, on a xyiz ? L. - Nous trouver un i tel que xyiz ?L.
- ? L nest pas régulier.
43Exercice
- Montrer quil nexiste aucun automate fini
déterministe M qui a pour langage L(M) anbn
n ?N. Autrement dit, L nest pas régulier. - R Faisons une preuve par contradiction.
- On pose L anbn n ?N.
- L régulier
- ? ?L satisfait le théorème de pompage?
- ?p ? w ? L (w p) ? ?? x,y,z w xyz ?
xy p ? y gt 0 ? ? i 0 xyiz ? L
44- Quel que soit p, on a w apbp ? L.
- Comme w p, il doit exister x,y,z avec xy
p, y gt 0 et xyiz ? L pour tout i 0. - Puisque xy p, on a x ax et y ay et
donc xy2z apybp. - Comme y gt 0, on a p y gt p
- ? xy2z ? L
- faux.
- L anbn n ? N nest pas régulier.
45Exemple
- Montrer que le langage L
n est pas régulier. -
- Supposons L régulier
- ? L satisfait le théorème de pompage pour un
certain p. - ? Le mot est dans L avec w p
donc il peut être pompé. - Il existe x,y,z avec w xyz et xy p et y
gt 0 et pour tout i 0, xyiz ? L. - En particulier xy2z ? L. On a
- Puisque 0 lt y p, on a p2 lt p2 y lt (p1)2
- xy2z ? L.
- faux
46Exercices
- Montrer que les langages suivants ne sont pas
réguliers. - an! n ? N
- Solution
- Preuve par contradiction. Posons L an! n
? N -
47L régulier
- ? ? Par définition. Rappel un langage
est dit régulier s il existe un automate
fini déterministe qui le reconnaît.?
? ? L contient toutes les séquences de la
forme ak!, en particulier celles pour
lesquelles k gt S.?
? M ? k ? N M (S, ?,?,?,F) ? L(M) L ? k gt
S ? ak! ? L.
N
48? ? Puisqu il y a plus de S symboles a à
lire (car k! gt S), il doit y avoir une
boucle de longueur j gt 0 et j?S lors de
la lecture de ak!. Cette boucle peut être
traversée une fois de plus, d où ak!j ?
L(M), puisque ak! ? L L(M).?
? M ? j, k ? N M (S, ?,?,?,F) ? L(M) L ?
0 lt j ? S lt k ? ak!j ? L(M).
49? ? k!ltk!jltk!k?2k!?(k1)k!(k1)! .
Puisque k!j est strictement coincé
entre deux factorielles consécutives, ce
nest pas une factorielle, d où ak!j ? L.?
? M ? j, k ? N L(M) L ? ak!j ? L(M) ?
ak!j ? L.
? ? ak!j ?L(M) ? ak!j ? L? L(M) ?L(M).?
? ? (p??p)?faux et (?xfaux)?faux.? Faux.
50- an n ?N? n nest pas un carré
- Solution
- L régulier
- ? ? Selon un exercice précédent.?
- Complément de L régulier
- ? ? Définition de L.?
51? ?Selon lexemple précédent,
nest pas régulier.?
52Résumé
- Les automates finis permettent de reconnaître les
mots réservés, les identificateurs et les
nombres dun langage de programmation mais pas
les expressions parenthésées ni les structures de
blocs.
53Automates finis non déterministes
- Objectifs spécifiques
- Classifier des automates finis décrits par des
diagrammes de transitions. - Classifier des descriptions formelles dautomates
finis. - Démontrer le fonctionnement dun automate fini
donné en énumérant les configurations du ruban et
les états consécutifs à une configuration
initiale du ruban.
54- Démontrer lacceptation ou le rejet dune
séquence de symboles donnée par un automate fini
donné. - Transformer un automate non déterministe en
automate déterministe, - Décrire le langage accepté par un automate fini
donné. - Construire un automate fini acceptant un langage
donné.
55Introduction
- Nous avons vu que les automates finis
déterministes nous limitent dans lévaluation
syntaxique. - Nous allons essayer délargir la classe de
langages que lon peut analyser en levant deux
restrictions que nous avons imposées aux
automates déterministes celle dêtre
complètement définis et celle dêtre non ambigus.
56Introduction
- Nous obtenons ainsi des automates finis non
déterministes. - Ceux-ci déterminent une classe de langages qui
englobe la classe de langages des automates finis
déterministes. - Points à réexaminer
- Notion dacceptation,
- Classes de langages reconnaissables.
57Définition
- Un automate fini non déterministe consiste en un
quintuple de la forme (S, ?, ?, ?, F). - S est un ensemble fini détats.
- ? est lalphabet de la machine.
- ? est un sous-ensemble de S? ? ?S.
- ? ?S est létat initial.
- F ? S est lensemble des états finaux.
58Composante ?
- La seule composante différente de celle dun
automate déterministe est ?, lensemble des
transitions de lautomate. - Un élément de ? est un triplet (s, a, t) où t est
un état accessible à partir de létat s à la
lecture dun a.
59Composante ?
- On peut écrire un triplet de ? comme ((s,a),t).
On voit bien que ? est une relation entre S ? ?
et S , i.e. que ? ? (S ? ?) ?S. - La différence entre les automates finis non
déterministes et les automates finis
déterministes est la définition des transitions
au moyen dune relation plutôt que dune
fonction.
60Exemple
- Voici le diagramme de transitions dun automate
non déterministe (s0,s1,s2,s3,s4,s5,s6,a, b,
?, s0,s1,s4,s6).
? (s0,a,s1), (s0,a,s2), (s2,a,s1),
(s2,b,s3), (s2,b,s5), (s3,b,s4),
(s5,a,s6), (s5,b,s5), (s6,a,s6)
61Exercice
- Donner le diagramme de transitions de lautomate
(A, B, C, D, E, F, G, H, I, 0,1, ?, A, G,
I)où ? (A,1,B), (A,1,C), (B,0,E), (C,0,B),
(C,0,D), (C,1,F), (D,0,A), (D,0,G), (D,1,C),
(D,1,D), (E,0,H), (E,1,I), (F,1,G), (F,1,I),
(G,0,F), (G,1,G), (H,0,H), (I,1,H)
62Exercices
- Classifier les automates finis suivants décrits
par des diagrammes de transitions sur l alphabet
?. Dire tout dabord si la description est
correcte. Si oui, dire si lautomate est
déterministe.
1. ? a, b
R Description correcte. Automate non
déterministe car pas complètement défini et
ambigu.
632. ? a, b
R Diagramme incorrect car ? ? ?.
3. ? lettre ? chiffre
R Description incorrecte car létat initial
nest pas indiqué.
644. ? a, b
R Description correcte. Lautomate nest pas
déterministe parce quil nest pas complètement
défini.
5. ? ?
R Description incorrecte un alphabet ne peut
pas être vide.
656. ? a, b
R Description incorrecte un automate ne peut
pas avoir deux états initiaux.
7. ? a
R Description correcte. Lautomate est
déterministe.
668. ? a
R Description correcte. Lautomate nest pas
déterministe car il nest pas complètement
défini.
9. ? a
R Description correcte. Lautomate nest pas
déterministe car il nest pas complètement
défini.
67Exercices
- Classifier les descriptions formelles dautomates
finis suivantes. Dire si la description est
correcte et si oui, dire si lautomate est
déterministe.
1. M1 (s0, s1, s2, a, b, ?, s0, s1),
où ?(s0, a) s1 ?(s1, a) s1 ?(s2, a)
s2 ?(s0, b) s2 ?(s1, b) s2 ?(s2, b) s2
R Description correcte et puisque ? est une
fonction lautomate est déterministe.
682. M2 (0, ?, ?, 0) où ? a, b, c ?(0,
a) 0 ?(0, b) 0 ?(0, c) 0
R Ce nest pas la description dun automate car
létat initial nest pas indiqué.
3. M3 (a, b, 1, 2, ?, a, ?) où ?(a, 1)
a ?(a, 2) b ?(b, 1) a ?(b, 2) b
R Cest la description dun automate fini et cet
automate est déterministe car ? est une fonction.
694. M4 (s1, s2, s3, s4, a, b, ?, s1, s2,
s4) où ? ( s1, a, s2), ( s1, b, s2), ( s2,
a, s3), ( s2, b, s4), ( s3, a,
s4), ( s3, b, s2)
R Cest la description dun automate fini non
déterministe. La relation ? ne contient pas de
triplet dont la premièrecomposante est s4.
705. M5 (1, 2, 3, 4, a, b, c, ?, 1, 2)
où ? ( 1, a, 2), ( 1, b, 3), ( 1, c, 3), ( 2,
a, 2), ( 2, b, 4), ( 2, c, 4), ( 2, a,
3), ( 2, b, 3), ( 2, c, 3), ( 3, a, 3), ( 3, b,
3), ( 3, c, 3), ( 4, a, 3), ( 4, b, 3), (
4, c, 3)
R Cest la description dun automate fini. La
relation ? contient les triplets (2,a,2) et
(2,a,3) donc ? nest pas une fonction et
lautomate nest pas déterministe.
716. M6 (a, b, 1, ? ?, a, b)
R Cest la description dun automate fini. La
relation ? nest pas totale donc ce nest pas une
fonction par conséquent lautomate nest pas
déterministe.
72Définition
- Un automate fini non déterministe M (S, ?, ?,
?, F) accepte (ou reconnaît) la séquence
x1x2x3...xn (n?0) ssi il existe une séquence
détats s0, s1, ..., sn tels que s0 ?, sn ? F,
et pour tout j 1, ..., n (sj-1, xj, sj) ? ?. - Dans le cas contraire, on dit que lautomate
refuse ou rejette la séquence.
73Définition
- On dénote par L(M) lensemble des séquences
acceptées par M. - On dit que L(M) est le langage reconnu (ou
accepté) par M.
74Notes
- Une séquence est acceptée sil est possible, en
partant de létat initial, datteindre un état
finalen lisant la séquence même sil y a, en
plus, des chemins qui mènent à des états non
finaux, la séquence est acceptée. - Notez aussi que la séquence doit être toute lue.
- Cest la même notion dacceptation que pourles
automates finis déterministes. Sauf que pourun
automate non déterministe on peut
trouverplusieurs chemins avec la même séquence
(à cause de lambiguïté).
75Exemple
- Soit lautomate non déterministe M décrit par le
diagramme de transitions suivant
76Voici une suite de configurations du ruban et
densembles détats de lautomate décrivant
lacceptation de la séquence abbbaa par M. Les
ensembles détats contiennent tous les états
accessibles à une étape donnée.
abbbaa s0 abbbaa s1, s2 abbbaa s3,
s5 abbbaa s4, s5 abbbaa s5 abbbaa s6 abbbaa
_ s2, s6
77On peut aussi décrire lacceptation de cette
séquence comme suit s0 a s1, s2 b s3, s5
b s4, s5 b s5 a s6 a s2, s6
La séquence est acceptée car il existe une suite
de transitions menant de létat initial s0 à
létat final s6. Une telle suite de transitions
est s0 a s2 b s5 b s5 b s5 a s6 a s6.
Même si lautomate peut atteindre létat non
final s2, en suivant un autre chemin, la
séquence est acceptée.
78Une transition est décrite comme le passage dun
ensemble détats vers un autre ensemble
détats. s0 a s1, s2 b s3, s5 b s4, s5 b
s5 a s6 a s2, s6
79La suite ci-dessous décrit le rejet de la
séquence abbbb par le même automate. Cette
séquence est rejetée car il ny a pas de suite de
transitions correspondant à la séquence et
menant de létat initial à un état final.
abbbb s0 abbbb s1, s2 abbbb s3,
s5 abbbb s4, s5 abbbb s5 abbbb__ s5
80Exercice
- Soit un automate M décrit par le diagramme de
transitions suivant
81Démontrer le fonctionnement de M (en énumérant
les configurations du ruban dentrée et les
ensembles détats possibles de lautomate)
lorsquon lui soumet les séquences suivantes.
1. 10000
10000 A 10000 B, C 10000 B, D,
E 10000 A, E, G, H 10000 F, H 10000_ H
822. 10011
10011 A 10011 B, C 10011 B, D,
E 10011 A, E, G, H 10011 B, C, G,
I 10011_ F, G, H
833. 1101
1101 A 1101 B, C 1101 F 1101 1101_
84Théorème
- Pour tout automate fini non déterministe, il
existe un automate fini déterministe qui accepte
exactement le même langage.
85Démonstration
- Soit un automate fini non déterministe M (S,
?, ?, ?, F). Nous allons démontrer lexistence
dun automate fini déterministe M (S, ?,
?, ?, F) tel que L(M) L(M).
86Lidée de la preuve est de suivre toutes les
options possibles en parallèle chaque transition
passe dun sous-ensemble de S à un sous-ensemble
de S.
Posons S ?(S)
? ?
F T? S T ? F ? ?
En mots Un état de M est un sous-ensemble
détats de M.
Létat initial est lensemble qui contient létat
initial de M.
Un état de M est final ssi il contient au moins
un état final de M.
87La fonction ? S ? ? ? S est définie par ?(s,
x) s ? S ?r ? s(r, x, s) ? ? . En
mots À la lecture dun x, M passe de létat s
à lensemble des états accessibles par M à
partir de chacun des états dans s. ? est
bien une fonction. Elle est définie pour tout s
??(S) et pour tout x ? ?. De plus, le résultat
est unique (non ambigu)
88Maintenant que M est défini, il faut montrer que
L(M) L(M). Nous procédons en deux étapes 1)
Montrer que L(M) ? L(M), 2) Montrer que L(M) ?
L(M). Ceci implique que L(M) L(M).
891) L(M) ? L(M) Montrons par induction sur n
que le prédicat P(n) suivant est vrai pour tout n
? N Si s0 ? x1 s1 x2 s2 ... xn sn est un
chemin de M, alors il existe un chemin de M de
la forme s0 ? x1 s1 x2 s2 ... xn sn
(i.e. faisant la lecture des mêmes symboles que
M) et tel que sn ? sn.
90De manière abrégée, nous écrivons P(n) s0 ?
x1 s1 x2 s2 ... xn sn de M ? ? s0 ? x1 s1
x2 s2 ... xn sn de M ? sn ? sn.
91Base dinduction n0. Le chemin de M est de
longueur 0 ( M reste dans létat initial s0
? ). Il existe un chemin correspondant pour
M le chemin de longueur 0, M reste dans
létat initial s0 ??. On a bien s0 ?
s0, par définition de ?.
92Étape dinduction Montrons que P(k) ?
P(k1). Considérons que P(k) est vrai s0 ?
x1 s1 x2 s2 ... xk sk de M ? ? s0 ? x1 s1
x2 s2 ... xk sk de M ? sk ? sk.
93 s0 ? x1 s1 x2 s2 ... xk sk xk1 sk1 de M ? ?
Signification de chemin.? s0 ? x1 s1 x2 s2
... xk sk de M ? (sk, xk1, sk1) ? ? ? ? Par
hypothèse dinduction.? ? s0 ? x1 s1 x2
s2 ... xk sk de M ? sk ? sk ? (sk, xk1,
sk1) ? ? ? ? Définition de ?.? ?
s0 ?x1 s1 x2 s2 ... xk sk de M ? sk1?
?(sk, xk1) ? ? Posons sk1 ?(sk, xk1).?
? s0 ? x1 s1 x2 s2 ... xk sk xk1 sk1 de
M sk1 ? sk1.
94Par conséquent, M accepte x1x2...xn ? ?
Définition dacceptation pour un automate
non déterministe.? ? un état final sn et un
chemin s0 ?x1 s1 x2 s2 ... xnsn de M ? ?
Preuve précédente et définition de F.? ? un
état final sn et un chemin s0 ? x1 s1 x2
s2 ... xn sn de M ? ? Définition
dacceptation pour un automate
déterministe.? M accepte x1x2...xn.
952) L(M) ? L(M) Nous voulons montrer que
pour chaque chemin de lautomate M partant de
létatinitial ? jusquà létat sn ? F avec sn
? sn. il existe un chemin dans lautomate M
partant de létat ? et se rendantjusquà létat
final sn ? F en traversant les arcs étiquetésx1,
x2, ..., xn. Notons que si sn est un état
accepteur, alors tousLes si, i0..n, sont des
ensembles non vides.
Montrons par induction sur n que Pour chaque
chemin dans M de ? jusquà sn traversant les
arcs étiquetés x1,x2, ,xn, nous avons pour
chaque sn ? sn, il doit exister un chemin dans
M de ? jusquà sn traversant les arcs étiquetés
x1, x2, ..., xn.
96Base dinduction n0. Comme lors de la première
étape de la preuve.
Étape dinduction Supposons que le résultat
est vrai pour k et considérons un chemindans M
de ? jusquà sk1 traversant les arcs x1,
...xk, xk1.Par hypothèse dinduction, pour
chaque sk ? sk, il doit existerun chemin dans
M de ? jusquà sk traversant les arcs étiquetés
x1, x2, ..., xk. Mais ?(sk, xk1) sk1
s?S(sk, xk1,s) ? ?. Alors pour chaque s ?
sk1, il existe un chemin dans M de ? jusquà s
sk1 traversant les arcs étiquetésx1, x2, ...,
xk comme demandé, y compris le ou les états de
sk1 qui sont finauxdans M.
97Remarque
- Donc on ne peut pas augmenter la puissance dun
automate fini en lui permettant dêtre non
déterministe. - Les langages reconnus par les automates finis non
déterministes sont les mêmes que les langages
reconnus par les automates finis déterministes.
98Remarque
- Le nombre détats augmente exponentiellement
lorsquon transforme un automate non déterministe
en automate déterministe. - On peut dire quun langage régulier est un
langage reconnu par un automate fini,
déterministe ou non déterministe.
99Remarque
- Un programme simulant un automate non
déterministe doit - ou bien explorer les chemins possibles un à un en
faisant des retours en arrière (peut être long). - ou bien construire lautomate déterministe
correspondant (peut prendre beaucoup despace).
100Exemple
- Construisons un automate fini déterministe qui
reconnaît les mêmes séquences que lautomate non
déterministe M(S, ?, ?, ?, F) où - S 1, 2, 3,
- ? a, b,
- ? (1, b, 2), (1, b, 3), (3, a, 1), (3, a, 2)
, - ? 1,
- F 3.
101Diagramme de transition
102La construction de lautomate fini déterministe
se fait à partirdes résultats suivants S
?(S) ?,1,2,3,1,2,1,3,2,3,1,2,3.
? ne change pas. ? est la fonction suivante,
sachant que ? (1, b, 2), (1, b,
3), (3, a, 1), (3, a, 2) ?(?, a) ? ?(?,
b) ? ?(1, a) ? ?(1, b) 2,
3 ?(2, a) ? ?(2, b) ? ?(3, a)
1, 2 ?(3, b) ? ?(1, 2, a) ? ?(1,
2, b) 2, 3 ?(1, 3, a) 1, 2 ?(1,
3, b) 2, 3 ?(2, 3, a) 1, 2 ?(2,
3, b) ? ?(1, 2, 3, a) 1, 2 ?(1, 2,
3, b) 2, 3
103? ? 1 F 3, 1, 3, 2, 3, 1, 2,
3
104Si on enlève les états qui ne peuvent pas être
atteints
On peut voir que le langage que lautomate
accepte est b(ab)n n?N.
105Exercice
- Construire un automate fini déterministe qui
accepte les mêmes séquences que lautomate fini
non déterministe ci-dessous.Lalphabet est a,
b.
106Solution Le quintuple correspondant à lautomate
ci-dessus est M(S, ?, ?, ?, F) où - S 1, 2,
3, 4, - ? a, b, - ? (1, a, 2), (1, b,
3), (2, a, 2), (2, b, 2) (2, b, 4), (3, b, 4),
(4, a, 1), (4, a, 4), (4, b, 4), - ? 1, - F
4.
107Solution Le quintuple correspondant à lautomate
déterministe est le suivant M(S, ?, ?, ?,
F) où - S ?(S) ?,1,2,3,41,2,1,3
,1,4, 2,3, 2,4,3,4,1,2,3,
1,2,4, 1,3,4,2,3,4,1,2,3,4. - ?
a, b, - ? 1, - F 4,1,4,2,4,3,4
,1,2,4,1,3,4,
2,3,4,1,2,3,4.
108 ? est la fonction suivante ?(?, a) ? ?(?,
b) ? ?(1, a) 2 ?(1, b)
3 ?(2, a) 2 ?(2, b) 2,4 ?(3,
a) ? ?(3, b) 4 ?(4, a) 1,
4 ?(4, b) 4 ?(1, 2,
a) 2 ?(1, 2, b) 2, 3,4 ?(1, 3, a)
2 ?(1, 3, b) 3,4 ?(1, 4, a)
1,2,4 ?(1, 4, b) 3,4 ?(2, 3, a)
2 ?(2, 3, b) 2,4 ?(2, 4, a)
1,2,4 ?(2, 4, b) 2, 4 ?(3, 4, a)
1,4 ?(3, 4, b) 4 ?(1, 2, 3, a) 2
?(1, 2, 3, b) 2, 3,4 ?(1, 2,4, a)
1,2,4 ?(1, 2,4, b) 2, 3,4 ?(1, 3,4,
a) 1,2,4 ?(1, 3,4, b) 3,4 ?(2, 3,4,
a) 1,2,4 ?(2, 3,4, b) 2, 4 ?(1,
2,3,4, a) 1,2,4 ?(1, 2,3,4, b) 2,
3,4
109Algorithme de construction dun automate
déterministe simplifié
- Cet algorithme prend en entrée un automate M
(S,?,?,?,F) et rend un automate M
(S,?,?,?,F). M est déterministe et L(M)
L(M) et les états considérés sont ceux
atteignables depuis létat initial de M. Il
sagit de calculer S, ? et F, les autres
éléments de M étant connus. Je suppose que
?(s,a) pour s ? S et a ? ? est donné sous forme
dun ensemble. Notez que lindentation détermine
le début et la fin de blocs, je nai pas utilisé
de fin si ou fin tant que etc. - Initialisation S ?, ? ?, F ?, W ?.
- Tant que W ?? faire
- Pour tout e ? W faire
- Pour chaque symbole a de ?
- e ?.
- Pour tout s ?e faire e e ? ?(s,a).
- ? ? ? (e,a,e).
- W (W ? e) S.
- Si (e ?? F) ? ? alors F F ? e.
- W W e. S S ? e
110Exercice
- En utilisant lalgorithme qui vient dêtre
décrit, trouver une solution simplifiée (ne
considérant que les états atteignables depuis
létat initial) à lexercice précédent. - Solution
- S ?,1,2,3,4,1,4, 2,4, 3,4,
1,2,4, 2,3,4. - ? a, b,
- ? 1,
- F 4,1,4,2,4,3,4,1,2,4,2,3,4.
111- ? est la fonction suivante ?(?, a)
? ?(?, b) ? ?(1, a) 2 ?(1, b)
3 ?(2, a) 2 ?(2, b) 2,4 ?(3,
a) ? ?(3, b) 4 ?(4, a) 1,
4 ?(4, b) 4 ?(1, 4,
a) 1,2,4 ?(1, 4, b) 3,4 ?(2, 4, a)
1,2,4 ?(2, 4, b) 2, 4 ?(3, 4, a)
1,4 ?(3, 4, b) 4 ?(1, 2,4, a)
1,2,4 ?(1, 2,4, b) 2, 3,4 ?(2, 3,4,
a) 1,2,4 ?(2, 3,4, b) 2, 4