Vous êtes sur la page 1sur 27

Thorie des langages et des

automates

Ramzi GUETARI
Anne Universitaire 2010 / 2011

ISI
Institut
Suprieur
Informatique

ISI
Institut
Suprieur
04/10/2010 Informatique 1

Plan

Les expressions rgulires


Les automates finis non dterministes
Les automates finis dterministes
Les automates avec -transitions
L'quivalence des modles

ISI
Institut
Suprieur
04/10/2010 Informatique 2

Copyright Ramzi GUETARI

1
Expressions rgulires Principe

Lensemble reprsente le langage vide.


Le mot vide reprsente le langage {}
Un caractre c de reprsente le langage {c}
Lalternative p1 | p2 reprsente lunion des langages reprsents par p1 et p2.
La concatnationp1.p2 reprsente la concatnation des langages reprsents par
p1 et p2.
La rptition p* reprsente litration du langage reprsent par p.

Dans les Expressions rgulires (ER


ER) on va distinguer :
La syntaxe (le motif)

La smantique (le langage correspondant)

ISI
Institut
Suprieur
04/10/2010 Informatique 3

Copyright Ramzi GUETARI

Expressions rgulires la syntaxe

Le symbole est un motif


motif.
Le mot vide est un motif
motif.
Un caractre c de est n motif.
motif
Si p1 et p2 sont deux motifs alors lalternative p1 | p2 est un motif.
motif
Si p1 et p2 sont deux motifs alors la concatnation p1.p2 est un motif.
motif
Si p est un motif alors la rptition p* est un motif.
motif

ISI
Institut
Suprieur
04/10/2010 Informatique 4

Copyright Ramzi GUETARI

2
Expressions rgulires Priorits

Analogie avec les expressions arithmtiques, en interprtant :


|| par +
. par
* par une mise la puissance
Formellement et par ordre dcroissant de priorits nous avons :
()
*
.
|
Le symbole de concatnation peut tre omis.
omis
Exemple :
ab* correspond a.(b*).
a.b|c correspond (a.b)|c.
ab*|c correspond (a.(b*))|c.

ISI
Institut
Suprieur
04/10/2010 Informatique 5

Copyright Ramzi GUETARI

Expressions rgulires Smantique

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

Copyright Ramzi GUETARI

3
Les expressions rgulires

Soit un alphabet , les rgles dfinissant les expressions rgulires sur :


estt expressions
i rgulire
li quii dnote
d t {}{ } lensemble
l bl constitu
tit de
d la
l chane
h vide.
id
Si a est un symbole de , alors a est une expressions rgulire qui dnote {a},
lensemble constitu de la chane a.
Si r et s sont des ER dnotant les langages L(r) et L(s), alors :
(r)|(s) est une expression rgulire dnotant L(r) L(s).

(r)(s) est une expression rgulire dnotant L(r)L(s).

(r))* est une expression


p rgulire
g dnotant ((L((r))
))*
(r) est une expression rgulire dnotant L(r)

Si deux ER r et s dnotent le mme langage, elles sont quivalentes et note r = s.


Par exemple (a|b) = (b|a).

ISI
Institut
Suprieur
04/10/2010 Informatique

Copyright Ramzi GUETARI

Les expressions rgulires

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

Copyright Ramzi GUETARI

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

Copyright Ramzi GUETARI

Les dfinitions rgulires

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

Copyright Ramzi GUETARI

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

Copyright Ramzi GUETARI

Les dfinitions rgulires

Notations abrges

Loprateur unaire postfixe + signifie au moins une instance


r* = r+ |
r+ = rr*
Loprateur unaire postfixe ? signifie zro ou une instance (r? = r | )
Classe de caractres : la notation [abc] o a, b et c sont des symboles
dalphabets signifie a | b | c.
Une classe de caractres [a z] dnote lexpression rgulire a | b | | z.
Identificateurs : [A Za z] [A Za z0 9]*

ISI
Institut
Suprieur
04/10/2010 Informatique 12

Copyright Ramzi GUETARI

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

Copyright Ramzi GUETARI

Les langages rguliers exemple

{ab, b, aba} = [[ab | b | aba]].


L = {w1, w2, , wn} = [[w1 | w2| | wn]].
]]
Si lon dfinit le franais comme les mots dun dictionnaire de rfrence (celui de
lAcadmie), le franais est un langage rgulier.
Ecriture dcimale des entiers :
0 | (1|2|3|4|5|6|7|8|9) (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9)*
Mots constitus de 0 et de 1 alterns:
Commence par 0, finit par 1 : (01)*
Commence par 0, finit par 0 : (01)* 0

