Académique Documents
Professionnel Documents
Culture Documents
automates
Ramzi GUETARI
Anne Universitaire 2010 / 2011
ISI
Institut
Suprieur
Informatique
ISI
Institut
Suprieur
04/10/2010 Informatique 1
Plan
ISI
Institut
Suprieur
04/10/2010 Informatique 2
1
Expressions rgulires Principe
ISI
Institut
Suprieur
04/10/2010 Informatique 3
ISI
Institut
Suprieur
04/10/2010 Informatique 4
2
Expressions rgulires Priorits
ISI
Institut
Suprieur
04/10/2010 Informatique 5
Dun motif vers un langage : La fonction [[.]] associe chaque motif un langage.
[[]]
[[]] {}
[[c]] {c}
[[p1 | p2]] [[p1]] [[p2]]
[[p1.p2]] [[p1]].[[p2]]
[[p*]] [[p]]*
ISI
Institut
Suprieur
04/10/2010 Informatique 6
3
Les expressions rgulires
ISI
Institut
Suprieur
04/10/2010 Informatique
Exemple
Soit lalphabet = {a,
{ b}
Lexpression a | b dnote lensemble {a, b}.
Lexpression (a | b)(a | b) dnote lensemble {aa, ab, ba, bb}. Ce mme
ensemble peut tre dnot par lER aa | ab | ba | bb.
Lexpression a* dnote lensemble de toutes les chanes constitues dun nombre
quelconque (ventuellement nul) de a, cest--dire {, a, aa, aaa, }.
expression rgulire (a | b)
LLexpression b)* dnote llensemble
ensemble de toutes les chanes constitues
dun nombre quelconque (ventuellement nul) de a ou de b. Ce mme ensemble
peut tre dnot par lER (a*b*)*.
Lexpression a | a*b contenant la chane a ou toutes les chanes constitues dun
ensemble quelconque (ventuellement vide) de a suivi dun b.
ISI
Institut
Suprieur
04/10/2010 Informatique 8
4
Les expressions rgulires Axiomes
Axiome Description
r|s=s|r | est commutatif
r | (s | t) = (r | s) | t | est associatif
r(st) = (rs)t La concatnation est associative
r(s | t) = (rs) | rt et (s | t)r = sr | tr La concatnation est distributive par rapport |
r = r et r = r est llment neutre pour la concatnation.
r* = (r | )* Relation entre * et .
rr** = rr* * est idempotent.
ISI
Institut
Suprieur
04/10/2010 Informatique 9
Les dfinitions rgulires permettent de donner des noms des ER dfinies sur un
alphabet partir de symboles de base et de les utiliser comme ssils
ils taient des
symboles de .
d1 r 1
d2 r 2
dn r n
di estt un nom di
distinct
ti t ett chaque
h ri estt une ER sur les b l dde {d1, d2, ,
l symboles
di-1}.
ISI
Institut
Suprieur
04/10/2010 Informatique 10
5
Les dfinitions rgulires
Exemple
letter A | B | | Z | a | b | | z
digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
identifier letter (letter | digit)*
number digit+
exponent (E (+ | - | ) number) |
float number
n mber exponent
e ponent
ISI
Institut
Suprieur
04/10/2010 Informatique 11
Notations abrges
ISI
Institut
Suprieur
04/10/2010 Informatique 12
6
Les langages rguliers
Un langage L est dit rgulier sil existe un motif p tel que [[p]] = L.
Une expression rgulire r dnote un langage rgulier L(r)
Tout langage fini est rgulier
rgulier..
est un langage rgulier ;
{} est un langage rgulier ;
Pour tout a , {a} est un langage rgulier ;
Si L1 et L2 sont rguliers, alors L1 L2 = {w1w2 | w1 L1 et w2 L2} est rgulier.
Si L est rgulier,
g , alors :
L* = {} {w1w2w3 wn | wi L} est rgulier ;
Si L1 et L2 sont rguliers, alors L1 L2 est rgulier.
Si L est un langage rgulier, Lc = * \ L est un langage rgulier
ISI
Institut
Suprieur
04/10/2010 Informatique 13
ISI
Institut
Suprieur
04/10/2010 Informatique 14
7
Les automates finis
ISI
Institut
Suprieur
04/10/2010 Informatique 15
ISI
Institut
Suprieur
04/10/2010 Informatique 16
8
Les automates finis non dterministes
AFN - Exemple
ISI
Institut
Suprieur
04/10/2010 Informatique 17
begin a b b
0 1 2 3
b
(I) Reprsentation graphique
Symbole dentre
tat
a b
0 {0, 1} {0}
1 {2}
2 {3}
ISI
Institut
(II) Reprsentation sous forme de table de transitions
Suprieur
04/10/2010 Informatique 18
9
Automates finis non dterministes
Exemple
LAFN suivant reconnat aa* | bb*. La chane aaa est accepte en se dplaant via les
tats 0, 1, 2, 2 et 2. Les tiquettes de ces arcs sont , a, a et a dont la concatnation
est aaa ( disparat dans la concatnation).
a
a
1 2
b
3 4
b
AFN avec -transitions
ISI
Institut
Suprieur
04/10/2010 Informatique 19
Copyright Ramzi GUETARI
Un automate fini dterministe (AFD) est un cas particulier de lAFN dans lequel
e e0;
((c ggetchar ()) EOF))
while ((
e (e, c);
if (e F) return YES ;
return NO ;
ISI
Institut
Suprieur
04/10/2010 Informatique 20
Copyright Ramzi GUETARI
10
Automates finis dterministes
Exemple
LAFD suivant accepte le mme langage (a | b)*abb que celui accept par lAFN (page
18)
b
begin a b b
0 1 2 3
a
a
ISI
Institut
Suprieur
04/10/2010 Informatique 21
Copyright Ramzi GUETARI
a
b
a
e0 e1 b
ISI
Institut
Suprieur
04/10/2010 Informatique 22
Copyright Ramzi GUETARI
11
Automates finis complets
Tout AFD non complet peut tre transform en AFD complet par lajout dun tat que
nous qualifions de mort ou poubelle ed vers lequel arrivent des transitions que
nous ajoutons de telle sorte que de chaque tat de lautomate parte exactement une
transitions sur chaque symbole de lalphabet.
a
e0 a e1
a
b
ed
b
a
ISI
Institut
Suprieur
04/10/2010 Informatique 23
Copyright Ramzi GUETARI
ISI
Institut
Suprieur
04/10/2010 Informatique 24
12
Langage accept par un AFN
ISI
Institut
Suprieur
04/10/2010 Informatique 25
e0 b e2
Un mot est dit accept si et seulement il appartient
b b L (A).
e3
b a
a
e4
ISI
Institut
Suprieur
04/10/2010 Informatique 26
13
quivalence dautomates finis
ISI
Institut
Suprieur
04/10/2010 Informatique 27
Copyright Ramzi GUETARI
Entre : un AFN N
Sortie : un AFD D
Algorithme :
Construire une table de transition Dtran pour D.
Chaque tat de lAFD est un ensemble dtats de lAFN.
Construire Dtran de manire que D simule en parallle tous les dplacements possibles que N
peut effectuer sur une chane dentre donne.
e reprsente un tat de lAFN et T un ensemble dtats de lAFN. On utilise les oprations suivantes
pour garder une trace des ensembles dtats de lAFN.
-fermeture de ((e)) : ensemble des tats de lAFN accessibles depuis p ltat e ppar des -transitions
uniquement.
-fermeture de (T) : ensemble des tats de lAFN accessibles depuis un tat e T par des -transitions
uniquement.
(T, a) : ensemble des tats de lAFN vers lesquels il existe une transition sur le symbole dentre a partie
dun tat e T.
ISI
Institut
Suprieur
04/10/2010 Informatique 28
Copyright Ramzi GUETARI
14
Construction dun AFD partir dun AFN
ISI
Institut
Suprieur
04/10/2010 Informatique 29
Copyright Ramzi GUETARI
ISI
Institut
Suprieur
04/10/2010 Informatique 30
Copyright Ramzi GUETARI
15
Construction dun AFD partir dun AFN
Exemple
a
begin a b b
0 1 2 3
a
2 3
begin a b b
0 1 6 7 8 9 10
b
4 5
ISI
Institut
AFN N pour (a | b)*abb Suprieur
04/10/2010 Informatique 31
Copyright Ramzi GUETARI
a
2 3
begin a b b
0 1 6 7 8 9 10
4 b 5
ISI
Institut
Suprieur
04/10/2010 Informatique 32
Copyright Ramzi GUETARI
16
Construction dun AFD partir dun AFN
E0D = {0, 1, 2, 4, 7} = A
a
2 3
begin a b b
0 1 6 7 8 9 10
4 b 5
(E0D, a) = {3, 8}
ISI
Institut
Suprieur
04/10/2010 Informatique 33
Copyright Ramzi GUETARI
a
2 3
begin a b b
0 1 6 7 8 9 10
4 b 5
17
Construction dun AFD partir dun AFN
E0D = {0, 1, 2, 4, 7} = A
E1D = {1, 2, 3, 4, 6, 7, 8} = B
a
2 3
begin a b b
0 1 6 7 8 9 10
4 b 5
(E0D, b) = {5}
ISI
Institut
Suprieur
04/10/2010 Informatique 35
Copyright Ramzi GUETARI
begin a b b
0 1 6 7 8 9 10
4 b 5
18
Construction dun AFD partir dun AFN
a
a a
4
1
6
a 2 b
7
1 3 5 5
8 1 1
2 6 6
0 2
b 2
4 a 7 7
4 4 4
7 9 10
b 1 5
2 6
7 b
b
ISI
Institut
Suprieur
04/10/2010 Informatique 38
Copyright Ramzi GUETARI
19
Construction dun AFD partir dun AFN
C
b b
begin a b b
A B D E
a
a
a
ISI
Institut
Suprieur
04/10/2010 Informatique 39
Copyright Ramzi GUETARI
a b
A B C
B B D
C B C
D B E
E B C
ISI
Institut
Suprieur
04/10/2010 Informatique 40
Copyright Ramzi GUETARI
20
Oprations sur les automates (langages)
b
1 2
b
a
3 4
ISI
Institut
Suprieur
04/10/2010 Informatique 41
Copyright Ramzi GUETARI
b
a
a 1 b 2
e0
b a
3 4
ISI
Institut
Suprieur
04/10/2010 a b Informatique 42
Copyright Ramzi GUETARI
21
Concatnation dautomates (langages)
e0 = e0
1
F = F1 F2 si e0 F2
2
a
F = F2 sinon
1 b 2
b a
3 a 4
ISI
Institut
Suprieur
04/10/2010 b Informatique 43
Copyright Ramzi GUETARI
22
Algorithme de Minimisation dun AFD
Lalgorithme fonctionne en dterminant tous les groupes dtats qui peuvent tre
distingus par une chane ddentre
entre.
Chaque group dtats qui ne peuvent tre distingus est alors fusionn en un tat
unique.
Initialement la partition consiste en deux groupes: les tats dacceptation et les
tats de non acceptation.
Ltape fondamentale consiste prendre un groupe dtats A = {e1, e2, , ek}, et
un symbole a, et tudier les transitions des tats {e1, e2, , ek} sur a.
Si ces transitions conduisent des tats qui tombent dans au moins deux groupes
diffrents de la partition courante, alors on doit diviser A de manire que les
transitions depuis chaque sous ensemble de A soient tous confins un seul
groupe de la partition courante.
On rpte le processus de division des groupes de la partition courante jusqu ce
ISI
Institut
que plus aucun groupe nait besoin dtre divis. Suprieur
Informatique
04/10/2010 45
Copyright Ramzi GUETARI
ISI
Institut
Suprieur
04/10/2010 Informatique 46
Copyright Ramzi GUETARI
23
Algorithme de Minimisation dun AFD
ISI
Institut
Suprieur
04/10/2010 Informatique 47
Copyright Ramzi GUETARI
24
Algorithme de Minimisation dun AFD
Exemple
b
C
b b
begin a b b
A B D E
a
a
a
ISI
Institut
Suprieur
04/10/2010 Informatique 49
Copyright Ramzi GUETARI
Construction de Pn :
Considrons E constitu dun seul tat et ne peut tre dcoup, on lajoute Pn.
Considrons le groupe constitu de A, B, C et D.
Sur le symbole a, chacun de ces tats a une transition vers B, ce qui ne les distingue pas.
Sur le symbole b, A, B et C ont des transitions vers le groupe (A B C D) tandis que D a une
ransitions vers E.
E
Dans Pn, le groupe (A B C D) doit tre dcoup en (A B C) et (D). Pn = (A B C) (D) (E).
Dans la phase suivante nous navons aucun dcoupage de (A B C) sur le symbole a
par contre il doit tre dcoup en (A C) et (B) sur le symbole b. Pn = (A C) (B) (D) (E).
Dans la passe suivante on ne peut plus dcouper aucun groupe ni sur a ni sur b.
Pf = (AC) (B) (D) (E).
ISI
Institut
Suprieur
04/10/2010 Informatique 50
Copyright Ramzi GUETARI
25
Algorithme de Minimisation dun AFD
b
Exemple
C
b b
begin a b b
A B D E
a
a
a
A B C D E
ISI
Institut
Suprieur
04/10/2010 Informatique 51
Copyright Ramzi GUETARI
Symbole dentre
tat
a b
A,C B A,C
B B D
D B E
E B A,C
ISI
Institut
Suprieur
04/10/2010 Informatique 52
Copyright Ramzi GUETARI
26
Algorithme de Minimisation dun AFD
a b
0 1 2
a a
b a b
3 b 4 b 5 a 6
b
a
ISI
Institut
Suprieur
04/10/2010 Informatique 53
Copyright Ramzi GUETARI
1, 6 2 b
a
a b
0, 3
a b
b
4 b 5 a
ISI
Institut
b Suprieur
04/10/2010 Informatique 54
Copyright Ramzi GUETARI
27