ISI
Institut
Suprieur
04/10/2010 Informatique 14

Copyright Ramzi GUETARI

7
Les automates finis

Validateur pour langages : programme prenant une chane x en entre et


retournant oui si ccest
est une phrase du langage et non sinon.
Expression rgulire Validateur : construction dun diagramme de transitions
gnralis appel automate fini .
Un automate fini peut tre dterministe ou non dterministe.
Automate fini non dterministe (AFN) : on peut trouver plus dune transition sortant
dun tat sur le mme symbole dentre.
Les deux types dautomates finis reconnaissent prcisment les ensembles
rguliers
rguliers.
Les automates finis dterministes conduisent des validateurs plus rapides.
Limplmentation dun automate fini dterministe est plus volumineuse que celle
dun automate fini non dterministe.

ISI
Institut
Suprieur
04/10/2010 Informatique 15

Copyright Ramzi GUETARI

Les automates finis non dterministes

Un automate fini A = E, , , e0, F


E un ensemble d dtats
tats.
un ensemble de symboles (lalphabet des symboles dentre).

: E E, une fonction de transition faisant correspondre des couples tat-


symbole des ensembles dtats.
Un tat e0 : tat de dpart ou tat initial.

Un ensemble dtats F connus comme tats dacceptation ou tats finaux.

ISI
Institut
Suprieur
04/10/2010 Informatique 16

Copyright Ramzi GUETARI

8
Les automates finis non dterministes

AFN - Exemple

b E = {e0, e1, e2, e3, e4}.


= {a, b}.
e1
a a
: E E.
b
(e0, a) = e1
e0 e2
(e0, b) = e2
b b (e1, a) = e2
e3 (e1, b) = e1
b a

a
e0 : tat initial.
e4 F = {e3, e4}.

ISI
Institut
Suprieur
04/10/2010 Informatique 17

Copyright Ramzi GUETARI

Reprsentation des AFN

Considrons le langage dnot par lER (a | b)*abb chanes de a et de b se terminant


par abb). Lautomate
L automate correspondant peut tre reprsent comme un graphe orient
tiquet : les nuds sont des tats, les arcs reprsentent la fonction de transition (I)
ou sous forme de table de transitions(II)
a

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

Copyright Ramzi GUETARI

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

Automates finis dterministes

Un automate fini dterministe (AFD) est un cas particulier de lAFN dans lequel

Aucun tat na de -transition (transition sur lentre ).


Pour chaque tat e et chaque symbole dentre a, il y a au plus un arc tiquet a
qui quitte e
Algorithme de simulation dun AFD

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

Automates finis complets

Un automate fini dterministe est dit complet si, e E, il y a exactement une


transition pour chaque symbole possible de
.

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

Langage accept par un AFN

b Un automate prend en entre un mot w et laccepte


rejette
ou le rejette.
e1 On part de ltat e0.
a a
On lit les caractres du mot w un un en suivant la
e0 b e2 transition correspondante (si il ny en a pas, la
validation choue).
b b
Lorsque tous les caractres sont lus, on accepte si
e3
b a
lon est sur un tat final, on rejette sinon.
a Exemple :
Le mot abbbab est accept.
e4 Le mot babba est accept.
Le mot ababab nest pas accept.

ISI
Institut
Suprieur
04/10/2010 Informatique 24

Copyright Ramzi GUETARI

12
Langage accept par un AFN

b ^ (ou ) de transition tendue


On introduit la fonction
aux mots :
e1
a a A partir dun tat e en lisant le mot vide on reste
b dans ltat e :
e0 e2
e E ^ (e, ) = e
b b
e3
b a A partir dun tat e, en lisant le mot c = wa se
a terminant par a , on a dabord lu w, puis effectu
la transition correspondante a :
^ (e, wa) = (
^ (e, w), a)
e4

ISI
Institut
Suprieur
04/10/2010 Informatique 25

Copyright Ramzi GUETARI

Langage accept par un AFN

b Le langage L (A) accept par un automate fini


A = E, , , e0, F est dfini par :
e1 L (A) = {w L / ^ (e0, w) F}.
a a

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

Copyright Ramzi GUETARI

13
quivalence dautomates finis

Dfinition : deux automates sont quivalents s'ils reconnaissent le mme langage.

Cette relation est bien une quivalence


quivalence, car elle est dfinie partir de l'galit des
ensembles qui est une quivalence.

ISI
Institut
Suprieur
04/10/2010 Informatique 27
Copyright Ramzi GUETARI

Construction dun AFD partir dun AFN

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

On construit Dstates, lensemble des tats de D et Dtran, la table de transitions de la


manire suivante :
Chaque tat de D correspond un ensemble dtats de lAFN,
Ltat de dpart de D est la -fermeture (e0) .
On ajoute des tats et des transitions en utilisant lalgorithme suivant. Un tat de D
est un tat dacceptation sil contient au moins un tat dacceptation de lAFN

ISI
Institut
Suprieur
04/10/2010 Informatique 29
Copyright Ramzi GUETARI

Construction dun AFD partir dun AFN

E0D = -fermeture (e0) /* Lunique tat de Dstates au dpart */


TANT QUE un tat non marqu T dans Dstates FAIRE
Marquer T;
POUR tout symbole dentre a FAIRE
U -fermeture ( (T, a));
SI U Dstates ALORS
Ajouter U Dstates comme nud non marqu;
FIN SI
Dtran [T, a] U;
FIN POUR
FIN TANT QUE

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

Construction dun AFD partir dun AFN


a
2 3

begin a b b
0 1 6 7 8 9 10

4 b 5

E0D = -fermeture (0) = { 0, 1, 2, 4, 7}

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

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

-fermeture ( (E0D, a) = {3, 8}) = {3, 8, 6, 1, 2, 4, 7 }


-fermeture ( ((E0D = A), a)) = B = {1, 2, 3, 4, 6, 7, 8} = DtransIS n[A,
u p a]
ISI
stitut
rieur
04/10/2010 Informatique 34
Copyright Ramzi GUETARI

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

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

-fermeture ( (E0D, b) = {5}) = {5, 6, 7, 1, 2, 4 }


-fermeture ( ((E0D = A), b)) = C = {1, 2, 4, 5, 6, 7} = Dtrans [A,
S u b]
ISI
Institut
prieur
04/10/2010 Informatique 36
Copyright Ramzi GUETARI

18
Construction dun AFD partir dun AFN

Ltat de dpart de lAFD est -fermeture (0) qui est A = {0, 1, 2, 4, 7}


fermeture ( (A,
-fermeture (A a)) llensemble
ensemble des tats de N qui ont des transitions sur a depuis des
lments de A. Seuls les tats 2 et 7 ont de telles transitions, vers 3 et 8.
-fermeture ( ({0, 1, 2, 4, 7}, a)) = -fermeture ({3, 8}) = {1, 2, 3, 4, 6, 7, 8} = B.
B = Dtrans [A, a]
Parmi les tats de A seul ltat 4 a une transition sur b vers 5.
-fermeture ( ({0, 1, 2, 4, 7}, b)) = -fermeture ({5}) = {1, 2, 4, 5, 6, 7} = C.
C = Dtrans [A, b]
On continue le pprocessus avec les ensembles B et C et ainsi de suite,, on atteint le ppoint o
tous les ensembles qui sont des tats de lAFD sont marqus. On obtient 5 ensembles
dtats :
A = {0, 1, 2, 4, 7} D = {1, 2, 4, 5, 6, 7, 9}.
B = {1, 2, 3, 4, 6, 7, 8} E = {1, 2, 4, 5, 6, 7, 10}
C = {1, 2, 4, 5, 6, 7} Ltat A est ltat de dpart et EI nest
s tlunique
i t u t tat
ISI

dacceptation. Suprieur
04/10/2010 Informatique 37
Copyright Ramzi GUETARI

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

Construction dun AFD partir dun AFN

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)

Considrons les deux automates finis dterministes A1 et A2 et les deux langages L1


et L2 suivants :
A1 = E1, , 1, e01 , F1 / L1 = L (A1)
A2 = E2, , 2, e02 , F2 / L2 = L (A2)
a

b
1 2
b

a
3 4
ISI
Institut
Suprieur
04/10/2010 Informatique 41
Copyright Ramzi GUETARI

Runion dautomates (langages)

L1 et L2 deux langages rguliers, L1 L2 est un langage rgulier :


Construisons A = E, , e, F / L (A) = L1 L2
E ,
E = E1 E2 {e0} avec e0 est soit un nouvel tat initial soit e0 = e10 = e20.
= 1 2 {(e0, , e) / (e01 , , e) 1 et (e02 , , e) 2}
F = F1 F2 si e01 F1 et e02 F2
F = F1 F2 {e0} si e01 F1 ou e02 F2

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)

L1 et L2 deux langages rguliers, L1.L2 est un langage rgulier :


Construisons A = E, , e,
E , e F / L (A) = L1.LL2
E = E1 E2

= 1 2 {(ep, , eq) / ep F1 et (e0, , eq) 2}


2

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

Minimisation dun AFD

Il y a une infinit dautomates pour un langage donn.


Questions :
Y a-t-il un automate canonique ?
Y a-t-il unicit dun automate minimal en nombre dtats ?
Y a-t-il un lien structurel entre deux automates qui reconnaissent le mme langage ?
Un rsultat thorique important : chaque ensemble rgulier est reconnu par un AFD
nombre dtats minimum qui es t unique ( un renommage des tats prs).
Soit un AFD M dont lensemble des tats est E et lalphabet dentre est . Nous
supposons que M est complet,
complet si tel nntait
tait pas le cas,
cas il faut le rendre complet.
complet
On dit que la chane w distingue ltat ei de ltat ej si, partant de lAFD M dans
ltat ei et le faisant fonctionner avec w, on termine dans un tat dacceptation,
mais partant de ltat ej et le faisant fonctionner avec w on aboutit un tat de non-
acceptation (ou vice versa).
ISI
Institut
Suprieur
04/10/2010 Informatique 44
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

Algorithme de Minimisation dun AFD

Donnes : un AFD A avec un ensemble dtats E, un alphabet dentre , des


tats un tat initial e0 et un ensemble ddtats
transitions dfinies pour tous les tats, tats
dacceptation F.
Rsultat : un AFD A qui reconnait le mme langage que A qui a le minimum dtats
possible.
1. Construire une partition initiale P de l-ensemble des tats avec deux groupes :
Les tats dacceptation (S).
Les tats de non acceptation ((F).
)
2. Appliquer la procdure suivante P pour construire une nouvelle partition Pn.

ISI
Institut
Suprieur
04/10/2010 Informatique 46
Copyright Ramzi GUETARI

23
Algorithme de Minimisation dun AFD

POUR chaque group G de P FAIRE


DEBUT
Partitionner G en sous-groupes de manire suivante : deux tats e1 et e2 de G
ne peuvent tre dans le mme sous groupe que si pour tout symbole a, les
tats e1 et e2 ont des transitions sur a vers des tats du mme groupe de P.

/* Un tat peut former un sous-groupe par lui-mme */

Remplacer G dans Pn par tous les sous groupes ainsi forms.


FIN

La complexit de cet algorithme est O (kn2) ou k = || et n est le nombre dtats de


lautomate.

ISI
Institut
Suprieur
04/10/2010 Informatique 47
Copyright Ramzi GUETARI

Algorithme de Minimisation dun AFD

3. Si Pn = P alors on pose Pf P et on continue ltape (4). Si Pn P alors on


pose P Pn et on recommence lltape
tape (2)

4. Choisir un tat dans chaque groupe de la partition Pf en tant que reprsentant de


ces groupes.
Les reprsentants seront les tats de lAFD rduit A.
Soit em un tat reprsentatif. Supposons que sur la chane dentre a il y ait une
transition de em vers ej. Soit en le reprsentant
p p de ej ((en ppeut tre
du ggroupe
gal ej). Alors A a une transition de em vers en sur a.
Ltat initial de A est le reprsentant du groupe contenant ltat e0.
5. Si A a un tat mort d, alors supprimer toutes les transitions qui arrivent vers d.
Supprimer d de A. Supprimer aussi tout tat non accessible de ltat initial de A
ISI
Institut
Suprieur
04/10/2010 Informatique 48
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

Algorithme de Minimisation dun AFD

La partition initiale P consiste en deux groupes :


E, lltat
tat ddacceptation
acceptation.
A, B, C et D, les tats de non acceptation.

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

Algorithme de Minimisation dun AFD

Si on choisit A comme reprsentant de (AC), et B, C et E pour les groupes


singletons on obtient alors llautomate
singletons, automate rduit dont la table de transitions est la suivante:

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

Exercice Minimisation de lautomate suivant :


b

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

Algorithme de Minimisation dun AFD

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

Vous aimerez peut-être aussi